Проблемы с разбиением текста на предложения - PullRequest
2 голосов
/ 05 апреля 2019

Я пытаюсь найти лучший способ разбить текст на предложения.

Я попробовал Stanford NLP и был разочарован тем, насколько плохо он работал.

Например,

"Who are you?" asked another man.

Он распознается как два предложения: "Who are you?" и asked another man.

He said, "Nothing. Nothing at all."

Он распознается как два предложения:

He said, "Nothing. и Nothing at all.".

Я также пробовал простой ванильный Java BreakIterator.getSentenceInstance, и он не понимает никаких сокращений.Например, господин президент, он разделяется на два предложения "мистер"и "президент".Stanford NLP, тем не менее, не разделил Сэмюэля Л. Джексона или Джорджа Буша на несколько предложений.

Так что я не знаю, что еще можно попробовать.

1 Ответ

0 голосов
/ 06 апреля 2019

Существует две основные методики для разделения предложений:

  1. Модель на основе правил
  2. Прогнозная модель

CoreNLP использует класс TokenizeProcessor для разбиения предложений и токенизации

Пакет Stanford NLP использовал данные для обучения своей английской модели, используя http://universaldependencies.org

Кажется, что символ кавычки " является важной функцией в ваших данных.

Изучая один из наборов тестовых данных, из 2000 предложений только 36 экземпляров.

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

Это довольно распространенное явление, и, скорее всего, вам придется обучить модель разделения предложений для ваших данных.

В качестве альтернативы подход на основе правил может работать, если контекст ваших данных надежен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...