使用NLTK python的因果句抽取
我从水事故报告中提取因果句子。 我在这里使用NLTK作为工具。 我通过20个因果句子结构手动创建了我的regExp语法[见下面的例子]。 构造的语法是这种类型的
grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}'''
现在语法对测试集有100%的回忆(我构建了我自己的玩具数据集,其中包含50个因果句和50个非因果句),但精度较低。 我想问一下:
有没有人试图提取因果句子。 例如因果句子是:
该村卫生条件差,因此,她有健康问题。
她的村庄里有水不洁,因此她患了寄生虫。
由于村里卫生条件差,她有健康问题。 我想从大文本中只提取上述类型的句子。
与本书作者简短讨论了一下:“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