Sentence boundary disambiguation
Issue when parsing sentence structure
- 2 min read
- 2 chapters
Related on Lably
Through Natural language processing, Punctuation and Full stop
Some languages including Japanese and Chinese have unambiguous sentence-ending markers.
Strategies
The standard 'vanilla' approach to locate the end of a sentence:
- (a) If it is a period, it ends a sentence.
- (b) If the preceding token is in the hand-compiled list of abbreviations, then it does not end a sentence.
- (c) If the next token is capitalized, then it ends a sentence.
This strategy gets about 95% of sentences correct. Things such as shortened names, e.g. "D. H. Lawrence" (with whitespaces between the individual words that form the full name), idiosyncratic orthographical spellings used for stylistic purposes (often referring to a single concept, e.g. an entertainment product title like ".hack//SIGN") and usage of non-standard punctuation (or non-standard usage of punctuation) in a text often fall under the remaining 5%.
Another approach is to automatically learn a set of rules from a set of documents where the sentence breaks are pre-marked. Solutions have been based on a maximum entropy model. The SATZ architecture uses a neural network to disambiguate sentence boundaries and achieves 98.5% accuracy.
Sign in to keep reading
One more chapter is free with a Lably account.
Software
- Examples of use of Perl compatible regular expressions ("PCRE")
((?<=[a-z0-9][.?!])|(?<=[a-z0-9][.?!]\"))(\s|\r\n)(?=\"?[A-Z])$sentences = preg_split("/(?<!\..)([\?\!\.]+)\s(?!.\.)/", $text, -1, PREG_SPLIT_DELIM_CAPTURE);(for PHP)
- Online use, libraries, and APIs
- sent_detector – Java
- Lingua-EN-Sentence – perl
- Sentence.pm – perl
- SATZ – An Adaptive Sentence Segmentation System – by David D. Palmer – C
- Toolkits that include sentence detection
- Apache OpenNLP
- Freeling (software)
- Natural Language Toolkit
- Stanford NLP
- GExp
- CogComp-NLP

