来自命令行的 OpenNLP POSTagger 输出

OpenNLP POSTagger output from command line

我想使用OpenNLP in order to tokenize Thai words. I downloaded OpenNLP and 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 的新手,如果有人知道如何从中获取输出,请告诉我。

link 中的模型已过时。首先,您需要一些手动步骤来转换模型。

  1. 下载文件 thai.tok.bin.gz 并解压缩到一个空文件夹。将提取的文件 thai.tok.bin 重命名为 token.model
  2. 在同一文件夹中,创建一个名为 manifest.properties 的文件,内容如下:

    Manifest-Version=1.0.  
    Language=th  
    OpenNLP-Version=1.5.0  
    Component-Name=TokenizerME  
    useAlphaNumericOptimization=false  
    
  3. 现在你可以压缩文件了,如果你使用Linux你可以使用这个命令:zip thai.tok.bin token.model manifest.properties

  4. 试试你的模型:

    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 Tagger 模型执行类似的操作。

  1. 下载文件 thai.tag.bin.gz 并解压缩到空文件夹。将提取的文件 thai.tag.bin 重命名为 pos.model

  2. 在同一文件夹中,创建一个名为 manifest.properties 的文件,内容如下:

    Manifest-Version=1.0
    Language=th
    OpenNLP-Version=1.5.0
    Component-Name=POSTaggerME
    
  3. 现在你可以压缩文件了,如果你使用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

如果这是预期的结果,请告诉我。