OpenNLP 在使用泰语模型时出错
Posted
技术标签:
【中文标题】OpenNLP 在使用泰语模型时出错【英文标题】:OpenNLP gives error when using Thai model 【发布时间】:2018-07-23 07:14:59 【问题描述】:我尝试按照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。 谢谢。
【问题讨论】:
请复制粘贴您的错误信息,请勿将其作为屏幕截图发布... 很抱歉这样做。我刚刚编辑了它。 【参考方案1】:我认为您缺少 manifest.properties
文件。您能否解压缩thai.tok.bin
文件并检查它是否包含这些文件:
token.model
(二进制分词器模型)
manifest.properties
(配置)
manifest.properties
的内容应该是这样的,取自您链接到的问题:
Manifest-Version=1.0.
Language=th
OpenNLP-Version=1.5.0
Component-Name=TokenizerME
useAlphaNumericOptimization=false
【讨论】:
我的 manifest.properties 文件与您发布的一样,但我遇到了同样的错误。 对不起,不知道。 对不起我的错误。您的解决方案很实用,但我定义了错误的 manifest.properties 文件扩展名。谢谢。 我能再问你一些问题吗?我遇到了一个新问题,即结果似乎没有编码为 utf-8 "à¸?ินà¸à¸°à¹„รยังภ™à¸²à¸¢”。你知道我该如何解决吗? 听起来像是语言环境问题。如果键入locale
,LANG 和 LC_ALL 的值是多少? (另外,你用的是Cygwin吗?我对Windows不太了解……)以上是关于OpenNLP 在使用泰语模型时出错的主要内容,如果未能解决你的问题,请参考以下文章