我想使用OpenNLP来标记泰语单词。我下载了OpenNLP和Thai tokenize model并运行以下
./bin/opennlp POSTagger -lang th -model thai.tok.bin < sentence.txt > output.txt
我将我下载的thai.tok.bin
放在我调用的目录中并运行以下命令。 sentence.txt
在กินอะไรยังนาย
内有此文字。但是,我得到的输出只有这些文字:
Usage: opennlp POSTagger model < sentences
Execution time: 0.000 seconds
我是OpenNLP
的新手,如果有人知道如何从中获取输出,请告诉我。
答案 0 :(得分:5)
link中的模型已过时。首先,您需要一些手动步骤来转换模型。
thai.tok.bin
重命名为token.model
在同一文件夹中,使用以下内容创建名为manifest.properties
的文件:
Manifest-Version=1.0.
Language=th
OpenNLP-Version=1.5.0
Component-Name=TokenizerME
useAlphaNumericOptimization=false
现在您可以压缩文件,如果您使用的是Linux,则可以使用此命令:zip thai.tok.bin token.model manifest.properties
试试你的模特:
sh bin/opennlp TokenizerME ~/Downloads/thai-token.bin/thai.tok.bin < thai_sentence.txt
Loading Tokenizer model ... done (0,097s)
กินอะไร ยังนาย
Average: 333,3 sent/s
Total: 1 sent
Runtime: 0.003s
Execution time: 0,108 seconds
现在你已经拥有了更新的标记器,你可以使用POS标记器模型。
下载文件thai.tag.bin.gz并解压缩到空文件夹。将提取的文件thai.tag.bin
重命名为pos.model
在同一文件夹中,使用以下内容创建名为manifest.properties
的文件:
Manifest-Version=1.0
Language=th
OpenNLP-Version=1.5.0
Component-Name=POSTaggerME
现在您可以压缩文件,如果您使用的是Linux,则可以使用此命令:zip thai.pos.bin pos.model manifest.properties
最后,我们可以尝试将两个模型结合起来:
sh bin/opennlp TokenizerME ~/Downloads/thai-token.bin/thai.tok.bin < thai_sentence.txt > thai_tokens.txt
sh bin/opennlp POSTagger ~/Downloads/pt-pos-maxent/thai.pos.bin < thai_tokens.txt
结果是:
กินอะไร_VACT ยังนาย_NCMN
请告诉我这是否是预期结果。