2013-12-11 38 views
2

我在做大学最后一年的项目,我的任务是从含有犯罪的新闻中提取因果关系。我还需要提取犯罪的地点。我使用OPENNLP名称实体识别器来提取位置。我训练了一个位置名称的模型,并且在我的场景中工作良好,直到现在。现在我正在寻找一些东西(一种方式或一个库)来提取因果关系。这里是我正在使用的新闻快照,Bold和Italic文本是我想要提取的。为了这个目的,需要图书馆的帮助,就像OPENNLP一样,或者任何可能对我有用的事情来完成这项任务。如何使用NLP库从新闻纸张文章中进行信息提取?

新闻1:

卡拉奇:至少12人被枪杀在城市上周一,他们两个 宗派袭击明显地杀害和其他受害者之一的Muttahida Qaumi 运动活动家。

新闻2:

卡拉奇:地理新闻报道,警方于周二逮捕了三名在不同的袭击指控在古丽-E-Jauhar和大队领域。

新闻3:

卡拉奇:一个家庭的五名成员被发现死他们Baldia镇这里周一房子里面,地理新闻报道。

新闻4:

卡拉奇:信德省流浪在城市的持续经营的目标,昨晚围捕八个专业罪犯,并从中恢复武器地理新闻报道。

回答

3

您可以通过使用解析器,chunker或词类标记器来标识动词短语和名词短语,从而推断出因果关系。这可以通过提取连续的动词和名词短语来完成。 这是如何使用的解析器,这将给你整个句子结构一起玩,你将需要下载解析器模型

使用这个类(我把你的句子之一)

public class ParseMap { 

    public static void main(String[] args) throws InvalidFormatException, IOException { 

    InputStream is = new FileInputStream("c:\\temp\\opennlpmodels\\en-parser-chunking.bin"); 
    ParserModel model = new ParserModel(is); 
    is.close(); 
    Parser parser = ParserFactory.create(model); 
    String sentence = "KARACHI: At least 12 people were gunned down in the city on Monday, two of them apparently killed in sectarian attacks and one of the other victims a Muttahida Qaumi Movement activist."; 
    Parse topParses[] = ParserTool.parseLine(sentence, parser, 1); 
    Parse p = topParses[0]; 
    p.showCodeTree(); 
    StringBuffer sb = new StringBuffer(sentence.length()*4); 
    p.show(sb); 
    System.out.println(sb); 
    } 
} 

输出看起来像这样(在StringBuffer的持有)

(TOP(S(``卡拉奇:)(S(NP(QP(在)(JJS至少)(CD 12))(NNS人)(VP(VBD))(VP(VBN枪杀)(ADVP(RB down))(PP(IN in) NP(NNP星期一)(CD二))(PP(IN))(NP(PRP他们))))))(ADVP(RB显然))(VP(VBD杀害)(PP(IN in)(NP(JJ教派))(NNS攻击)) ))))))(CC和)(S(NP(NP(CD一))(PP(IN))(NP(DT the)(JJ other)(NNS victim))))(NP(DT a)( NNP Muttahida)(NNP Qaumi)(NNP Movement)))(。 ))

注意你所寻找的因果关系是你的一个命名实体(卡拉奇)之后的名词动词组合。随着一些修补你可能会得到一些体面的结果。

编辑:只是要清楚,我写的是一个建议,得到的东西快速,你应该看一些这方面的语言启发,并确保实际上你想要什么是因果关系,而不仅仅是事件抽取,您可能能够实现NER模型的培训。

+0

非常感谢,让我检查一下这个消息,然后回到你身边。 – Ashfaq

+0

我已经训练了一个OPENNLP NER模型,有40条新闻,其中有 QUETTA 两名未成年人死亡, 3人隋瓦斯在一所房子造成爆炸星期二这里地理新闻报道。 然后,我用这个模型的一个看不见的消息,它开始给我所期望的输出... 你说这是一个好方法吗?我的意思是我训练了一些更多的新闻,我猜想它达到300的准确性更好.. – Ashfaq

+0

看起来很好(有趣的分类学),只要你训练足够,它会尽全力给你你需要的东西。 – markg

相关问题