Nlp 区分格式良好的英语句子和;“沙拉”一词; 我在找一个易于从C++、Python或F *中使用的图书馆,它可以把英语句子与“单词沙拉”区分开来。我尝试过,但不幸的是,它解析了以下内容: Some plants have with done stems animals with exercise that to predict?
毫无怨言。我不是在寻找非常复杂的东西,能够处理所有可能的角落案件。我只需要过滤掉一个明显的胡说八道。以下是我刚刚偶然发现的东西: 一个叫伊恩·坦尼的斯坦福学生 如果您想在此基础上开发自己的解决方案,我认为您应该注意第3节“特性和预处理”下使用的第4组特性,即语言模型 这可能不够,但我认为获得长度为n的每个子序列的概率分数是一个好的开始。3克,如“植物有带”、“有带做”、“干动物”、“干动物带”和“那要预测”似乎不大可能,这可能会导致整个句子上出现“胡说八道”的标签Nlp 区分格式良好的英语句子和;“沙拉”一词; 我在找一个易于从C++、Python或F *中使用的图书馆,它可以把英语句子与“单词沙拉”区分开来。我尝试过,但不幸的是,它解析了以下内容: Some plants have with done stems animals with exercise that to predict?,nlp,stanford-nlp,Nlp,Stanford Nlp,毫无怨言。我不是在寻找非常复杂的东西,能够处理所有可能的角落案件。我只需要过滤掉一个明显的胡说八道。以下是我刚刚偶然发现的东西: 一个叫伊恩·坦尼的斯坦福学生 如果您想在此基础上开发自己的解决方案,我认为您应该注意第3节“特性和预处理”下使用的第4组特性,即语言模型 这可能不够,但我认为获得长度为n的每个子序列的概率分数是一个好的开始。3克,如“植物有带”、“有带做”、“干动物”、“干动物带”和“那要预测”似乎不大可能,这可能会导致整个句子上出现“胡说八道”的标签 这种方法的优点是依赖于学习的
这种方法的优点是依赖于学习的模型,而不是一套手工制定的规则,afaik是您的另一种选择。很多人都会向你指出,但是我认为为普通英语开发自己的上下文无关语法要求有点高。这篇论文很有用,但对于解决这个问题来说,太深入了。以下是作者的启发性观点:
1功能
)李>
10个功能
)45个特征
)45x2=90个特征
)2个特征
)raw = ["This is is a well-formed sentence","but this ain't a good sent","just a fragment"]
import pandas as pd
df = pd.DataFrame([{"__TEXT__":i, "word": i.split(), 'ner':[]} for i in raw])
解析器似乎想要一个单词列表,以及使用用Java编写的StanfordCorenlp库识别的命名实体(NER)。您可以不传入任何内容(空列表[]
),函数会计算其他所有内容。您将得到一个包含句子所有特征的数据帧(如矩阵),然后您可以使用这些特征根据给定的规则来决定称什么为“格式良好”
此外,你不必在这里使用熊猫。词典列表也会起作用。但是原始代码使用了熊猫
因为这个例子涉及很多步骤,所以我创建了一个要点,在这里我通过一个例子,得出一个完整的句子列表和一个不完整的句子列表
我的要点:
这将用
spacy
取代Stanford CoreNLP
java库,spacy是一个更新且更易于使用的python库,用于填充缺失的元数据,如情感、命名实体和用于确定句子是否格式正确的词类。这在Python3.6下运行,但可以在2.7下运行。所有的库都是向后兼容的。看看这个问题的第二个答案。让一个图书馆检查句子的语法和拼写错误,而不仅仅是试图找到最可能的语法分析,这应该是一条可行的道路。@HugoMailhot这是一个很好的建议,但它不会一帆风顺。我把我的测试句子输入了,它以优异的成绩通过了测试。随着我的进步,我将在句子结构中寻找主语动词,而句子不会以形容词结尾。。。像这样的东西。代码链接不推荐使用
raw = ["This is is a well-formed sentence","but this ain't a good sent","just a fragment"]
import pandas as pd
df = pd.DataFrame([{"__TEXT__":i, "word": i.split(), 'ner':[]} for i in raw])