我正在从水事故报告中提取因果关系句子。我在这里使用NLTK作为工具。我通过采用20个因果关系句子结构手动创建了regExp语法[请参见下面的示例]。构造的语法是以下类型的
grammar = r'''Cause: {
??<.>+?<.>+}'''现在,语法对测试集具有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