句子识别/检测:判断某些文本是否为句子

时间:2012-05-03 16:39:55

标签: java nlp

大多数句子分割器都能够将文本流分割到正确的位置。

我正在寻找能够决定某些文字是否为句子的模型

1 个答案:

答案 0 :(得分:4)

简单的解决方案:使用解析器(例如,Stanford Parser,它是免费的和Java,但有很多选项)来解析句子。如果解析器返回一个解析树(即,如果它找到一些合适的结构),则将其称为句子。如果没有,那就说不是。这种方法不需要您付出额外的努力。

需要注意的是,就其本质而言,统计解析器可能会为实际不合语法的句子返回“最佳猜测”解析。因此,在该方案下,不合语法的句子有可能显示为“ok”。

另一方面,如果您希望根据您的系统非常具体地了解不是正确的语法,您可以编写自己的上下文 - 自由语法(CFG),然后使用基于CFG的解析器来解析句子(你可以找到一个或实现CKY算法或其他东西)。这将告诉您正好该句子是否符合您提供的语法规范。

当然,这个问题涉及“what does it mean to be a sentence”的危险主题,许多语言学家会为此而战。它还侧重于语法句子的问题,这些问题似乎并不意味着诸如“Colorless green ideas sleep furiously.”或其他许多语义问题。