Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,146 @@
|
|
1 |
-
---
|
2 |
-
|
3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language:
|
3 |
+
- vi
|
4 |
+
library_name: transformers
|
5 |
+
pipeline_tag: token-classification
|
6 |
+
tags:
|
7 |
+
- Vietnamese
|
8 |
+
- Personal identification information
|
9 |
+
- Analysis
|
10 |
+
---
|
11 |
+
|
12 |
+
# Personal identification information detection - Nhận diện thông tin cá nhân
|
13 |
+
## Nhận diện ngôn ngữ hỗ trợ các ngôn ngữ:
|
14 |
+
- Tiếng Việt
|
15 |
+
|
16 |
+
|
17 |
+
## Model description
|
18 |
+
|
19 |
+
Mô hình có tác dụng nhận diện thông tin cá nhân hỗ trợ các ngôn ngữ:
|
20 |
+
- Họ và tên
|
21 |
+
- Giới tính
|
22 |
+
- Số điện thoại
|
23 |
+
- Email
|
24 |
+
- Địa chỉ
|
25 |
+
- Nơi làm việc
|
26 |
+
- Nghệ nghiệp
|
27 |
+
- Dân tộc
|
28 |
+
- Tôn giáo
|
29 |
+
- Nơi sinh
|
30 |
+
- Quê quán
|
31 |
+
- Quốc tịnh
|
32 |
+
- Nhóm máu
|
33 |
+
- Số căn cước công dân
|
34 |
+
- Số hộ chiếu
|
35 |
+
- Nơi ở hiện tại
|
36 |
+
- Tình trạng hôn nhân
|
37 |
+
- Ngày sinh
|
38 |
+
- Ngành học
|
39 |
+
- Trường học
|
40 |
+
- Bằng cấp
|
41 |
+
- Chức vụ
|
42 |
+
- Sở thích
|
43 |
+
- Tính cách
|
44 |
+
- Điểm mạnh
|
45 |
+
- Điểm yếu
|
46 |
+
- Tuổi
|
47 |
+
- Mục tiêu, mong muốn
|
48 |
+
|
49 |
+
Ví dụ:
|
50 |
+
|
51 |
+
Xin chào, tôi tên là Đặng Việt Dũng, tôi sinh ra ở Hòa Bình và đang sinh sống ở Hà Nội. Tôi thích chơi game và công nghệ, hiện tôi đang làm việc tại công ty 132.one, tôi là một lập trình viên. Tôi dễ nổi nóng nhưng có tính cách dễ hòa đồng. Tôi có bằng kỹ sư phần mềm lấy tại trường Đại Học Phương Đông. Là người dân tộc kinh, giới tính nam và không theo tốn giáo nào.
|
52 |
+
```text
|
53 |
+
Họ và tên: Đặng Việt Dũng ,
|
54 |
+
Quê quán: Hòa Bình
|
55 |
+
Quê quán: Hà Nội .
|
56 |
+
Sở thích: chơi game
|
57 |
+
Sở thích: công nghệ ,
|
58 |
+
Nơi làm việc: công ty 132 . one ,
|
59 |
+
Nghệ nghiệp: lập trình viên .
|
60 |
+
Điểm mạnh: dễ nổi nóng
|
61 |
+
Điểm mạnh: tính cách dễ hòa đồng .
|
62 |
+
Bằng cấp: kỹ sư phần mềm lấy
|
63 |
+
Trường học: trường Đại Học Phương Đông .
|
64 |
+
Tôn giáo: dân tộc kinh ,
|
65 |
+
Điểm mạnh: giới tính nam
|
66 |
+
Tôn giáo: không theo
|
67 |
+
```
|
68 |
+
|
69 |
+
## Base model
|
70 |
+
|
71 |
+
Mô hình được đạo tạo dựa trên cơ sở của model google-bert/bert-base-multilingual-cased
|
72 |
+
|
73 |
+
## Training data
|
74 |
+
|
75 |
+
Chưa thể công khai dữ liệu training
|
76 |
+
|
77 |
+
## Model variations
|
78 |
+
|
79 |
+
Chưa xác định
|
80 |
+
|
81 |
+
## Intended uses & limitations
|
82 |
+
|
83 |
+
Chưa xác định
|
84 |
+
|
85 |
+
## License
|
86 |
+
|
87 |
+
Đây là một open-source library, bạn có thể sử dụng nó với bất kì mục đích nào.
|
88 |
+
Rất cảm ơn nếu bạn ghi nguồn khi sử dụng mô hình này (nếu không ghi cũng không sao).
|
89 |
+
|
90 |
+
### How to use
|
91 |
+
|
92 |
+
```python
|
93 |
+
text = "Xin chào, tôi tên là Đặng Việt Dũng, tôi sinh ra ở Hòa Bình và đang sinh sống ở Hà Nội. Tôi thích chơi game và công nghệ, hiện tôi đang làm việc tại công ty 132.one, tôi là một lập trình viên. Tôi dễ nổi nóng nhưng có tính cách dễ hòa đồng. Tôi có bằng kỹ sư phần mềm lấy tại trường Đại Học Phương Đông. Là người dân tộc kinh, giới tính nam và không theo tốn giáo nào."
|
94 |
+
|
95 |
+
import torch
|
96 |
+
from transformers import AutoTokenizer, AutoModelForTokenClassification
|
97 |
+
|
98 |
+
tokenizer = AutoTokenizer.from_pretrained("mr4/ner-vi")
|
99 |
+
inputs = tokenizer(text, return_tensors="pt")
|
100 |
+
|
101 |
+
model = AutoModelForTokenClassification.from_pretrained("mr4/ner-vi")
|
102 |
+
with torch.no_grad():
|
103 |
+
logits = model(**inputs).logits
|
104 |
+
|
105 |
+
predicted_token_class_ids = torch.argmax(logits, dim=-1)
|
106 |
+
tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"].squeeze().tolist())
|
107 |
+
print("List all token:")
|
108 |
+
predicted_entities = [model.config.id2label[id] for id in predicted_token_class_ids.squeeze().tolist()]
|
109 |
+
for token, entity in zip(tokens, predicted_entities):
|
110 |
+
print(f" - {token}: {entity}")
|
111 |
+
|
112 |
+
final_result = []
|
113 |
+
current_entity = []
|
114 |
+
current_label = None
|
115 |
+
|
116 |
+
for token, entity in zip(tokens, predicted_entities):
|
117 |
+
if entity.startswith("B-"):
|
118 |
+
if entity[2:] == current_label:
|
119 |
+
current_entity.append(token)
|
120 |
+
else:
|
121 |
+
if current_entity:
|
122 |
+
final_result.append((" ".join(current_entity), current_label))
|
123 |
+
current_entity = [token]
|
124 |
+
current_label = entity[2:]
|
125 |
+
elif entity.startswith("I-") and current_label == entity[2:]:
|
126 |
+
current_entity.append(token)
|
127 |
+
else:
|
128 |
+
if current_entity:
|
129 |
+
final_result.append((" ".join(current_entity), current_label))
|
130 |
+
current_entity = []
|
131 |
+
current_label = None
|
132 |
+
if current_entity:
|
133 |
+
final_result.append((" ".join(current_entity), current_label))
|
134 |
+
|
135 |
+
print("Input:")
|
136 |
+
print(text)
|
137 |
+
|
138 |
+
print("Final result:")
|
139 |
+
for entity, label in final_result:
|
140 |
+
ner_value = entity.replace(" ##", "").replace("##", "")
|
141 |
+
print(f" - {ner_value}: {label}")
|
142 |
+
```
|
143 |
+
|
144 |
+
## Liên hệ
|
145 |
+
|
146 |
+
Mọi thông tin liên quan có thể liên hệ qua email: [email protected].
|