Устранение неоднозначности границ предложения
Устранение неоднозначности границ предложения ( SBD ), также известное как разрыв предложения , обнаружение границ предложения и сегментация предложения , является проблемой при обработке естественного языка при определении того, где предложения начинаются и заканчиваются. Инструменты обработки естественного языка часто требуют разделения входных данных на предложения; однако определение границ предложения может быть затруднено из-за потенциальной двусмысленности знаков препинания . В письменном английском языке точка . может обозначать конец предложения или может обозначать аббревиатуру , десятичную точку , многоточие или адрес электронной почты, а также другие возможности Около 47% периодов в The Wall Street Journal корпусе обозначают сокращения. [1] Вопросительные и восклицательные знаки могут быть столь же двусмысленными из-за их использования в смайликах , компьютерном коде и сленге .
В некоторых языках, включая японский и китайский, есть однозначные маркеры окончания предложений.
Стратегии [ править ]
Стандартный « ванильный » подход к нахождению конца предложения: [ нужны разъяснения ]
- (а) Если это точка, она завершает предложение.
- (б) Если предыдущий токен находится в составленном вручную списке сокращений , то он не завершает предложение.
- (c) Если следующий токен пишется с заглавной буквы, он завершает предложение.
Эта стратегия обеспечивает правильность около 95% предложений. [2] Такие вещи, как сокращенные имена, например « DH Lawrence » (с пробелами между отдельными словами, образующими полное имя), своеобразное орфографическое написание, используемое в стилистических целях (часто относящееся к одной концепции, например, к названию развлекательного продукта, например « .hack/ ). /ЗНАК ») и использование нестандартной пунктуации (или нестандартное употребление пунктуации ) в тексте часто попадают под оставшиеся 5%.
Другой подход заключается в автоматическом изучении набора правил из набора документов, в которых заранее отмечены разрывы предложений. Решения были основаны на модели максимальной энтропии . [3] НАБОР [4] архитектура использует нейронную сеть для устранения неоднозначности границ предложений и достигает точности 98,5%.
Программное обеспечение [ править ]
- Примеры использования регулярных выражений , совместимых с Perl (« PCRE »)
((?<=[a-z0-9][.?!])|(?<=[a-z0-9][.?!]\"))(\s|\r\n)(?=\"?[A-Z])
$sentences = preg_split("/(?<!\..)([\?\!\.]+)\s(?!.\.)/", $text, -1, PREG_SPLIT_DELIM_CAPTURE);
(для PHP )
- Использование в Интернете, библиотеки и API
- Наборы инструментов, включающие обнаружение предложений
См. также [ править ]
- Многословное выражение
- Пунктуация
- Извлечение предложения
- Расстояние между предложениями
- Сегментация речи
- Слогификация
- Сегментация текста
- Память переводов
- Разделитель слов
Ссылки [ править ]
- ^ Э. Стамататос; Н. Факотакис и Г. Коккинакис. «1 Автоматическое извлечение правил устранения неоднозначности границ предложения» . Университет Патры . Проверено 3 января 2009 г.
- ^ О'Нил, Джон. «Действия со словами, часть вторая: определение границ предложения» . Проверено 3 января 2009 г.
- ^ Рейнар, JC; Ратнапархи, А. «Подход с максимальной энтропией к определению границ предложения» (PDF) . Проверено 3 января 2009 г.
- ^ «SATZ: адаптивный детектор границ предложения» . Архивировано из оригинала 22 сентября 2007 г.
- ^ [1]
- ^ «Lingua-EN-Sentence-0.25 — Модуль разделения текста на предложения. — Metacpan.org» . Metacpan.org .
- ^ «Text::Sentence — модуль разделения текста на предложения — Metacpan.org» . Metacpan.org .
- ^ http://elib.cs.berkeley.edu/src/satz/
- ^ «Апач OpenNLP» . opennlp.apache.org .
- ^ [2]
- ^ «НЛТК::Набор инструментов естественного языка» . www.nltk.org .
- ^ «Программное обеспечение — Стэнфордская группа обработки естественного языка» . nlp.stanford.edu .
- ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» . code.google.com .
- ^ «КогКомпНЛП» . 2 января 2024 г. – через GitHub.