首页 文章

从句子中找出有意义的子句

提问于
浏览
13

有没有办法找到仍然有意义且至少包含一个主语,动词和谓词/宾语的句子的所有子句?

例如,如果我们有一句话,“我将在下个月在奥斯汀的SXSW举办关于NLP的研讨会” . 我们可以从这句话中提取以下有意义的子句:“我要去做一个研讨会”,“我要做一个关于NLP的研讨会”,“我将在SXSW做一个关于NLP的研讨会”,“我打算在SXSW做一个研讨会“,”我将在奥斯汀做一个研讨会“,”我将在下个月做一个关于NLP的研讨会“,等等 .

请注意,此处没有推断的句子(例如“下个月将在SXSW举行NLP研讨会” . 虽然这是真的,但我们不需要将此作为此问题的一部分 . ) . 所有生成的句子都是给定句子的一部分 .

我们如何解决这个问题呢?我正在考虑创建带注释的训练数据,该训练数据具有训练数据集中每个句子的一组合法子句子 . 然后编写一些监督学习算法来生成模型 .

我是NLP和机器学习的新手,所以如果你们能提出一些方法来解决这个问题,那将会很棒 .

4 回答

  • 10

    一种方法是使用诸如PCFG之类的解析器 . 试图训练模型来检测“子句”可能会受到数据稀疏性的影响 . 另外,我怀疑你是否可以写下一个非常干净和明确的子句定义,如果你不能定义它,你就不能让注释器为它注释 .

  • 2

    Hickl等人的论文题为"Using Discourse Commitments to Recognize Textual Entailment"讨论了话语承诺的提取(子句) . 本文包括他们的算法的描述,在某种程度上对规则进行操作 . 他们将它用于RTE,输出中可能会有一些最小程度的扣除 . 文本简化可能是一个相关的领域 .

  • 5

    您可以使用Stanford CoreNLP提供的依赖性解析器 . 您的句子的折叠输出将如下所示 .

    nsubj(going-3, I-1)
    xsubj(do-5, I-1)
    aux(going-3, am-2)
    root(ROOT-0, going-3)
    aux(do-5, to-4)
    xcomp(going-3, do-5)
    det(seminar-7, a-6)
    dobj(do-5, seminar-7)
    prep_on(seminar-7, NLP-9)
    prep_at(do-5, -11)
    prep_in(do-5, Austin-13)
    amod(month-15, next-14)
    tmod(do-5, month-15)
    

    句子输出的最后5个是可选的 . 您可以删除一个或多个对您的句子不重要的部分 .
    大多数这些可选部分属于介词和修饰符,例如: prep_in, prep_do, advmod, tmod, etc . 见Stanford Dependency Manual .

    例如,如果从输出中删除所有修饰符,则会得到

    我将在奥斯汀的SXSW举办NLP研讨会 .

  • 6

    以下论文http://www.mpi-inf.mpg.de/~rgemulla/publications/delcorro13clausie.pdf处理来自斯坦福解析器的依赖关系并构造简单子句(文本简化) .

    查看在线演示 - https://d5gate.ag5.mpi-sb.mpg.de/ClausIEGate/ClausIEGate

相关问题