Java 句子识别/检测:确定某些文本是否为句子

Java 句子识别/检测:确定某些文本是否为句子,java,nlp,Java,Nlp,大多数分句器能够在正确的位置拆分文本流 我正在寻找一个模型,它将决定某些文本是否为句子 简单的解决方案:使用解析器(例如,斯坦福解析器,它是免费的Java解析器,但有很多选项)来解析句子。如果解析器返回一个解析树(即,如果它找到了一些合适的结构),那么将其称为一个句子。如果没有,就说没有。这种方法不需要您付出额外的努力 需要注意的是,就其本质而言,统计解析器可能会对实际不合语法的句子返回“最佳猜测”解析。因此,在这个方案下,一个不合语法的句子可能显示为“ok” 另一方面,如果您想根据您的系统非常

大多数分句器能够在正确的位置拆分文本流


我正在寻找一个模型,它将决定某些文本是否为句子

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

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

另一方面,如果您想根据您的系统非常具体地说明什么是或不是正确的语法,您可以编写自己的上下文无关语法(CFG),然后使用基于CFG的解析器解析句子(您可以找到一个或实现CKY算法或其他)。这将准确地告诉你这个句子是否符合你提供的语法规范


当然,这个问题涉及到许多语言学家为之争论的危险话题。它还回避了语法句子的问题,这些语法句子似乎没有任何意义,例如“”或无数其他语义问题。

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

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

另一方面,如果您想根据您的系统非常具体地说明什么是或不是正确的语法,您可以编写自己的上下文无关语法(CFG),然后使用基于CFG的解析器解析句子(您可以找到一个或实现CKY算法或其他)。这将准确地告诉你这个句子是否符合你提供的语法规范


当然,这个问题涉及到许多语言学家为之争论的危险话题。它还回避了似乎没有任何意义的语法句子问题,如“”或无数其他语义问题。

我想你的部分问题被省略了……请看一看,看它是否完整。@joshp你检测到这意味着你必须有某种文本的事实是句子检测!:-)即使我是一个低碳的生命体,我也有句子检测。我想你的部分问题被省略了…请看一下,看看它是否完整。@joshp你检测到的事实意味着你必须有某种文本是句子检测!:-)尽管我是一个低碳的生命体,但我确实有句子检测功能。或者类似“狗在谷仓里走来走去撒尿”。语法上很容易认为句子在“谷仓”之后结束,在这种情况下,“狗”是主语,动词是“走”。但这个句子真正的意思是“(狗(谁)在谷仓里走来走去)撒尿,“其中“dog”是主语,动词是“peed”,而“walkindthebarn”是从句。人类语言分析将需要很多前瞻性的东西。或者类似“狗在谷仓周围走动撒尿”。语法上很容易认为句子在“谷仓”之后结束,在这种情况下,“狗”是主语,动词是“行走”。但这个句子真正的意思是“(狗(谁)在谷仓周围走动)撒尿”,其中“狗”是主语,动词是“peed”,而“walkindthebarn”是从句。人类语言解析将需要大量的前瞻性工作。