Overview of AI Libraries in Java – Java中的人工智能库概述

最后修改: 2017年 1月 15日

中文/混合/英文(键盘快捷键:t)

1. Introduction

1.介绍

In this article, we’ll go through an overview of Artificial Intelligence (AI) libraries in Java.

在这篇文章中,我们将对Java中的人工智能(AI)库进行概述。

Some theoretical knowledge of AI would be helpful in understanding the use of these libraries.

一些人工智能的理论知识对理解这些库的使用会有帮助。

AI is a very wide field, so we will be focusing on some of the most popular fields today, like Natural Language Processing, Machine Learning, and Neural Networks. In the end, we’ll see some interesting AI challenges where we can practice our understanding of AI.

人工智能是一个非常广泛的领域,因此我们将关注当今最流行的一些领域,如自然语言处理、机器学习和神经网络。最后,我们将看到一些有趣的人工智能挑战,在这些挑战中,我们可以实践我们对人工智能的理解。

2. Expert Systems

2.专家系统

2.1. Apache Jena

2.1.阿帕奇-耶拿

Apache Jena is an open-source Java framework for building semantic web and linked data applications from RDF data. It provides an API to extract data from and write to RDF graphs.

Apache Jena是一个开源的Java框架,用于从RDF数据构建语义网和链接数据应用程序。它提供了一个API,用于从RDF图中提取数据并写入RDF图中。

2.2. PowerLoom Knowledge Representation and Reasoning System

2.2.PowerLoom知识表示和推理系统

PowerLoom is a platform for the creation of intelligent, knowledge-based applications. It provides a Java API with detailed documentation.

PowerLoom是一个用于创建智能、基于知识的应用程序的平台。它提供了一个带有详细文档的Java API

2.3. d3web

2.3. d3web

d3web is an open-source reasoning engine for developing, testing, and applying problem-solving knowledge onto a given problem situation, with many algorithms already included.

d3web是一个开源的推理引擎,用于开发、测试并将解决问题的知识应用于给定的问题情境,其中已经包含了许多算法。

2.4. Eye

2.4.眼睛

Eye is an open-source reasoning engine for performing semi-backward reasoning.

Eye是一个开源的推理引擎,用于执行半逆向推理。

2.5. Tweety

2.5 翠儿

Tweety is a collection of Java frameworks for logical aspects of AI and knowledge representation.

Tweety是一个用于人工智能和知识表示的逻辑方面的Java框架的集合。

2.6. OptaPlanner

2.6.奥普塔规划师

OptaPlanner is a Java-based constraint solver. It can serve a number of use-cases like vehicle routing, employee rostering, maintenance scheduling, and school timetabling, to name a few.

OptaPlanner是一个基于Java的约束解算器。它可以服务于一系列的使用情况,如车辆路由、员工轮值、维护调度和学校时间表,仅举几例。

3. Neural Networks

3.神经网络

3.1. Neuroph

3.1.neuroph

Neuroph is an lightweight Java framework for neural network creation. It comes with an open-source Java library and a GUI editor for quickly creating Java neural network components

Neuroph是一个用于创建神经网络的轻型Java框架。它带有一个开源的Java库和一个GUI编辑器,用于快速创建Java神经网络组件。

3.2. Deeplearning4j

3.2.Deeplearning4j

Deeplearning4j is a deep learning library for the JVM, and it also provides an API for neural network creation.

Deeplearning4j是一个用于JVM的深度学习库,它还提供了一个用于创建神经网络的API。

4. Natural Language Processing

4.自然语言处理

4.1. Apache OpenNLP

4.1.Apache OpenNLP

Apache OpenNLP is an open-source Natural Language Processing Java library. It features an API for use cases like Named Entity Recognition, Sentence Detection, POS tagging and Tokenization.

Apache OpenNLP是一个开源的自然语言处理Java库。它具有用于命名实体识别、句子检测、POS标记和标记化等使用案例的API。

4.2. Stanford CoreNLP

4.2.斯坦福CoreNLP

Stanford CoreNLP is a popular Java NLP framework that provides various tools for performing NLP tasks.

Stanford CoreNLP是一个流行的Java NLP框架,为执行NLP任务提供各种工具。

