OpenNLP:无法找到 Lemmatizer 的模型文件

San*_*eep 4 lemmatization opennlp

摘要:无法找到用于 Lemmatizer 的模型文件(english-lemmatizer.bin)

详细信息OpenNLP 工具模型似乎是 Apache OpenNLP 库的不同组件使用的各种模型的综合存储库。但是,我无法找到与 lemmatizer 一起使用的模型文件en-lemmatizer.bin 。Apache OpenNLP 开发人员手册为词形还原步骤提供了以下代码片段:

InputStream dictLemmatizer = null;

try (dictLemmatizer = new FileInputStream("english-lemmatizer.bin")) {

}
Run Code Online (Sandbox Code Playgroud)

但是,与其他模型文件不同,我只是无法找到该模型文件的位置。任何指示将不胜感激。

San*_*eep 9

Richard M. Reese 的《Natural Language Processing with Java Cookbook》一书提供了一个很好的答案。由于某种原因,en-lemmatizer.bin 无法从网络上直接下载,但可以使用以下步骤创建它:

  1. 下载并解压apache-opennlp-1.9.0-bin.tarhttps://opennlp.apache.org/download.html

  2. 转到Lemmatizer 训练文件的 URL并将文本内容保存为en-lemmatizer.dict

  3. 进入 bin 目录(从步骤 1 解压后)并执行以下命令:

opennlp LemmatizerTrainerME -model en-lemmatizer.bin -lang en -data /path/to/en-lemmatizer.dict -encoding UTF-8


注意:准备好处理以下错误:

Computing event counts... Exception in thread "main" java.lang.OutOfMemoryError: Java heap space