File size: 5,471 Bytes
c364a38
 
2036353
c364a38
2036353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
license: apache-2.0
language: zh
---


# uie-base

## 介绍
* **[PaddlePaddle/uie-base](https://huggingface.co/PaddlePaddle/uie-base)** 的 Pytorch 实现

## 代码调用
### 实体抽取

```python
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('Casually/uie-base', trust_remote_code=True)
model.eval().to('cuda')
tokenizer = AutoTokenizer.from_pretrained('Casually/uie-base')
schema = ['时间', '选手', '赛事名称']
res = model.predict(schema=schema,
                    input_texts="2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!",
                    tokenizer=tokenizer,
                    )
```

```ipython
>>> from pprint import pprint
>>> pprint(res)
[{'时间': [{'end': 6,
          'probability': 0.9857378532924486,
          'start': 0,
          'text': '2月8日上午'}],
  '赛事名称': [{'end': 23,
            'probability': 0.8503088338956672,
            'start': 6,
            'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
  '选手': [{'end': 31,
          'probability': 0.8981540953663227,
          'start': 28,
          'text': '谷爱凌'}]}]
```



### 关系抽取
```python
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('Casually/uie-base', trust_remote_code=True)
model.eval().to('cuda')
tokenizer = AutoTokenizer.from_pretrained('Casually/uie-base')
schema = {'竞赛名称': ['主办方', '承办方', '已举办次数']}
res = model.predict(schema=schema,
                    input_texts='2022语言与智能技术竞赛由中国中文信息学会和中国计算机学会联合主办,百度公司、中国中文信息学会评测工作委员会和中国计算机学会自然语言处理专委会承办,已连续举办4届,成为全球最热门的中文NLP赛事之一。',
                    tokenizer=tokenizer,
                    )
```

```ipython
>>> from pprint import pprint
>>> pprint(res)
[{'竞赛名称': [{'end': 13,
            'probability': 0.7825399252310206,
            'relations': {'主办方': [{'end': 22,
                                   'probability': 0.8421708822079559,
                                   'start': 14,
                                   'text': '中国中文信息学会'},
                                  {'end': 30,
                                   'probability': 0.758080734850175,
                                   'start': 23,
                                   'text': '中国计算机学会'}],
                          '已举办次数': [{'end': 82,
                                     'probability': 0.46713059200541807,
                                     'start': 80,
                                     'text': '4届'}],
                          '承办方': [{'end': 55,
                                   'probability': 0.7000500325229737,
                                   'start': 40,
                                   'text': '中国中文信息学会评测工作委员会'},
                                  {'end': 72,
                                   'probability': 0.6193481234526885,
                                   'start': 56,
                                   'text': '中国计算机学会自然语言处理专委会'},
                                  {'end': 39,
                                   'probability': 0.8292709340121291,
                                   'start': 35,
                                   'text': '百度公司'}]},
            'start': 0,
            'text': '2022语言与智能技术竞赛'}]}]

```

### 事件抽取

```python
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('Casually/uie-base', trust_remote_code=True)
model.eval().to('cuda')
tokenizer = AutoTokenizer.from_pretrained('Casually/uie-base')
schema = {'地震触发词': ['地震强度', '时间', '震中位置', '震源深度']}
res = model.predict(schema=schema,
                    input_texts='中国地震台网正式测定:5月16日06时08分在云南临沧市凤庆县(北纬24.34度,东经99.98度)发生3.5级地震,震源深度10千米。',
                    tokenizer=tokenizer,
                    )
```

```ipython
>>> from pprint import pprint
>>> pprint(res)
[{'地震触发词': [{'end': 58,
             'probability': 0.9977425555988333,
             'relations': {'地震强度': [{'end': 56,
                                     'probability': 0.998080217831891,
                                     'start': 52,
                                     'text': '3.5级'}],
                           '时间': [{'end': 22,
                                   'probability': 0.9853299772936026,
                                   'start': 11,
                                   'text': '5月16日06时08分'}],
                           '震中位置': [{'end': 50,
                                     'probability': 0.7874016313748768,
                                     'start': 23,
                                     'text': '云南临沧市凤庆县(北纬24.34度,东经99.98度)'}],
                           '震源深度': [{'end': 67,
                                     'probability': 0.9937973233053299,
                                     'start': 63,
                                     'text': '10千米'}]},
             'start': 56,
             'text': '地震'}]}]

```