5. Machine Learning

5.机器学习

5.1. Java Machine Learning Library (Java-ML)

5.1.Java机器学习库(Java-ML)

Java-ML is an open-source Java framework that provides various machine learning algorithms specifically for programmers.

Java-ML是一个开源的Java框架,专门为程序员提供各种机器学习算法。

5.2. RapidMiner

5.2.RapidMiner

RapidMiner is a data science platform that provides various machine learning algorithms through GUI and Java API. It has a big community with many tutorials and extensive documentation.

RapidMiner是一个数据科学平台,通过GUI和Java API提供各种机器学习算法。它有一个很大的社区,有许多教程和广泛的文档。

5.3. Weka

5.3 Weka

Weka is a collection of machine learning algorithms for data mining tasks. It provides tools for a number of use cases like data clustering and association rules mining visualization.

Weka是一个用于数据挖掘任务的机器学习算法集合。它为一些用例提供了工具,如数据聚类和关联规则挖掘的可视化。

5.4. Encog Machine Learning Framework

5.4.Encog机器学习框架

Encong is a Java machine learning framework that supports many ML algorithms. It’s developed by Jeff Heaton from Heaton Research.

Encong是一个Java机器学习框架,支持许多ML算法。它是由来自Heaton Research的Jeff Heaton开发的。

5.5. Deep Java Library (DJL)

5.5.Deep Java Library (DJL)

Deep Java Library is an open-source library developed by AWS Labs. It provides an intuitive, framework-independent Java API for training and testing learning models.

Deep Java Library是一个由AWS实验室开发的开源库。它提供了一个直观的、与框架无关的Java API,用于训练和测试学习模型。

6. Genetic Algorithms

6.遗传算法

6.1. Jenetics

6.1.杰尼特公司

Jenetics is an advanced genetic algorithm written in Java. It provides a clear separation of the genetic algorithm concepts.

Jenetics是一个用Java编写的高级遗传算法。它对遗传算法的概念进行了明确的分离。

6.2. Watchmaker Framework

6.2.钟表匠框架

Watchmaker Framework is a framework for implementing genetic algorithms in Java.

Watchmaker框架是一个用于在Java中实现遗传算法的框架。

6.3. ECJ 23

6.3.ECJ 23

ECJ 23 is a Java-based research framework with strong algorithmic support for genetic algorithms. It is highly flexible, with most of the settings being dynamically determined at runtime.

ECJ 23是一个基于Java的研究框架,对遗传算法有强大的算法支持。它具有高度的灵活性,大部分的设置都是在运行时动态确定的。

6.4. Java Genetic Algorithms Package (JGAP)

6.4.Java遗传算法包(JGAP)

JGAP is a genetic programming component provided as a Java framework.

JGAP是一个以Java框架形式提供的遗传编程组件。

6.5. Eva

6.5 伊娃

Eva is a simple Java OOP evolutionary algorithm framework.

Eva是一个简单的Java OOP进化算法框架。

7. Automatic Programming

7.自动编程

7.1. Spring Roo

7.1.Spring的鲁》

Spring Roo is a Rapid Application Development (RAD) tool for Java developers. It allows us to generate boilerplate code and project structure for Spring applications with simple-to-use commands.

7.2. Acceleo

7.2.收获

Acceleo is an open-source code generator for Eclipse that generates code from EMF models defined from any metamodel (UML, SysML, and others).

Acceleo是一个用于Eclipse的开源代码生成器,可以从任何元模型(UML、SysML和其他)定义的EMF模型中生成代码。

8. Challenges

8.挑战

We can find many online challenges and competitions related to AI. Here’s a list of some competitions where we can train and test our skills:

我们可以找到许多与人工智能有关的在线挑战和比赛。这里列出了一些我们可以训练和测试技能的比赛。

9. Conclusion

9.结论

AI is a very wide field that is evolving at a rapid rate. In this article, we presented various Java AI frameworks that can make our applications better and more innovative.

人工智能是一个非常广泛的领域,正在快速发展。在这篇文章中,我们介绍了各种Java人工智能框架,这些框架可以使我们的应用程序变得更好、更有创新性。