Как получить POS-теги сложных слов в Стэнфорде

Я использовал Stanford POS Tagger, чтобы пометить части речи в предложении, я использовал следующий код:

private static MaxentTagger tagger = new MaxentTagger(".../english-left3words-distsim.tagger");
String tags= tagger.tagString(st);   //st is a string 

Это дает результат, когда слова не являются составными. Но я хочу получить POS-тег составных слов, таких как "вернуться назад", "информатика", "забрать".

Есть идеи?

1 ответ

Согласно документации для метода tagString

"Этот метод разбивает входные данные на слова"

Кроме того, модели обучены идентифицировать и маркировать слова (токены). Предлагаемые решения:

  1. Напишите собственный аннотатор, который зависит от (запускается после) POS-тегера, и когда он находит составной шаблон, например, "вернуться", он может аннотировать первый токен с помощью вашего собственного аннотатора. Вы можете идентифицировать эти шаблоны, создав словарь и / или сопоставив шаблоны грамматики. Последнее может дополнительно потребовать анализатор зависимостей.
  2. Используйте tokensregex. Это дает возможность реализовать регулярные выражения, которые работают с токенами и их аннотациями вместо символов.
  3. Обучайте новые модели, которые могут определять мульти-токены или составные слова.
Другие вопросы по тегам