工程实践:基于规则句法的事件关系与主谓宾三元组抽取项目实现

目前,知识图谱在学术界如火如荼地进行,但受限于知识图谱各个环节中的性能问题,还尚未能够在工业界大规模运用。而与知识图谱中以实体为知识节点,实体关系为实体关系边对知识进行组织不同,以事件作为节点,事件关系作为节点关联的三元组信息的抽取和应用,当前也是大家在探索的一个方向(即事理图谱,先撇开其建模和应用现状不讲)。
笔者之前围绕事件关系三元组抽取,结合语言学背景,尝试了一些朴素方式下的事件关系三元组、事件主谓宾三元组抽取的工作。如:
顺承事件关系三元组抽取,地址:
https://github.com/liuhuanyong/SequentialEventExtration
因果事件关系三元组抽取,地址:
https://github.com/liuhuanyong/CausalityEventExtraction
复合事件关系三元组抽取,地址:
https://github.com/liuhuanyong/ComplexEventExtraction
事件主谓宾三元组抽取,地址:
https://github.com/liuhuanyong/EventTriplesExtraction
本文选择复合事件关系三元组抽取和事件主谓宾三元组抽取两个实践项目进行介绍。前者的输出可以作为后者的输入,通过识别出事件关系的两头事件实体,再通过主谓宾关系抽取,可以进一步得到事件的主体和客体,主体和客体可以进一步成为事件实体链接的桥梁,以实现与实体知识的联合建模。

一、ComplexEventExtraction复合事件关系三元组抽取

chinese compound event extraction,中文复合事件抽取,包括条件事件、因果事件、顺承事件、反转事件等事件抽取,并形成事件关系三元组。

1、复合事件关系中事件的界定
如果要做事件关系三元组抽取,那么就务必要回答其中的事件形态是什么,其边界在哪儿。基于框架体系FrameNet那套的ACE将事件表示成为一个个论元集合,CEC事件数据集、SemEval等数据集中将事件界定为一个动词。不同的事件界定方式,直接决定了后续技术的选择以及对应的技术难度下图总结了当前遇到的几种工业界事件表示方式:
以因果事件为例, 已知句子:这几天非洲闹猪瘟,导致国内猪肉涨价。
图片

图1-复合事件关系的

  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Python中进行三元组信息抽取,可以使用自然语言处理(NLP)工具包,如NLTK(自然语言工具包)或SpaCy。这里以NLTK为例,展示一个简单的三元组信息抽取示例: 首先,确保已经安装了NLTK库,并下载了相应的语料库和模型。可以使用以下代码进行下载: ```python import nltk nltk.download('punkt') nltk.download('averaged_perceptron_tagger') nltk.download('maxent_ne_chunker') nltk.download('words') ``` 接下来,使用NLTK进行句子分词、词性标注和命名实体识别(NER)。然后,从NER结果中提取三元组信息。 ```python import nltk def extract_triplets(sentence): triplets = [] # 句子分词 tokens = nltk.word_tokenize(sentence) # 词性标注 tagged = nltk.pos_tag(tokens) # 命名实体识别 entities = nltk.ne_chunk(tagged) # 提取三元组信息 for subtree in entities.subtrees(filter=lambda t: t.label() == 'PERSON' or t.label() == 'ORGANIZATION'): triplet = [] for leaf in subtree.leaves(): triplet.append(leaf[0]) if len(triplet) == 3: triplets.append(tuple(triplet)) return triplets # 示例句子 sentence = "Steve Jobs founded Apple Inc." # 提取三元组信息 triplets = extract_triplets(sentence) # 打印结果 for triplet in triplets: print(triplet) ``` 上述代码将输出句子中的三元组信息: ``` ('Steve', 'Jobs', 'Apple Inc.') ``` 请注意,这只是一个简单的示例,您可以根据具体需求进行更复杂的三元组信息抽取。此外,还可以尝试使用其他NLP工具包,如SpaCy,以获取更高级和更准确的信息抽取结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值