斯坦福字分段

时间:2013-08-12 16:20:25

标签: nlp stanford-nlp

我正在使用stanford word segmenter。但我有一个问题。

我输入命令:

$ C:\Users\toshiba\workspace\SegDemo\stanford-segmenter-2013-06-20>java -cp seg.jar;stanford-segmenter-3.2.0-javadoc.jar;stanford-segmenter-3.2.0-sources.jar -mx1g edu.stanford.nlp.international.arabic.process.ArabicSegmenter -loadClassifier data/arabic-segmenter-atbtrain.ser.gz -textFile phrase.txt > phrase.txt.segmented 

我有以下过程:

Loaded ArabicTokenizer with options: null
loadClassifier=data/arabic-segmenter-atbtrain.ser.gz
textFile=phrase.txt
featureFactory=edu.stanford.nlp.international.arabic.process.ArabicSegmenterFeat
ureFactory
loadClassifier=data/arabic-segmenter-atbtrain.ser.gz
textFile=phrase.txt
featureFactory=edu.stanford.nlp.international.arabic.process.ArabicSegmenterFeat
ureFactory
Loading classifier from C:\Users\toshiba\workspace\SegDemo\stanford-segmenter-20
13-06-20\data\arabic-segmenter-atbtrain.ser.gz ... done [1,2 sec].
Untokenizable: ?
Done! Processed input text at 475,13 input characters/second

我不明白“ Untokenizale:?

在分割处理之前是否应对音译进行音译?

2 个答案:

答案 0 :(得分:1)

我经常收到相同的警告,例如:

WARNING: Untokenizable: ₪ (U+20AA, decimal: 8362)

关于是什么原因,我有两个理论:

  1. 文本中某处有一个字符无法通过当前编码进行编码(默认情况下,斯坦福使用UTF-8,但您可以使用-encoding标志进行更改)
  2. 斯坦福不知道如何标记包含非常特殊字符的单词。
  3. 无论哪种情况,都无需担心。如果您只对整个输入数据发出一个警告,那么可能发生的最糟糕的事情就是令牌化器可能会忽略一小部分句子。

    顺便说一下,如果你想了解更多关于角色编码的话,Joel的article on Unicode是一个非常好的起点。

答案 1 :(得分:0)

我没有用分段器试过这个,但我不时用标记器看到过这个。使用“-options untokenizable = noneKeep”适用于PTBTokenizer;也许它也适用于分段器。

以下是http://nlp.stanford.edu/software/tokenizer.shtml对无法解释的选项所说的内容:

  

无法识别:如何处理不可识别的字符(标记器不知道的字符)。六个选项组合是否记录none,first或all的警告,以及是否删除它们或将它们作为单个字符标记包含在输出中:noneDelete,firstDelete,allDelete,noneKeep,firstKeep,allKeep。默认值为“firstDelete”。