项目介绍: Apache OpenNLP
Apache OpenNLP 是一个基于机器学习的工具包,专用于自然语言文本处理。该工具包完全用 Java 编写,支持多种常见的自然语言处理任务,如分词、句子分割、词性标注、命名实体识别、短语切分、解析、共指解析、语言检测等。这些功能通常被用来构建更高级的文本处理服务。
项目的目标
OpenNLP 项目的目标是成为一个成熟的工具包,为上述任务提供可靠的解决方案。此外,项目还致力于提供多个语言的预构建模型,以及这些模型所需的标注文本资源。
当前的功能
目前,OpenNLP 包含了一些常用的分类器,如最大熵分类器(Maximum Entropy)、感知器(Perceptron)、朴素贝叶斯(Naive Bayes)。用户可以通过 OpenNLP 的 Java API 在编程中使用,或者通过命令行界面(CLI)进行操作。OpenNLP 的 API 还可以方便地集成到类似 Apache Flink、Apache NiFi 和 Apache Spark 的分布式流数据处理平台中。
可用软件包
OpenNLP 目前拥有多个软件包:
opennlp-tools
: 核心工具包。opennlp-tools-models
: 一组加载 OpenNLP 模型的类。opennlp-uima
: 一系列 Apache UIMA 注释器。opennlp-morfologik-addon
: 一个 Morfologik 的附加组件。opennlp-dl
: 使用onnxruntime
依赖项的 ONNX 模型接口实现。opennlp-dl-gpu
: 用来支持 GPU 加速的 ONNX 模型接口,实现依赖onnxruntime_gpu
。opennlp-sandbox
: 进行中的其他项目。
开始使用
用户可以通过 Maven、SBT 或 Gradle 直接导入核心工具包。
Maven
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>${opennlp.version}</version>
</dependency>
SBT
libraryDependencies += "org.apache.opennlp" % "opennlp-tools" % "${opennlp.version}"
Gradle
compile group: "org.apache.opennlp", name: "opennlp-tools", version: "${opennlp.version}"
构建 OpenNLP
要构建这个库,至少需要 JDK 17 和 Maven 3.3.9。用户在克隆代码库后,可以进入目标目录并运行:
mvn install
贡献者指南
Apache OpenNLP 项目主要由志愿者开发,随时欢迎新贡献者参与项目的各个部分。任何形式的贡献都受到欢迎,从文档中的小错误修正到新组件的开发。如果用户有兴趣参与,可以按照项目文档中的指导进行贡献。