1

我正在使用斯坦福分词器。但我有一个问题。

我输入命令:

$ 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:?

在分词处理之前是否应该音译句子?

4

2 回答 2

1

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

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

关于造成这种情况的原因,我有两种理论:

  1. 文本中的某处有一个字符无法通过当前编码进行编码(斯坦福默认使用 UTF-8,但您可以使用-encoding标志更改它)
  2. 斯坦福不知道如何标记一个包含非常特殊字符的单词。

无论哪种情况,这都无需担心。如果您对整个输入数据只收到一个警告,那么可能发生的最糟糕的事情是分词器可能会忽略句子的一小部分。

顺便说一句,如果您想了解更多关于字符编码的信息,Joel关于 Unicode 的文章是一个很好的起点。

于 2013-08-13T12:24:38.467 回答
0

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

以下是http://nlp.stanford.edu/software/tokenizer.shtml关于不可标记选项的内容:

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

于 2013-12-07T04:05:43.747 回答