java - OpenNLP 在使用泰国模型时出错

标签 java nlp opennlp thai

我已尝试遵循 here 的建议,但我得到了这个错误:

C:\OpenNLP_models\tool\apache-opennlp-1.5.3-bin\apache-opennlp-1.5.3\bin>opennlp TokenizerME C:\OpenNLP_models\tool\apache-opennlp-1.5.3-bin\apache-opennlp-1.5.3\bin\thai.tok.bin < test.txt

Loading Tokenizer model ... Exception in thread "main" java.lang.NullPointerException
    at opennlp.tools.util.model.BaseModel.getManifestProperty(BaseModel.java:491)
    at opennlp.tools.util.model.BaseModel.initializeFactory(BaseModel.java:245)
    at opennlp.tools.util.model.BaseModel.loadModel(BaseModel.java:237)
    at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:181)
    at opennlp.tools.tokenize.TokenizerModel.<init>(TokenizerModel.java:125)
    at opennlp.tools.cmdline.tokenizer.TokenizerModelLoader.loadModel(TokenizerModelLoader.java:39)
    at opennlp.tools.cmdline.tokenizer.TokenizerModelLoader.loadModel(TokenizerModelLoader.java:31)
    at opennlp.tools.cmdline.ModelLoader.load(ModelLoader.java:62)
    at opennlp.tools.cmdline.tokenizer.TokenizerMETool.run(TokenizerMETool.java:41)
    at opennlp.tools.cmdline.CLI.main(CLI.java:225)

test.txt 文件包含句子“ผมหิวข้าว”。

谁能告诉我怎么解决?我想使用 POSTagger。 谢谢。

最佳答案

我认为您缺少 manifest.properties 文件。你能解压缩 thai.tok.bin 文件并检查它是否包含这些文件:

  1. token.model(二进制分词器模型)
  2. manifest.properties(配置)

manifest.properties 的内容应该是这样的,取自您链接到的问题:

Manifest-Version=1.0.
Language=th
OpenNLP-Version=1.5.0
Component-Name=TokenizerME
useAlphaNumericOptimization=false

关于java - OpenNLP 在使用泰国模型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51473376/

相关文章:

java - "Found unexpected annotation while handling a name sequence"

java - 如何通过 log4j.properties 禁用 OpenNLP 的 Log4j

java - Java中的CRC16 DNP校验和算法

java - Java中枚举的反序列化

Java,无状态 session bean

java - 解释句子并转换成相应的格式

python - 优化 Gensim word mover 的速度距离函数 (wmdistance)

java - 用非零退出值完成

python - 无论时态或形式如何匹配单词?

java - 基于自定义特征的文本分类