使用NLTK python的因果句抽取

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

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

现在语法对测试集有100%的回忆(我构建了我自己的玩具数据集,其中包含50个因果句和50个非因果句),但精度较低。 我想问一下:

  • 如何训练NLTK自动构建正则表达式语法以提取特定类型的句子。
  • 有没有人试图提取因果句子。 例如因果句子是:

  • 该村卫生条件差,因此,她有健康问题。

  • 她的村庄里有水不洁,因此她患了寄生虫。

  • 由于村里卫生条件差,她有健康问题。 我想从大文本中只提取上述类型的句子。


  • 与本书作者简短讨论了一下:“Python文本处理与NLTK 2.0食谱”,雅各布珀金斯先生。 他说:“一个句子的广义语法是非常困难的,我会反过来看看你是否可以找到共同的标记模式,然后使用它们,但是你基本上是通过正则表达式匹配来进行分类的,分析通常用来提取句子,或者生成一个句子的深层解析树,但是你只是试图识别/提取句子,这就是为什么我认为分类是一种更好的方法。当你尝试这样做时,考虑将标记词作为特征加以考虑,因为语法可能很重要。“ 听取他的建议,我看了看我的因果句子,发现这些句子有类似的词

    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
    

    这些词是句子中的连接因果关系。 现在使用这些连接器很容易提取因果句子。

    链接地址: http://www.djcxy.com/p/65159.html

    上一篇: Causal Sentences Extraction Using NLTK python

    下一篇: Extracting Words using nltk from German Text