Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/liuhuanyong/EventTriplesExtraction
An experiment and demo-level tool for text information extraction (event-triples extraction), which can be a route to the event chain and topic graph, 基于依存句法与语义角色标注的事件三元组抽取,可用于文本理解如文档主题链,事件线等应用。
https://github.com/liuhuanyong/EventTriplesExtraction
Last synced: 2 days ago
JSON representation
An experiment and demo-level tool for text information extraction (event-triples extraction), which can be a route to the event chain and topic graph, 基于依存句法与语义角色标注的事件三元组抽取,可用于文本理解如文档主题链,事件线等应用。
- Host: GitHub
- URL: https://github.com/liuhuanyong/EventTriplesExtraction
- Owner: liuhuanyong
- Created: 2018-08-15T02:34:55.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-26T09:32:49.000Z (almost 2 years ago)
- Last Synced: 2024-08-01T16:40:34.204Z (3 months ago)
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 903
- Watchers: 19
- Forks: 218
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- StarryDivineSky - liuhuanyong/EventTriplesExtraction
README
# EventTriplesExtraction
EventTriplesExtraction based on dependency parser and semantic role labeling, 基于依存句法与语义角色标注的事件三元组抽取
文本表示一直是个重要问题,如何以清晰,简介的方式对一个文本信息进行有效表示是个长远的任务
我尝试过使用关键词,实体之间的关联关系,并使用textgrapher的方式进行展示,但以词作为文本信息单元表示这种效果不是特别好,所以,本项目想尝试从事件三元组的方式出发,对文本进行表示.# 方法1-基于ltp依存句法分析和语义角色标注的事件三元组抽取
from triples_extraction import *
extractor = TripleExtractor()
svos = extractor.triples_main(content)
print('svos', svos)# 方法1-测试结果
content = '李克强总理今天来我家了,我感到非常荣幸'
svos = [
['李克强总理', '来', '我家'],
['我', '感到', '荣幸']
]content = ''' 以色列国防军20日对加沙地带实施轰炸,造成3名巴勒斯坦武装人员死亡。此外,巴勒斯坦人与以色列士兵当天在加沙地带与以交界地区发生冲突,一名巴勒斯坦人被打死。当天的冲突还造成210名巴勒斯坦人受伤。
当天,数千名巴勒斯坦人在加沙地带边境地区继续“回归大游行”抗议活动。部分示威者燃烧轮胎,并向以军投掷石块、燃烧瓶等,驻守边境的以军士兵向示威人群发射催泪瓦斯并开枪射击。'''
svos = [
['以色列国防军', '实施', '轰炸'],
['冲突', '发生', '巴勒斯坦人与以色列士兵'],
['当天冲突', '造成', '受伤'],
['数千名巴勒斯坦人', '继续', '回归大游行抗议活动'],
['部分示威者', '投掷', '石块'],
['驻守边境以军士兵', '发射', '催泪瓦斯']
]
# 方法2-基于百度DDParser依存句法分析的事件三元组抽取from baidu_svo_extract import *
extractor = SVOParser()
svos = extractor.triples_main(content2)
print('svos', svos)
# 方法2-测试结果
content = '李克强总理今天来我家了,我感到非常荣幸'
svos = [
['总理李克强', '来', '我家'],
['我', '感到', '荣幸']]
]content = ''' 以色列国防军20日对加沙地带实施轰炸,造成3名巴勒斯坦武装人员死亡。此外,巴勒斯坦人与以色列士兵当天在加沙地带与以交界地区发生冲突,一名巴勒斯坦人被打死。当天的冲突还造成210名巴勒斯坦人受伤。
当天,数千名巴勒斯坦人在加沙地带边境地区继续“回归大游行”抗议活动。部分示威者燃烧轮胎,并向以军投掷石块、燃烧瓶等,驻守边境的以军士兵向示威人群发射催泪瓦斯并开枪射击。'''
svos = [
['20日', '实施', '轰炸']
['当天冲突', '造成', '210名']
['巴勒斯坦人', '回归', '大游行']
['部分示威者', '燃烧', '轮胎']
]# 方法3-基于词性模板规则的事件三元组抽取
from pattern_event_triples import *
extractor = ExtractEvent()
events, spos = handler.phrase_ip(content1)
spos = [i for i in spos if i[0] and i[2]]
print('svos', svos)
# 方法3-测试结果
content = '李克强总理今天来我家了,我感到非常荣幸'
svos = [
('李克强总理', '来', '我家')
('李克强', '感到', '荣幸')
]content = ''' 以色列国防军20日对加沙地带实施轰炸,造成3名巴勒斯坦武装人员死亡。此外,巴勒斯坦人与以色列士兵当天在加沙地带与以交界地区发生冲突,一名巴勒斯坦人被打死。当天的冲突还造成210名巴勒斯坦人受伤。
当天,数千名巴勒斯坦人在加沙地带边境地区继续“回归大游行”抗议活动。部分示威者燃烧轮胎,并向以军投掷石块、燃烧瓶等,驻守边境的以军士兵向示威人群发射催泪瓦斯并开枪射击。'''
svos = [
('数千名巴勒斯坦人在加沙地带边境地区', '继续回归游行', '抗议活动')
('部分示威者', '燃烧', '轮胎')
('边境', '以军', '士兵向示威人群发射催泪瓦斯开枪射击')
('士兵向示威人群', '发射', '催泪瓦斯开枪射击')
]# 总结
本项目公开了基于ltp句法分析和语义角色标注、基于百度DDParser以及基于词法模式的事件三元组抽取方法,并给了实验示例。可以得到以下结论:
1、LTP在DDParser之外,还提供了语义角色标注的功能,这个可以用于事件三元组抽取的有效补充。
2、LTP速度比DDParser要快。
3、基于词法模式的事件三元组抽取速度最快,但效果取决于分词、词性标注性能。
4、基于词法模式,可以得到语义更长的三元组元素信息。If any question about the project or me ,see https://liuhuanyong.github.io/
如有自然语言处理、知识图谱、事理图谱、社会计算、语言资源建设等问题或合作,可联系我:
1、我的github项目介绍:https://liuhuanyong.github.io
2、我的csdn博客:https://blog.csdn.net/lhy2014
3、about me:刘焕勇,中国科学院软件研究所,[email protected]