Пропущенные слова в синтаксическом анализаторе дерева зависимостей Stanford NLP

Я делаю приложение, используя анализатор дерева зависимостей. На самом деле парсер такой: парсер Stanford, но он редко меняет один или две буквы некоторых слов в предложении, которое я хочу разобрать. Для меня это большая беда, потому что я не вижу никакой закономерности в этих изменениях и мне нужно дерево зависимостей с теми же словами моего предложения.

Все, что я вижу, это то, что только некоторые слова имеют эти проблемы. Я работаю с базой данных твитов. Итак, у меня много грамматических ошибок в этих данных. Например, хэштег #AllAmericanhumour становится AllAmericanhumor. Не хватает одной буквы (у).

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

Спасибо всем заранее


person Thiago    schedule 27.07.2012    source источник


Ответы (1)


Вы можете указать параметры токенизатора с помощью флага/свойства -tokenize.options. Для этой конкретной нормализации вы можете отключить ее с помощью

-tokenize.options americanize=false

Существуют также различные другие способы нормализации, которые можно отключить (см. PTBTokenizer или http://nlp.stanford.edu/software/tokenizer.shtml. Вы можете многое отключить с помощью

-tokenize.options ptb3Escaping=false

Однако синтаксический анализатор обучается на данных, которые выглядят как выходные данные ptb3Escaping=true, и поэтому его производительность будет снижаться при использовании с ненормализованными токенами. Таким образом, вы можете рассмотреть альтернативные стратегии.

Если вы работаете на уровне Java, вы можете посмотреть на токены слов, которые на самом деле являются картами, и у них есть разные ключи. OriginalTextAnnotation предоставит вам ненормализованный токен, даже если он был нормализован. CharacterOffsetBeginAnnotation и CharacterOffsetEndAnnotation будут отображать смещения символов в тексте.

p.s. И вы должны принять некоторые ответы :-).

person Christopher Manning    schedule 28.07.2012