Топ питань
Часова шкала
Чат
Перспективи
Розрізнення меж речення
З Вікіпедії, вільної енциклопедії
Remove ads
Розрізнення меж речення, також відоме, як розбиття речення, виявлення меж речення і сегментація речення – задача в галузі обробки природної мови, яка визначає місце початку й закінчення речення. Інструменти обробки тексту часто вимагають, щоб вхідні дані були розділені на самостійні фрагменти; однак ідентифікація їхніх меж може бути складною через потенційну неоднозначність розділових знаків. На письмі крапка може позначати як кінець твердження, так і абревіатуру, десятковий роздільник, трикрапку чи адресу електронної пошти. Близько 47 % крапок у корпусі The Wall Street Journal позначають акроніми.[1] Знаки питання та оклику так само можуть бути невизначеними через використання в смайликах, комп'ютерному коді й сленгу.
Деякі мови, зокрема японська та китайська, мають чіткі маркери кінців речень.
Remove ads
Стратегії
Стандартний 'vanilla'-підхід для знаходження кінця речення:[прояснити]
- (a) Якщо це крапка, вона закінчує твердження.
- (b) Якщо попередній токен зі складеного вручну списку скорочень, то це не завершує речення.
- (c) Якщо наступний токен починається з великої літери – це кінець тези.
Ця стратегія правильно знаходить близько 95 % речень.[2] Такі речі, як скорочені імена, напр. «Д. Г. Лоуренс» (з пробілами між окремими словами, які утворюють повне ім'я), ідіосинкратичний орфоепічний правопис, що використовується для стилістичних цілей (часто стосується однієї концепції, наприклад, заголовок розважального твору «.hack//SIGN[en]») і використання нестандартної пунктуації у тексті часто підпадають під решту 5 %.
Інший підхід полягає в тому, щоб автоматично вивчати правила з набору документів, де кінці речень попередньо розмічені. Такі рішення базуються на моделі максимальної ентропії[en].[3] Наприклад, архітектура SATZ використовує нейронну мережу для усунення неоднозначності меж речень і досягає 98,5 % точності.
Remove ads
Програмне забезпечення
- Приклади застосування 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
- sent_detector – Java
- Lingua-EN-Sentence – perl
- Sentence.pm – perl
- SATZ – An Adaptive Sentence Segmentation System – by David D. Palmer – C
- Набори інструментів, які включають виявлення речень
- Apache OpenNLP –
- Freeling (software) –
- Natural Language Toolkit –
- Stanford NLP –
- GExp –
- CogComp-NLP
Remove ads
Див. також
- Розстановка речень[en]
- Роздільник слів[en]
- Правила переносу слів на письмі
- Пунктуація
- Сегментація тексту[en]
- Сегментація (мовознавство)
- Витяг речення[en]
- Пам'ять перекладів
- Багатослівний вираз[en]
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads