Nlp 区分格式良好的英语句子和;“沙拉”一词; 我在找一个易于从C++、Python或F *中使用的图书馆,它可以把英语句子与“单词沙拉”区分开来。我尝试过,但不幸的是,它解析了以下内容: Some plants have with done stems animals with exercise that to predict?

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克,如“植物有带”、“有带做”、“干动物”、“干动物带”和“那要预测”似乎不大可能,这可能会导致整个句子上出现“胡说八道”的标签 这种方法的优点是依赖于学习的

毫无怨言。我不是在寻找非常复杂的东西,能够处理所有可能的角落案件。我只需要过滤掉一个明显的胡说八道。

以下是我刚刚偶然发现的东西: 一个叫伊恩·坦尼的斯坦福学生

如果您想在此基础上开发自己的解决方案,我认为您应该注意第3节“特性和预处理”下使用的第4组特性,即语言模型

这可能不够,但我认为获得长度为n的每个子序列的概率分数是一个好的开始。3克,如“植物有带”、“有带做”、“干动物”、“干动物带”和“那要预测”似乎不大可能,这可能会导致整个句子上出现“胡说八道”的标签


这种方法的优点是依赖于学习的模型,而不是一套手工制定的规则,afaik是您的另一种选择。很多人都会向你指出,但是我认为为普通英语开发自己的上下文无关语法要求有点高。

这篇论文很有用,但对于解决这个问题来说,太深入了。以下是作者的启发性观点:

  • 基线句子启发式:第一个字母大写, 这一行以其中一个结尾。?!(
    1功能
  • 字符、单词、标点符号、数字和命名实体的数量(来自Stanford CoreNLP NER tagger)以及按文本长度划分的标准化版本(
    10个功能
  • 词性分布标记:(#/#单词)用于每个Penn树库标记(
    45个特征
  • 第一个的词性标记的指示符 以及文本中的最后一个标记(
    45x2=90个特征
  • 语言模型原始分数(s lm=对数p(文本)) 和标准化得分(s'lm=s lm/#单词)(
    2个特征
  • 然而,经过大量搜索,github repo只包含测试和可视化。没有原始的培训和测试数据。以下是他计算这些特征的函数:

    (注意:这使用熊猫数据帧作为df)

    所以我想这是一个可以在这种情况下使用的函数。对于极简主义版本:

    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])