java - 句子识别/检测: decide whether some text is a sentence or not

标签 java nlp

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

我正在寻找一个模型来决定某些文本是否是句子

最佳答案

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

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

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

当然,这个问题涉及到“what does it mean to be a sentence”这个危险的话题,许多语言学家会为这个话题与你争论。它还回避了似乎没有任何意义的语法句子问题,例如“Colorless green ideas sleep furiously.”或无数其他语义问题。

关于java - 句子识别/检测: decide whether some text is a sentence or not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435702/

相关文章:

python re match, findall or search 然后NLP(用它做什么?)

python - 有没有什么方法可以改变多类分类问题中目标类的数量?

java - 如何让所有网络流量都通过代理?

java - 我如何在 android studio 中创建 key 存储文件?

java - 从堆支持的最小优先级队列获取最大值的时间复杂度

nlp - Java 中的 spaCy 替代方案

node.js - Dialog api v2 - 获取应用程序默认凭据时出现意外错误 : Could not load the default credentials

python - Spacy 日语分词器

java - 更新 JLabel 以显示贪吃蛇游戏的当前得分

java - 如何使用java连接到远程计算机上的Mysql DB。 DB计算机所在的网络上有许多具有相同公共(public)IP的计算机吗?