【问题标题】:Splitting paragraphs into sentences将段落拆分为句子
【发布时间】:2013-05-21 15:57:27
【问题描述】:

给定一个段落,我想把它分成几个句子。目前我只是这样做:

var sentences = paragraph.split('.');

它在大多数情况下都有效,但是当它给出这样的句子时开始失败:

阿拉斯加是美国最大的州

因为U.S. 有句点,所以将S 解析为一个句子。

确定段落中句子的最佳方法是什么?我考虑过根据大写字母之前的最后一个句点来解析它们,但是如果该段落的键入不正确(句点后的小写字母),它也会失败

【问题讨论】:

  • 我错了还是你对 JavaScript 的兴趣不如对句子检测理论的兴趣?那么这可能更像是programmers.stackexchange.com的问题
  • 啊,欢迎来到正则表达式问题。也就是说,为什么不:split('.\s+')? (虽然我第二个dystroy的建议,正则表达式解析语言/语法很尴尬)。
  • 不要忘记句子可以以点以外的东西结尾!
  • 如果你想让这个算法准确,你要求的是非常复杂的东西。
  • @DavidThomas:J. R. “Bob” Dobbs 想卖给你一些东西。\s+ 不太合适。

标签: javascript text-segmentation


【解决方案1】:

我会首先通过在空格上拆分将段落标记为单词。然后重组句子,寻找以句号、问号和感叹号结尾的单词。如果它以句号结尾,请检查单词中是否有多个句号 - 如果是,则它是缩写而不是句子的结尾。

【讨论】:

  • 它仍然远非完美,任何与 Dwight D. Eisenhower 相关的句子都是无效的。
猜你喜欢
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2014-06-01
  • 2016-10-09
  • 2020-09-21
  • 1970-01-01
相关资源
最近更新 更多