信息抽取
- 代码示例
from pprint import pprint
from paddlenlp import Taskflow
def information_extraction(schema, text):
ie = Taskflow('information_extraction', schema=schema)
return ie(text)
if __name__ == '__main__':
schema1 = "赛事名称,时间,胜者,败者".split(',')
text1 = "历经4小时51分钟的体力、意志力鏖战,北京时间9月9日上午纳达尔在亚瑟·阿什球场,以7比5、6比3、5比7、4比6和6比4击败赛会5号种子俄罗斯球员梅德韦杰夫,夺得了2019年美国网球公开赛男单冠军。"
schema2 = "地震强度,时间,震中位置,震源深度".split(',')
text2 = "中国地震台网正式测定:5月16日06时08分在云南临沧市凤庆县(北纬24.34度,东经99.98度)发生3.5级地震,震源深度10千米。"
pprint(information_extraction(schema1, text1))
pprint(information_extraction(schema2, text2))
- 返回结果
text1 = [{'时间': [{'end': 29,
'probability': 0.9515404083733898,
'start': 19,
'text': '北京时间9月9日上午'}],
'胜者': [{'end': 32,
'probability': 0.9937075222567415,
'start': 29,
'text': '纳达尔'}],
'败者': [{'end': 79,
'probability': 0.803839186968716,
'start': 63,
'text': '赛会5号种子俄罗斯球员梅德韦杰夫'}],
'赛事名称': [{'end': 95,
'probability': 0.9523320335827066,
'start': 83,
'text': '2019年美国网球公开赛'}]}]
text2 = [{'地震强度': [{'end': 56,
'probability': 0.9985972292364806,
'start': 52,
'text': '3.5级'}],
'时间': [{'end': 22,
'probability': 0.9866834978522263,
'start': 11,
'text': '5月16日06时08分'}],
'震中位置': [{'end': 50,
'probability': 0.7686417156063285,
'start': 23,
'text': '云南临沧市凤庆县(北纬24.34度,东经99.98度)'}],
'震源深度': [{'end': 67,
'probability': 0.99590186481241,
'start': 63,
'text': '10千米'}]}]