#stanford-nlp #text-processing
#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, и он не понимает никаких сокращений. Например, мистер Президент, оно разбивается на два предложения «Мистер» и «Президент». Однако Стэнфордское НЛП не разделило Сэмюэля Л. Джексона или Джорджа У. Разбить на несколько предложений.
Итак, я в недоумении, что еще попробовать.
Комментарии:
1. Возможно, вы пытаетесь использовать крайние случаи. Как работает ваш целевой текст?
2. Я не пробую крайние случаи. Это обычный текст.
3. Я имею в виду крайние случаи для модели. Возможно, его обучали на разных текстах. У вас есть конкретные тексты для разделения? Если да, можете ли вы показать пример?
4. Я использую библиотеку Стэнфордского НЛП. Это пример текста, который я пробовал: «Мертв». Он сказал это без эмоций. Он сказал: «Ничего. Вообще ничего.» Наконец он сказал: «Конечно, сложность… но это не проблема. Он долго смотрел на Корт. «Знакомое лицо», — сказал он. «Возможно, я узнал бы тебя без бороды и дождевой воды?» «Кто вы?» — спросил другой мужчина. Суд не ответил. Вместо этого он сказал: «Нам нужно зайти внутрь. Быстро.» Результат переговоров жизненно важен, потому что текущие уровни налогов, подписанные президентом Джорджем У. Срок действия Bush истекает 31 декабря.
Ответ №1:
Существует две основные методологии разделения предложений:
- Модель, основанная на правилах
- Прогностическая модель
CoreNLP использует класс TokenizeProcessor для разделения предложений и токенизации
Пакет Stanford NLP использовал данные для обучения своей английской модели с использованием http://universaldependencies.org
Похоже, что символ кавычки "
является важной особенностью в ваших данных.
Просматривая один из наборов тестовых данных, из 2000 предложений есть только 36 экземпляров.
Если это показательно, то, похоже, модель разделения предложений плохо отражает эту функцию, что означает, что она, вероятно, не будет хорошо работать при разделении предложений с помощью кавычек.
Это довольно распространенное явление, и, скорее всего, вам придется обучить модель разделения предложений для ваших данных.
Альтернативно, подход, основанный на правилах, может сработать, если контекст ваших данных надежен.