我正在从水事故报告中提取因果关系句子。我在这里使用NLTK作为工具。我通过采用20个因果句结构来手动创建了regExp语法[请参见下面的示例]。构造的语法是以下类型的

grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}'''

现在,语法对测试集具有100%的记忆性(我建立了具有50个因果关系句子和50个非因果关系句子的我自己的玩具数据集),但精度较低。我想问一下:
  • 如何训练NLTK以自动构建正则表达式语法
    提取特定类型的句子。
  • 有没有人尝试提取因果关系句子。例子
    因果句是:
  • 村子里卫生条件差,结果她
    健康问题。
  • 她村里的水不纯,因此,她遭受了
    从寄生虫。
  • 由于村庄卫生条件差,她有健康问题。
    我只想从一个句子中提取上述类型的句子
    大文本。
  • 最佳答案

    与该书的作者进行了简短的讨论:“用NLTK 2.0食谱进行Python文本处理”,Jacob Perkins先生。他说:“句子的广义语法非常难。我会看看是否可以找到常用的标记模式,并使用它们。但是实际上,您实际上是通过正则表达式匹配进行分类。解析通常用于提取词库中的词组。句子,或产生句子的深层解析树,但您只是试图识别/提取句子,这就是为什么我认为分类是一种更好的方法,请尝试将带标签的单词作为特征,因为语法可能意义重大。”接受他的建议后,我查看了我的因果句,发现这些句中有类似

    consequently
    as a result
    Therefore
    as a consequence
    For this reason
    For all these reasons
    Thus
    because
    since
    because of
    on account of
    due to
    for the reason
    so, that
    

    这些词确实在句子中联系了因果关系。使用这些连接器,现在很容易提取因果关系语句。可以在arxiv上找到详细的报告:https://arxiv.org/pdf/1507.02447.pdf

    关于nlp - 使用NLTK python进行因果句提取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13068386/

    10-12 20:58