@@ -437,35 +437,105 @@ from paddlenlp import Taskflow
437
437
' text' : ' 谷爱凌' }]}]
438
438
```
439
439
440
+ 例如抽取的目标实体类型是"肿瘤的大小"、"肿瘤的个数"、"肝癌级别"和"脉管内癌栓分级", schema构造如下:
441
+
442
+ ``` text
443
+ ['肿瘤的大小', '肿瘤的个数', '肝癌级别', '脉管内癌栓分级']
444
+ ```
445
+
446
+ 在上例中我们已经实例化了一个` Taskflow ` 对象,这里可以通过` set_schema ` 方法重置抽取目标。
447
+
448
+ 预测:
449
+
450
+ ``` python
451
+ >> > schema = [' 肿瘤的大小' , ' 肿瘤的个数' , ' 肝癌级别' , ' 脉管内癌栓分级' ]
452
+ >> > ie.set_schema(schema)
453
+ >> > pprint(ie(" (右肝肿瘤)肝细胞性肝癌(II-III级,梁索型和假腺管型),肿瘤包膜不完整,紧邻肝被膜,侵及周围肝组织,未见脉管内癌栓(MVI分级:M0级)及卫星子灶形成。(肿物1个,大小4.2×4.0×2.8cm)。" ))
454
+ [{' 肝癌级别' : [{' end' : 20 ,
455
+ ' probability' : 0.9243267447402701 ,
456
+ ' start' : 13 ,
457
+ ' text' : ' II-III级' }],
458
+ ' 肿瘤的个数' : [{' end' : 84 ,
459
+ ' probability' : 0.7538413804059623 ,
460
+ ' start' : 82 ,
461
+ ' text' : ' 1个' }],
462
+ ' 肿瘤的大小' : [{' end' : 100 ,
463
+ ' probability' : 0.8341128043459491 ,
464
+ ' start' : 87 ,
465
+ ' text' : ' 4.2×4.0×2.8cm' }],
466
+ ' 脉管内癌栓分级' : [{' end' : 70 ,
467
+ ' probability' : 0.9083292325934664 ,
468
+ ' start' : 67 ,
469
+ ' text' : ' M0级' }]}]
470
+ ```
471
+
440
472
- 关系抽取
441
473
442
- 关系抽取(Relation Extraction,简称RE),是指从文本中识别实体并抽取实体之间的语义关系,即抽取三元组(entity1,关系类型,entity2) 。
474
+ 关系抽取(Relation Extraction,简称RE),是指从文本中识别实体并抽取实体之间的语义关系,进而获取三元组信息,即<主体,谓语,客体> 。
443
475
444
- 例如抽取的目标是"歌曲名"对应实体词的"歌手 "、"所属专辑 ", schema构造如下:
476
+ 例如以"竞赛名称"作为抽取主体,抽取关系类型为"主办方 "、"承办方"和"已举办次数 ", schema构造如下:
445
477
446
478
``` text
447
- {'歌曲名称': ['歌手', '所属专辑']}
479
+ {
480
+ '竞赛名称': [
481
+ '主办方',
482
+ '承办方',
483
+ '已举办次数'
484
+ ]
485
+ }
448
486
```
449
487
450
488
预测:
451
489
452
490
``` python
453
- >> > schema = {' 歌曲名称 ' : [' 歌手 ' , ' 所属专辑 ' ]} # Define the schema for relation extraction
491
+ >> > schema = {' 竞赛名称 ' : [' 主办方 ' , ' 承办方 ' , ' 已举办次数 ' ]} # Define the schema for relation extraction
454
492
>> > ie.set_schema(schema) # Reset schema
455
- >> > ie(' 《告别了》是孙耀威在专辑爱的故事里面的歌曲' )
456
- [{' 歌曲名称' : [{' 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 }]}}]}]
493
+ >> > pprint(ie(' 2022语言与智能技术竞赛由中国中文信息学会和中国计算机学会联合主办,百度公司、中国中文信息学会评测工作委员会和中国计算机学会自然语言处理专委会承办,已连续举办4届,成为全球最热门的中文NLP赛事之一。' ))
494
+ [{' 竞赛名称' : [{' end' : 13 ,
495
+ ' probability' : 0.7825402622754041 ,
496
+ ' relations' : {' 主办方' : [{' end' : 22 ,
497
+ ' probability' : 0.8421710521379353 ,
498
+ ' start' : 14 ,
499
+ ' text' : ' 中国中文信息学会' },
500
+ {' end' : 30 ,
501
+ ' probability' : 0.7580801847701935 ,
502
+ ' start' : 23 ,
503
+ ' text' : ' 中国计算机学会' }],
504
+ ' 已举办次数' : [{' end' : 82 ,
505
+ ' probability' : 0.4671295049136148 ,
506
+ ' start' : 80 ,
507
+ ' text' : ' 4届' }],
508
+ ' 承办方' : [{' end' : 39 ,
509
+ ' probability' : 0.8292706618236352 ,
510
+ ' start' : 35 ,
511
+ ' text' : ' 百度公司' },
512
+ {' end' : 72 ,
513
+ ' probability' : 0.6193477885474685 ,
514
+ ' start' : 56 ,
515
+ ' text' : ' 中国计算机学会自然语言处理专委会' },
516
+ {' end' : 55 ,
517
+ ' probability' : 0.7000497331473241 ,
518
+ ' start' : 40 ,
519
+ ' text' : ' 中国中文信息学会评测工作委员会' }]},
520
+ ' start' : 0 ,
521
+ ' text' : ' 2022语言与智能技术竞赛' }]}]
457
522
```
458
523
459
- 在实体抽取中我们已经实例化了一个` Taskflow ` 对象,这里可以通过` set_schema ` 方法重置抽取目标。
460
-
461
524
- 事件抽取
462
525
463
- 事件抽取 (Event Extraction, 简称EE),是指从自然语言文本中抽取事件并识别事件类型和事件论元的技术。UIE所包含的事件抽取任务,是指根据已知事件类型,抽取该事件所包含的事件论元 。
526
+ 事件抽取 (Event Extraction, 简称EE),是指从自然语言文本中抽取预定义的事件触发词和事件要素,组合为相应的结构化信息 。
464
527
465
528
例如抽取的目标是"地震"事件的"地震强度"、"时间"、"震中位置"和"震源深度"这些信息,schema构造如下:
466
529
467
530
``` text
468
- {'地震触发词': ['地震强度', '时间', '震中位置', '震源深度']}
531
+ {
532
+ '地震触发词': [
533
+ '地震强度',
534
+ '时间',
535
+ '震中位置',
536
+ '震源深度'
537
+ ]
538
+ }
469
539
```
470
540
471
541
触发词的格式统一为` XX触发词 ` ,` XX ` 表示具体事件类型,上例中的事件类型是` 地震 ` ,则对应触发词为` 地震触发词 ` 。
@@ -486,48 +556,42 @@ from paddlenlp import Taskflow
486
556
例如抽取的目标是文本中包含的评价维度及其对应的观点词和情感倾向,schema构造如下:
487
557
488
558
``` text
489
- {'评价维度': ['观点词', '情感倾向[正向,负向]']}
559
+ {
560
+ '评价维度': [
561
+ '观点词',
562
+ '情感倾向[正向,负向]'
563
+ ]
564
+ }
490
565
```
491
566
492
567
预测:
493
568
494
569
``` python
495
570
>> > schema = {' 评价维度' : [' 观点词' , ' 情感倾向[正向,负向]' ]} # Define the schema for opinion extraction
496
571
>> > ie.set_schema(schema) # Reset schema
497
- >> > pprint(ie(" 地址不错,服务一般,设施陈旧" )) # Better print results using pprint
498
- [{' 评价维度' : [{' end' : 2 ,
499
- ' probability' : 0.9888139270606509 ,
500
- ' relations' : {' 情感倾向[正向,负向]' : [{' probability' : 0.998228967796706 ,
572
+ >> > pprint(ie(" 店面干净,很清静,服务员服务热情,性价比很高,发现收银台有排队" )) # Better print results using pprint
573
+ [{' 评价维度' : [{' end' : 20 ,
574
+ ' probability' : 0.9817040258681473 ,
575
+ ' relations' : {' 情感倾向[正向,负向]' : [{' probability' : 0.9966142505350533 ,
576
+ ' text' : ' 正向' }],
577
+ ' 观点词' : [{' end' : 22 ,
578
+ ' probability' : 0.957396472711558 ,
579
+ ' start' : 21 ,
580
+ ' text' : ' 高' }]},
581
+ ' start' : 17 ,
582
+ ' text' : ' 性价比' },
583
+ {' end' : 2 ,
584
+ ' probability' : 0.9696849569741168 ,
585
+ ' relations' : {' 情感倾向[正向,负向]' : [{' probability' : 0.9982153274927796 ,
501
586
' text' : ' 正向' }],
502
587
' 观点词' : [{' end' : 4 ,
503
- ' probability' : 0.9927847072459528 ,
588
+ ' probability' : 0.9945318044652538 ,
504
589
' start' : 2 ,
505
- ' text' : ' 不错 ' }]},
590
+ ' text' : ' 干净 ' }]},
506
591
' start' : 0 ,
507
- ' text' : ' 地址' },
508
- {' end' : 12 ,
509
- ' probability' : 0.9588297379365116 ,
510
- ' relations' : {' 情感倾向[正向,负向]' : [{' probability' : 0.9949389795770394 ,
511
- ' text' : ' 负向' }],
512
- ' 观点词' : [{' end' : 14 ,
513
- ' probability' : 0.9286753967902683 ,
514
- ' start' : 12 ,
515
- ' text' : ' 陈旧' }]},
516
- ' start' : 10 ,
517
- ' text' : ' 设施' },
518
- {' end' : 7 ,
519
- ' probability' : 0.9592857070501211 ,
520
- ' relations' : {' 情感倾向[正向,负向]' : [{' probability' : 0.9952498258302498 ,
521
- ' text' : ' 负向' }],
522
- ' 观点词' : [{' end' : 9 ,
523
- ' probability' : 0.9949359182521675 ,
524
- ' start' : 7 ,
525
- ' text' : ' 一般' }]},
526
- ' start' : 5 ,
527
- ' text' : ' 服务' }]}]
592
+ ' text' : ' 店面' }]}]
528
593
```
529
594
530
-
531
595
- 情感倾向分类
532
596
533
597
句子级情感倾向分类,即判断句子的情感倾向是“正向”还是“负向”,schema构造如下:
@@ -545,32 +609,54 @@ from paddlenlp import Taskflow
545
609
[{' 情感倾向[正向,负向]' : [{' text' : ' 正向' , ' probability' : 0.9988661643929895 }]}]
546
610
```
547
611
548
- - 跨任务跨领域抽取
612
+ - 跨任务抽取
549
613
550
- 例如同时对文本进行实体抽取和关系抽取 ,schema可按照如下方式进行构造:
614
+ 例如在法律场景同时对文本进行实体抽取和关系抽取 ,schema可按照如下方式进行构造:
551
615
552
616
``` text
553
- ['寺庙', {'丈夫': '妻子'}]
617
+ [
618
+ "法院",
619
+ {
620
+ "原告": [
621
+ "委托代理人",
622
+ "法定代表人"
623
+ ]
624
+ },
625
+ {
626
+ "被告": [
627
+ "委托代理人",
628
+ "法定代表人"
629
+ ]
630
+ }
631
+ ]
554
632
```
555
633
556
634
预测:
557
635
558
636
``` python
559
- >> > schema = [' 寺庙 ' , {' 丈夫 ' : ' 妻子 ' }]
637
+ >> > schema = [' 法院 ' , {' 原告 ' : ' 委托代理人 ' }, { ' 被告 ' : ' 委托代理人 ' }]
560
638
>> > ie.set_schema(schema)
561
- >> > pprint(ie(' 李治即位后,让身在感业寺的武则天续起头发,重新纳入后宫。' )) # Better print results using pprint
562
- [{' 丈夫' : [{' end' : 2 ,
563
- ' probability' : 0.989690572797457 ,
564
- ' relations' : {' 妻子' : [{' end' : 16 ,
565
- ' probability' : 0.9987625986790256 ,
566
- ' start' : 13 ,
567
- ' text' : ' 武则天' }]},
639
+ >> > pprint(ie(" 北京市海淀区人民法院\n 民事判决书\n (199x)建初字第xxx号\n 原告:张三。\n 委托代理人李四,北京市 A律师事务所律师。\n 被告:B公司,法定代表人王五,开发公司总经理。" )) # Better print results using pprint
640
+ [{' 原告' : [{' end' : 37 ,
641
+ ' probability' : 0.9955972637653154 ,
642
+ ' relations' : {' 委托代理人' : [{' end' : 46 ,
643
+ ' probability' : 0.9835957661618089 ,
644
+ ' start' : 44 ,
645
+ ' text' : ' 李四' }]},
646
+ ' start' : 35 ,
647
+ ' text' : ' 张三' }],
648
+ ' 法院' : [{' end' : 10 ,
649
+ ' probability' : 0.9245885500450299 ,
568
650
' start' : 0 ,
569
- ' text' : ' 李治' }],
570
- ' 寺庙' : [{' end' : 12 ,
571
- ' probability' : 0.9888581774497425 ,
572
- ' start' : 9 ,
573
- ' text' : ' 感业寺' }]}]
651
+ ' text' : ' 北京市海淀区人民法院' }],
652
+ ' 被告' : [{' end' : 67 ,
653
+ ' probability' : 0.9033652934762237 ,
654
+ ' relations' : {' 委托代理人' : [{' end' : 46 ,
655
+ ' probability' : 0.3863244074945271 ,
656
+ ' start' : 44 ,
657
+ ' text' : ' 李四' }]},
658
+ ' start' : 64 ,
659
+ ' text' : ' B公司' }]}]
574
660
```
575
661
576
662
0 commit comments