【问题标题】:How to perform information extraction from news paper articles with a NLP library?如何使用 NLP 库从报纸文章中提取信息?
【发布时间】:2013-12-11 06:38:55
【问题描述】:

我正在做大学最后一年的项目,我的任务是从包含犯罪的新闻中提取因果关系。我还需要提取犯罪地点。我使用 OPENNLP 名称实体识别器来提取位置。到目前为止,我为位置名称训练了一个模型,并且它在我的场景中运行良好。现在我正在搜索一些东西(一种方式或一个库)来提取因果关系。这是我正在使用的新闻的快照,粗体和斜体文本是我要提取的。需要为此目的的库的帮助,例如 OPENNLP,或任何对我有用的东西以执行此任务。

新闻1:

卡拉奇:周一至少有 12 人在该市被枪杀,其中两人 显然在宗派袭击中丧生,其他受害者之一是 Muttahida Qaumi 运动活动家。

新闻2:

卡拉奇:据 Geo News 报道,警方周二在 Gulistan-e-Jauhar 和 Brigade 地区的不同突袭行动中逮捕了三名被告

新闻3:

卡拉奇:据 Geo News 报道,周一在 Baldia 镇的家中发现一个家庭的五名成员死亡

新闻4:

卡拉奇:据 Geo News 报道,信德游骑兵队昨晚在该市继续进行有针对性的行动围捕了 8 名职业罪犯,并从他们身上找到了武器。

【问题讨论】:

    标签: machine-learning nlp opennlp


    【解决方案1】:

    您可以通过使用解析器、组块器或词性标注器来识别动词短语和名词短语来提取因果关系。这可以通过提取连续动词和名词短语之类的方法来完成。 这是解析器的使用方法,它会给你整个句子结构来玩,你需要下载解析器模型

    使用这个类(我把你的一句话放进去)

    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);
      }
    }
    

    输出看起来像这样(保存在字符串缓冲区中)

    (TOP(S(``KARACHI:)(S(NP(QP(IN At)(JJS最少)(CD 12))(NNS人))(VP(VBD人)(VP(VBN)枪杀)(ADVP(RB下))(PP(IN中)(NP(NP(DT))(NN市))(PP(IN上)(NP(NP(NNP星期一))(CD二)) (PP (IN) (NP (PRP 他们)))))) (ADVP (显然是 RB)) (VP (VBD 被杀) (PP (IN) (NP (JJ 宗派) (NNS 攻击)) ))))) (CC and) (S (NP (NP (CD one)) (PP (IN of) (NP (DT the) (JJ other) (NNS 受害者)))) (NP (DT a) ( NNP Muttahida)(NNP Qaumi)(NNP 运动)))(活动家。)))

    请注意,您正在寻找的因果关系是一个名词动词组合,跟在您的一个命名实体(卡拉奇)之后。通过一些修补,您也许可以获得一些不错的结果。

    编辑:为了清楚起见,我写的是一个快速的建议,你应该为此研究一些语言启发式方法,并确保你想要的是真正的因果关系,并且不只是事件提取,您也许可以实现训练 NER 模型。

    【讨论】:

    • 非常感谢,让我检查一下这方面的一些新闻,然后再回复您。
    • 我已经用 40 条类似的新闻训练了一个 OPENNLP NER 模型 QUETTA 两名未成年人 被杀, 三名 其他人在 泄漏的 Sui 气体 导致 爆炸 星期二 此处 Geo News 报道时受伤。然后我将这个模型用于一个看不见的新闻,它开始给出我想要的输出......你说这是一个好方法吗?我的意思是我训练它处理更多的新闻,我猜它的准确性提高了 300 个......
    • 看起来不错(有趣的分类法),只要您训练得足够多,它就会尽最大努力满足您的需求。
    猜你喜欢
    • 2021-12-09
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    相关资源
    最近更新 更多