2013-08-12 2 views
1

Я использую словосочетание слова stanford. Но у меня проблема с этим.Стэнфордский сегментный сегмент

набираю команду:

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

Должно быть предложение транслитерироваться до обработки в сегментации?

+0

вам нужно будет проверить с разработчиками @ stanford о 'untokenizable?'. Чтобы ответить на ваш вопрос о входном предложении, нет, предложение должно быть в оригинальных арабских символах. На выходе кажется, что сегментация выполнена успешно, а вывод сохраняется в 'C: \ Users \ toshiba \ workspace \ SegDemo \ stanford-segmenter-2013-06-20 \ phrase.txt.segmented' – alvas

ответ

0

Я часто получаю такое же предупреждение, например:

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

У меня есть две теории относительно того, что причины этого:

  1. где-то в тексте есть символ, который не может быть закодированы текущая кодировка (Stanford использует UTF-8 по умолчанию, но вы можете изменить это с помощью флага -encoding)
  2. Стэнфорд не знает, как обозначить слово, содержащее очень специальный символ.

В любом случае это не о чем беспокоиться. Если вы получаете только одно предупреждение для всех ваших входных данных, то самое худшее, что может случиться, - это то, что токенизатор может игнорировать небольшую часть предложения.

Как в стороне, Joel's article on Unicode - очень хорошее стартовое место, если вы хотите больше узнать о кодировке символов.

+0

Я использую UTF- 8 как кодирование. Но все символы выходного файла «?» – amibar

0

Я не пробовал это с помощью сегментатора, но время от времени я видел это с токенизатором. Использование «-options untokenizable = noneKeep» работает для PTBTokenizer; возможно, он будет работать и для сегментатора.

Вот что http://nlp.stanford.edu/software/tokenizer.shtml должен сказать о untokenizable вариантах:

untokenizable: Что делать с untokenizable персонажей (те, которые не известны Tokenizer). Шесть опций, объединяющих вопрос о том, следует ли регистрировать предупреждение ни для кого, ни для первого, ни для всех, а также для их удаления или включения их в качестве одиночных токенов на выходе: noneDelete, firstDelete, allDelete, noneKeep, firstKeep, allKeep. По умолчанию используется значение «firstDelete».