Jump to content

Sentence boundary disambiguation

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Unready (talk | contribs) at 01:06, 28 November 2016 (syntaxhighlight lang="text"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Sentence boundary disambiguation (SBD), also known as sentence breaking, is the problem in natural language processing of deciding where sentences begin and end. Often natural language processing tools require their input to be divided into sentences for a number of reasons. However sentence boundary identification is challenging because punctuation marks are often ambiguous. For example, a period may denote an abbreviation, decimal point, an ellipsis, or an email address - not the end of a sentence. About 47% of the periods in the Wall Street Journal corpus denote abbreviations.[1] As well, question marks and exclamation marks may appear in embedded quotations, emoticons, computer code, and slang.

Languages like Japanese and Chinese have unambiguous sentence-ending markers.

Strategies

The standard 'vanilla' approach to locate the end of a sentence:[clarification needed]

(a) If it's a period, it ends a sentence.
(b) If the preceding token is in the hand-compiled list of abbreviations, then it doesn't end a sentence.
(c) If the next token is capitalized, then it ends a sentence.

This strategy gets about 95% of sentences correct.[2] 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.[3] The SATZ architecture uses a neural network to disambiguate sentence boundaries and achieves 98.5% accuracy.

Software

Perl compatible regular expression ("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 api

Toolkits that include sentence detection

See also

References

  1. ^ E. STAMATATOS; N. FAKOTAKIS; G. KOKKINAKIS. "1 AUTOMATIC EXTRACTION OF RULES FOR SENTENCE BOUNDARY DISAMBIGUATION". University of Patras. Retrieved 2009-01-03. {{cite web}}: Unknown parameter |last-author-amp= ignored (|name-list-style= suggested) (help)
  2. ^ "Doing Things with Words, Part Two: Sentence Boundary Detection". Retrieved 2009-01-03. {{cite web}}: |first= missing |last= (help)
  3. ^ "A Maximum Entropy Approach to Identifying Sentence Boundaries" (PDF). Retrieved 2009-01-03. {{cite web}}: |first= missing |last= (help)CS1 maint: multiple names: authors list (link)