@@ -398,47 +398,47 @@ from paddlenlp import Taskflow
398398### 信息抽取
399399<details ><summary >&emsp ; 适配多场景的开放域通用信息抽取工具 </summary ><div >
400400
401- 开放域信息抽取(OIE)是信息抽取的一种全新的范式 ,主要思想是减少人工参与,利用单一模型支持多种类型的开放抽取任务,用户可以使用自然语言自定义抽取目标,在实体、关系类别等未定义的情况下抽取输入文本中的信息片段。
401+ 开放域信息抽取(OIE)是信息抽取的一种全新范式 ,主要思想是减少人工参与,利用单一模型支持多种类型的开放抽取任务,用户可以使用自然语言自定义抽取目标,在实体、关系类别等未定义的情况下抽取输入文本中的信息片段。
402402
403403#### 支持多场景信息抽取任务
404404
405405- 命名实体识别
406406
407- 命名实体识别(Named Entity Recognition,简称NER),是指识别文本中具有特定意义的实体。在开放域信息抽取中,用户可以制定任意实体类型作为抽取的目标 。
407+ 命名实体识别(Named Entity Recognition,简称NER),是指识别文本中具有特定意义的实体。在开放域信息抽取中,抽取的类别没有限制,用户可以自己定义 。
408408
409- 例如抽取的目标实体类型是"出租方"和"承租方 ", schema构造如下:
409+ 例如抽取的目标实体类型是"时间"、"选手"和"赛事名称 ", schema构造如下:
410410
411411 ``` text
412- ['出租方 ', '承租方 ']
412+ ['时间 ', '选手', '赛事名称 ']
413413 ```
414414
415415 预测:
416416
417417 ``` python
418418 >> > from paddlenlp import Taskflow
419419
420- >> > schema = [' 出租方 ' , ' 承租方 ' ] # Define the schema for entity extraction
420+ >> > schema = [' 时间 ' , ' 选手 ' , ' 赛事名称 ' ] # Define the schema for entity extraction
421421 >> > ie = Taskflow(' information_extraction' , schema = schema)
422- >> > ie(' 出租方:小明 地址:筒子街12号 电话:12345678900 承租方:小红 地址:新华路8号 电话:1234500000 ' )
423- [{' 出租方 ' : [{' text' : ' 小明 ' , ' start' : 4 , ' end' : 6 , ' probability' : 0.9767557939143963 }], ' 承租方 ' : [{' text' : ' 小红 ' , ' start' : 36 , ' end' : 38 , ' probability' : 0.9588206726186428 }]}]
422+ >> > ie(" 2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌! " )
423+ [{' 时间 ' : [{' text' : ' 2月8日上午 ' , ' start' : 0 , ' end' : 6 , ' probability' : 0.9907337794563702 }], ' 选手 ' : [{' text' : ' 谷爱凌 ' , ' start' : 28 , ' end' : 31 , ' probability' : 0.8914310308098763 }], ' 赛事名称 ' : [{ ' text ' : ' 北京冬奥会自由式滑雪女子大跳台决赛 ' , ' start ' : 6 , ' end ' : 23 , ' probability ' : 0.8944207860063003 }]}]
424424 ```
425425
426426- 关系抽取
427427
428428 关系抽取(Relation Extraction,简称RE),是指从文本中识别实体并抽取实体之间的语义关系,即抽取三元组(entity1,关系类型,entity2)。
429429
430- 例如抽取的目标是"出租方的地址"、"出租方的电话 "、"承租方的地址"和"承租方的电话 ", schema构造如下:
430+ 例如抽取的目标是"歌曲名"对应实体词的"歌手 "、"所属专辑 ", schema构造如下:
431431
432432 ``` text
433- [{'出租方 ': ['地址 ', '电话'], '承租方': ['地址', '电话']}]
433+ {'歌曲名称 ': ['歌手 ', '所属专辑']}
434434 ```
435435
436436 预测:
437437
438438 ``` python
439- >> > schema = [{ " 歌曲名称" :[ " 歌手 " , " 所属专辑" ]}] # Define the schema for relation extraction
439+ >> > schema = { ' 歌曲名称' : [ ' 歌手 ' , ' 所属专辑' ]} # Define the schema for relation extraction
440440 >> > ie.set_schema(schema) # Reset schema
441- >> > ie(" 《告别了》是孙耀威在专辑爱的故事里面的歌曲" )
441+ >> > ie(' 《告别了》是孙耀威在专辑爱的故事里面的歌曲' )
442442 [{' 歌曲名称' : [{' text' : ' 告别了' , ' start' : 1 , ' end' : 4 , ' probability' : 0.7721050787207417 , ' relations' : {' 歌手' : [{' text' : ' 孙耀威' , ' start' : 6 , ' end' : 9 , ' probability' : 0.9996328066160487 }], ' 所属专辑' : [{' text' : ' 爱的故事' , ' start' : 12 , ' end' : 16 , ' probability' : 0.9981007942846247 }]}}]}]
443443 ```
444444
@@ -448,18 +448,18 @@ from paddlenlp import Taskflow
448448
449449 事件抽取 (Event Extraction, 简称EE),是指从自然语言文本中抽取事件并识别事件类型和事件论元的技术。UIE所包含的事件抽取任务,是指根据已知事件类型,抽取该事件所包含的事件论元。
450450
451- 例如抽取的目标是"地震"的 "地震强度"、"时间"、"震中位置"和"震源深度",schema构造如下:
451+ 例如抽取的目标是"地震"事件的 "地震强度"、"时间"、"震中位置"和"震源深度"这些信息 ,schema构造如下:
452452
453453 ``` text
454- [ {'地震触发词': ['地震强度', '时间', '震中位置', '震源深度']}]
454+ {'地震触发词': ['地震强度', '时间', '震中位置', '震源深度']}
455455 ```
456456
457457 触发词的格式统一为` XX触发词 ` ,` XX ` 表示具体事件类型,上例中的事件类型是` 地震 ` ,则对应触发词为` 地震触发词 ` 。
458458
459459 预测:
460460
461461 ``` python
462- >> > schema = [ {' 地震触发词' : [' 地震强度' , ' 时间' , ' 震中位置' , ' 震源深度' ]}] # Define the schema for event extraction
462+ >> > schema = {' 地震触发词' : [' 地震强度' , ' 时间' , ' 震中位置' , ' 震源深度' ]} # Define the schema for event extraction
463463 >> > ie.set_schema(schema) # Reset schema
464464 >> > ie(' 中国地震台网正式测定:5月16日06时08分在云南临沧市凤庆县(北纬24.34度,东经99.98度)发生3.5级地震,震源深度10千米。' )
465465 [{' 地震触发词' : [{' text' : ' 地震' , ' start' : 56 , ' end' : 58 , ' probability' : 0.9987181623528585 , ' relation' : {' 地震强度' : [{' text' : ' 3.5级' , ' start' : 52 , ' end' : 56 , ' probability' : 0.9962985320905915 }], ' 时间' : [{' text' : ' 5月16日06时08分' , ' start' : 11 , ' end' : 22 , ' probability' : 0.9882578028575182 }], ' 震中位置' : [{' text' : ' 云南临沧市凤庆县(北纬24.34度,东经99.98度)' , ' start' : 23 , ' end' : 50 , ' probability' : 0.8551415716584501 }], ' 震源深度' : [{' text' : ' 10千米' , ' start' : 63 , ' end' : 67 , ' probability' : 0.999158304648045 }]}}]}]
@@ -469,16 +469,18 @@ from paddlenlp import Taskflow
469469
470470 评论观点抽取,是指抽取文本中包含的评价维度、观点词。
471471
472- 例如希望抽取文本中包含的评价维度以及对应的观点词 ,schema构造如下:
472+ 例如抽取的目标是文本中包含的评价维度以及对应的观点词 ,schema构造如下:
473473
474474 ``` text
475- [ {'评价维度': [ '观点词']}]
475+ {'评价维度': '观点词'}
476476 ```
477477
478+ 评论观点抽取默认统一使用` 评价维度 ` 和` 观点词 ` 作为prompt。
479+ 478480 预测:
479481
480482 ``` python
481- >> > schema = [ {' 评价维度' : [ ' 观点词' ]}] # Define the schema for opinion extraction
483+ >> > schema = {' 评价维度' : ' 观点词' } # Define the schema for opinion extraction
482484 >> > ie.set_schema(schema) # Reset schema
483485 >> > ie(' 个人觉得管理太混乱了,票价太高了' )
484486 [{' 评价维度' : [{' text' : ' 管理' , ' start' : 4 , ' end' : 6 , ' probability' : 0.8902373594544031 , ' relation' : {' 观点词' : [{' text' : ' 混乱' , ' start' : 7 , ' end' : 9 , ' probability' : 0.9993566520321409 }]}}, {' text' : ' 票价' , ' start' : 11 , ' end' : 13 , ' probability' : 0.9856116411308662 , ' relation' : {' 观点词' : [{' text' : ' 高' , ' start' : 14 , ' end' : 15 , ' probability' : 0.995628420935013 }]}}]}]
@@ -489,40 +491,56 @@ from paddlenlp import Taskflow
489491 句子级情感倾向分类,即判断句子的情感倾向是"正向"还是"负向",schema构造如下:
490492
491493 ``` text
492- [ '情感倾向[正向,负向]']
494+ '情感倾向[正向,负向]'
493495 ```
494496
495497 预测:
496498
497499 ``` python
498- >> > schema = [ ' 情感倾向[正向,负向]' ] # Define the schema for sentence-level sentiment classification
500+ >> > schema = ' 情感倾向[正向,负向]' # Define the schema for sentence-level sentiment classification
499501 >> > ie.set_schema(schema) # Reset schema
500502 >> > ie(' 这个产品用起来真的很流畅,我非常喜欢' )
501503 [{' 情感倾向[正向,负向]' : [{' text' : ' 正向' , ' probability' : 0.9990110458312529 }]}]
502504 ```
503505
504- #### 多模型选择,满足精度、速度要求
506+ - 跨任务跨领域抽取
505507
506- - 使用` UIE-Tiny ` 进行预测
507- ``` python
508- >> > from paddlenlp import Taskflow
508+ 例如同时对文本进行实体抽取和关系抽取,schema可按照如下方式进行构造:
509509
510- >> > schema = [' 出租方' , ' 承租方' ]
511- >> > ie = Taskflow(' information_extraction' , schema = schema, model = " uie-medium" )
512- >> > ie(' 出租方:小明 地址:筒子街12号 电话:12345678900 承租方:小红 地址:新华路8号 电话:1234500000' )
513- [{' 出租方' : [{' text' : ' 小明' , ' start' : 4 , ' end' : 6 , ' probability' : 0.9944859053454067 }], ' 承租方' : [{' text' : ' 小红' , ' start' : 36 , ' end' : 38 , ' probability' : 0.8872193425652384 }]}]
510+ ``` text
511+ ['寺庙', {'丈夫': '妻子'}]
514512 ```
515513
516- - 使用` UIE-Large ` 进行预测
514+ ``` python
515+ >> > schema = [' 寺庙' , {' 丈夫' : ' 妻子' }]
516+ >> > ie.set_schema(schema)
517+ >> > ie(' 李治即位后,让身在感业寺的武则天续起头发,重新纳入后宫。' )
518+ [{' 寺庙' : [{' text' : ' 感业寺' , ' start' : 9 , ' end' : 12 , ' probability' : 0.998334669586864 }], ' 丈夫' : [{' text' : ' 李治' , ' start' : 0 , ' end' : 2 , ' probability' : 0.993496447299993 , ' relations' : {' 妻子' : [{' text' : ' 武则天' , ' start' : 13 , ' end' : 16 , ' probability' : 0.9994008822614759 }]}}]}]
519+ ```
520+ 521+ 522+ #### 多模型选择,满足精度、速度要求
523+ 524+ - 模型选择
525+ 526+ | 模型 | 结构 |
527+ | :---: | :--------: |
528+ | ` uie-tiny ` | 6-layers, 768-hidden, 12-heads |
529+ | ` uie-base ` (默认)| 12-layers, 768-hidden, 12-heads |
530+ | ` uie-large ` | 24-layers, 1024-hidden, 16-heads |
531+ 532+ - 使用` UIE-Tiny ` 进行预测
533+ 517534 ``` python
518535 >> > from paddlenlp import Taskflow
519536
520- >> > schema = [' 出租方 ' , ' 承租方 ' ]
521- >> > ie = Taskflow(' information_extraction' , schema = schema, model = " uie-large " )
522- >> > ie(' 出租方:小明 地址:筒子街12号 电话:12345678900 承租方:小红 地址:新华路8号 电话:1234500000 ' )
523- [{' 出租方 ' : [{' text' : ' 小明 ' , ' start' : 4 , ' end' : 6 , ' probability' : 0.9979592241500157 }], ' 承租方 ' : [{' text' : ' 小红 ' , ' start' : 36 , ' end' : 38 , ' probability' : 0.7938207126153785 }]}]
537+ >> > schema = [' 时间 ' , ' 选手 ' , ' 赛事名称 ' ]
538+ >> > ie = Taskflow(' information_extraction' , schema = schema, model = " uie-tiny " )
539+ >> > ie(" 2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌! " )
540+ [{' 时间 ' : [{' text' : ' 2月8日上午 ' , ' start' : 0 , ' end' : 6 , ' probability' : 0.9939956659967066 }], ' 选手 ' : [{' text' : ' 谷爱凌 ' , ' start' : 28 , ' end' : 31 , ' probability' : 0.8323544377549155 }], ' 赛事名称 ' : [{ ' text ' : ' 北京冬奥会自由式滑雪女子大跳台决赛 ' , ' start ' : 6 , ' end ' : 23 , ' probability ' : 0.624098394612048 }]}]
524541 ```
525542
543+ 526544#### 可配置参数说明
527545* ` batch_size ` :批处理大小,请结合机器情况进行调整,默认为1。
528546* ` model ` :选择任务使用的模型,默认为` uie-base ` ,可选有` uie-tiny ` ,` uie-base ` 和` uie-large ` 。
0 commit comments