2013-12-11 79 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

相關問題