您可以通過使用解析器,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模型的培訓。
非常感謝,讓我檢查一下這個消息,然後回到你身邊。 – Ashfaq
我已經訓練了一個OPENNLP NER模型,有40條新聞,其中有 QUETTA 兩名未成年人死亡, 3人當隋瓦斯在一所房子造成爆炸在星期二這裏地理新聞報道。 然後,我用這個模型的一個看不見的消息,它開始給我所期望的輸出... 你說這是一個好方法嗎?我的意思是我訓練了一些更多的新聞,我猜想它達到300的準確性更好.. –
Ashfaq
看起來很好(有趣的分類學),只要你訓練足夠,它會盡全力給你你需要的東西。 – markg