2016-12-21 4 views
1

Я работаю над построением на Stanford NER для повышения его точности. Идея состоит в том, чтобы идентифицировать теги POS, а затем собрать все NNP из предложения, а затем перебрать каждый NNP и посмотреть на его смежные слова в предложении. Если есть синтаксические подсказки, присутствующие вокруг слова типа «CEO» или «xyz said», тогда мы знаем, что первый NNP, вероятно, будет именем организации, а второй - человеком. Я пытаюсь создать правила поверх синтаксического анализатора, чтобы идентифицировать те метки, которые не принадлежат тегу NER.Извлечение смежных слов в строке, чтобы помочь повысить точность распознавателя распознанного объекта

До сих пор мне удалось извлечь NNP, но извлечение смежных слов - это то, с чем я сталкиваюсь. В Java или Stanford NER не так много информации, чтобы сделать это, есть некоторые вещи, которые работает с Leucen, как NGramExtractor

Как это сделать в окне? Спасибо за любую помощь. Псевдокод или инструкции также будут делать.

ответ

0

Я должен дать необходимое предупреждение об использовании таких правил, чтобы догадаться о статистической модели, а именно, что такого рода вещи часто бывают неприятными. Текущая модель CRF имеет функции, которые должны захватывать эти виды шаблонов, и если они не захватывают их, тогда существует приличная вероятность того, что либо (1) шаблон не появляется часто, либо (2) есть контр-примеры для шаблона о котором вы не думаете.

При этом вы достаточно легко создаете экстрактор TokensRegex, чтобы наклеить эти виды узоров. Это фактически то, как SUTime - временный парсер CoreNLP - реализован.