大多数句子拆分器都能够在正确的位置拆分文本流。
我正在寻找一个模型来决定某些文本是否是句子。
简单的解决方案:使用解析器(例如,斯坦福解析器,它是免费的和 Java,但有很多选择)来解析句子。如果解析器返回一个解析树(即,如果它找到了一些合适的结构),则称它为一个句子。如果不是,那就说不是。这种方法不需要您付出额外的努力。
需要注意的是,就其本质而言,统计解析器可能会为实际上不合语法的句子返回“最佳猜测”解析。因此,在此方案下,不合语法的句子可能显示为“ok”。
另一方面,如果您想根据您的系统非常具体地了解什么是正确的语法,您可以编写自己的上下文无关语法 (CFG),然后使用基于 CFG 的解析器来解析句子(你可以找到一个或实现 CKY 算法或其他东西)。这将准确地告诉您句子是否符合您提供的语法规范。
当然,这个问题涉及到许多语言学家会为之争执的“句子是什么意思”这个危险的话题。它还回避了似乎没有任何意义的语法句子问题,例如“无色的绿色想法疯狂地睡觉。 ”或无数其他语义问题。