我正在从水事故报告中提取因果关系句子。我在这里使用NLTK作为工具。我通过采用20个因果句结构来手动创建了regExp语法[请参见下面的示例]。构造的语法是以下类型的
grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}'''
现在,语法对测试集具有100%的记忆性(我建立了具有50个因果关系句子和50个非因果关系句子的我自己的玩具数据集),但精度较低。我想问一下:
提取特定类型的句子。
因果句是:
健康问题。
从寄生虫。
我只想从一个句子中提取上述类型的句子
大文本。
最佳答案
与该书的作者进行了简短的讨论:“用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/