apache/opennlp
Apache OpenNLP
它解决了什么问题
Apache OpenNLP 提供了一套全面的基于机器学习的工具,用于处理自然语言文本。它通过提供一个成熟的工具包来处理常见的 NLP 任务,简化了高级文本处理服务的创建,否则这些任务需要从头构建复杂的模型。
它是如何运作的
该库完全用 Java 编写,实现了各种机器学习分类器——包括最大熵、感知器、朴素贝叶斯和支持向量机(SVM)——来分析文本。它可以通过 Java API 以编程方式使用,也可以通过命令行界面(CLI)使用。对于现代深度学习需求,它包含一个用于 ONNX 模型的适配器,并可选用 GPU 加速。该工具包是模块化的,允许用户仅导入他们需要的特定组件(例如,分词或命名实体抽取),以保持应用程序占用空间小。
它适合谁
它专为构建文本处理应用程序的 Java 开发人员,以及将 NLP 功能集成到分布式流数据管道(如 Apache Flink、Apache NiFi 或 Apache Spark)中的数据工程师而设计。
亮点
- 广泛的任务支持:处理分词、句子分割、词性标注、命名实体抽取、分块、解析、共指解析和语言检测。
- 多语言支持:包含 11 种语言的停用词过滤,并提供各种语言的预建模型。
- 灵活部署:支持 API 和 CLI 使用,并与 ONNX 集成以用于深度学习模型。
- 企业就绪:专为稳定性和可扩展性而建,3.0.0+ 版本提供线程安全的核心类。
相关
- 项目
JohnSnowLabs/spark-nlpSpark NLP 是一个 Apache Spark 原生库,为超过 200 种语言提供了海量的预训练 NLP 和 LLM 模型(如 BERT、Llama-2、Whisper、Vision Transformers 等)。它支持 CPU、GPU、Apple-silicon 和 AArch64 构建,可导入 TensorFlow/ONNX/OpenVINO 模型,并可在任何 Spark 集群(Databricks、EMR、GCP Dataproc 等)上运行。通过 pip 或 Maven 安装,使用 `sparknlp.start()` 启动 Spark 会话,加载预训练流水线,即可获得实体、词性标注、嵌入、翻译或生成文本等 Token 级别的注释。采用 Apache 2.0 许可。
- 项目
ahmetaa/zemberek-nlpZemberek-NLP 是一个 Java 库,提供土耳其语专用的 NLP 工具,包括分词、形态分析、拼写检查、语言识别、基于 fastText 的分类等。它以 Maven 模块或单个 JAR 文件形式发布,包含控制台应用程序和 gRPC 服务器,并采用 Apache 2.0 许可。该项目目前处于缓慢维护状态,最新版本为 0.17.1 (2019)。
- 项目
- 项目
- 项目
hankcs/HanLPHanLP 是一个多语言 NLP 库(Python/Java),提供覆盖 130 种语言的预训练模型,用于分词、词性标注、句法分析、语义角色标注、AMR 解析等任务。它提供原生 Python API 和轻量级 RESTful 客户端,便于集成,强调可复现性,并以 Apache 2.0(代码)和 CC BY-NC-SA 4.0(模型)许可证发布。