Розрізнення меж речення, також відоме, як розбиття речення, виявлення меж речення і сегментація речення задача в галузі обробки природної мови, яка визначає місце початку й закінчення речення. Інструменти обробки тексту часто вимагають, щоб вхідні дані були розділені на самостійні фрагменти; однак ідентифікація їхніх меж може бути складною через потенційну неоднозначність розділових знаків. На письмі крапка може позначати як кінець твердження, так і абревіатуру, десятковий роздільник, трикрапку чи адресу електронної пошти. Близько 47 % крапок у корпусі The Wall Street Journal позначають акроніми. Знаки питання та оклику так само можуть бути невизначеними через використання в смайликах, комп'ютерному коді й сленгу.
Деякі мови, зокрема японська та китайська, мають чіткі маркери кінців речень.
Стратегії Стандартний 'vanilla'-підхід для знаходження кінця речення:
(a) Якщо це крапка, вона закінчує твердження. (b) Якщо попередній токен зі складеного вручну списку скорочень, то це не завершує речення. (c) Якщо наступний токен починається з великої літери це кінець тези.
Ця стратегія правильно знаходить близько 95 % речень. Такі речі, як скорочені імена, напр. «Д. Г. Лоуренс» (з пробілами між окремими словами, які утворюють повне ім'я), ідіосинкратичний орфоепічний правопис, що використовується для стилістичних цілей (часто стосується однієї концепції, наприклад, заголовок розважального твору «») і використання нестандартної пунктуації у тексті часто підпадають під решту 5 %.
Інший підхід полягає в тому, щоб автоматично вивчати правила з набору документів, де кінці речень попередньо розмічені. Такі рішення базуються на . Наприклад, архітектура SATZ використовує нейронну мережу для усунення неоднозначності меж речень і досягає 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 sent_detectorJava Lingua-EN-Sentenceperl Sentence.pmperl SATZAn Adaptive Sentence Segmentation Systemby David D. PalmerC
Набори інструментів, які включають виявлення речень Apache OpenNLP Freeling (software) Natural Language Toolkit Stanford NLP GExp CogComp-NLP
Див. також
Правила переносу слів на письмі Пунктуація
Сегментація (мовознавство)
Пам'ять перекладів
Примітки
Посилання pySBD python Sentence Boundary Disambiguation