我想使用OpenNLP来标记泰语单词.我下载了OpenNLP和Thai tokenize模型并运行以下命令
./bin/opennlp POSTagger -lang th -model thai.tok.bin < sentence.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
我把thai.tok.bin
它下载到我调用的目录上并运行以下命令.sentence.txt
里面有这个文字?????????????
.但是,我得到的输出只有这些文字:
Usage: opennlp POSTagger model < sentences
Execution time: 0.000 seconds
Run Code Online (Sandbox Code Playgroud)
我很新OpenNLP
,如果有人知道如何从中获取输出,请告诉我.
您链接中的模型已过时.首先,您需要一些手动步骤来转换模型.
thai.tok.bin
为token.model
在同一文件夹中,创建一个名为manifest.properties
以下内容的文件:
Manifest-Version=1.0.
Language=th
OpenNLP-Version=1.5.0
Component-Name=TokenizerME
useAlphaNumericOptimization=false
Run Code Online (Sandbox Code Playgroud)现在您可以压缩文件,如果您使用的是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
Run Code Online (Sandbox Code Playgroud)现在您已经拥有了更新的tokenizer,您可以使用POS Tagger模型.
下载文件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
Run Code Online (Sandbox Code Playgroud)现在您可以压缩文件,如果您使用的是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
Run Code Online (Sandbox Code Playgroud)
结果是:
???????_VACT ??????_NCMN
Run Code Online (Sandbox Code Playgroud)
如果这是预期的结果,请告诉我.