Create README_CN.md
Browse files- README_CN.md +69 -0
README_CN.md
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 1. 与 knowlm-13b-zhixi 的区别
|
2 |
+
|
3 |
+
与 zjunlp/knowlm-13b-zhixi 相比,zjunlp/knowlm-13b-ie 在信息抽取方面表现出略强的实用性,但其一般适用性下降。
|
4 |
+
|
5 |
+
zjunlp/knowlm-13b-ie 从中英文信息抽取数据集中采样约 10% 的数据,然后进行负采样。例如,如果数据集 A 包含标签 [a,b,c,d,e,f],我们首先从 A 中采样出 10% 的数据。对于给定的样本 s,它可能只包含标签 a 和 b。我们随机地添加原本没有的关系,比如来自指定关系候选列表的 c 和 d。当遇到这些额外的关系时,模型可能会输出类似 'NAN' 的文本。这种方法使模型在一定程度上具备生成 'NAN' 输出的能力,增强了其信息抽取能力,但削弱了其泛化能力。
|
6 |
+
|
7 |
+
|
8 |
+
|
9 |
+
# 2. 信息抽取模板
|
10 |
+
命名实体识别(NER)支持以下模板:
|
11 |
+
|
12 |
+
```python
|
13 |
+
entity_template_zh = {
|
14 |
+
0: '已知候选的实体类型列表:{s_schema},请你根据实体类型列表,从以下输入中抽取出可能存在的实体。请按照{s_format}的格式回答。',
|
15 |
+
1: '我将给你个输入,请根据实体类型列表:{s_schema},从输入中抽取出可能包含的实体,并以{s_format}的形式回答。',
|
16 |
+
2: '我希望你根据实体类型列表从给定的输入中抽取可能的实体,并以{s_format}的格式回答,实体类型列表={s_schema}。',
|
17 |
+
3: '给定的实体类型列表是{s_schema}\n根据实体类型列表抽取,在这个句子中可能包含哪些实体?你可以先别出实体,再判断实体类型。请以{s_format}的格式回答。',
|
18 |
+
}
|
19 |
+
|
20 |
+
entity_int_out_format_zh = {
|
21 |
+
0: ['"(实体,实体类型)"', entity_convert_target0],
|
22 |
+
1: ['"实体是\n实体类型是\n\n"', entity_convert_target1],
|
23 |
+
2: ['"实体:实体类型\n"', entity_convert_target2],
|
24 |
+
3: ["JSON字符串[{'entity':'', 'entity_type':''}, ]", entity_convert_target3],
|
25 |
+
}
|
26 |
+
|
27 |
+
entity_template_en = {
|
28 |
+
0: 'Identify the entities and types in the following text and where entity type list {s_schema}. Please provide your answer in the form of {s_format}.',
|
29 |
+
1: 'From the given text, extract the possible entities and types. The types are {s_schema}. Please format your answer in the form of {s_format}.',
|
30 |
+
}
|
31 |
+
|
32 |
+
entity_int_out_format_en = {
|
33 |
+
0: ['(Entity, Type)', entity_convert_target0_en],
|
34 |
+
1: ["{'Entity':'', 'Type':''}", entity_convert_target1_en],
|
35 |
+
}
|
36 |
+
```
|
37 |
+
|
38 |
+
|
39 |
+
这些模板中的schema({s_schema})和输出格式 ({s_format})占位符被嵌入在模板中,用户必须指定。
|
40 |
+
有关模板的更全面理解,请参阅文件 [ner_template.py](https://github.com/zjunlp/DeepKE/blob/main/example/llm/InstructKGC/kg2instruction/ner_template.py)、[re_template.py](https://github.com/zjunlp/DeepKE/blob/main/example/llm/InstructKGC/kg2instruction/re_template.py)、[ee_template.py](https://github.com/zjunlp/DeepKE/blob/main/example/llm/InstructKGC/kg2instruction/ee_template.py) .
|
41 |
+
|
42 |
+
|
43 |
+
|
44 |
+
# 3. 转换脚本
|
45 |
+
|
46 |
+
提供一个名为 [convert.py](https://github.com/zjunlp/DeepKE/blob/main/example/llm/InstructKGC/kg2instruction/convert.py) 的脚本,用于将数据统一转换为可以直接输入 KnowLM 的指令。在执行 convert.py 之前,请参考 [data](https://github.com/zjunlp/DeepKE/tree/main/example/llm/InstructKGC/data) 目录中包含了每个任务的预期数据格式。
|
47 |
+
|
48 |
+
```bash
|
49 |
+
python kg2instruction/convert.py \
|
50 |
+
--src_path data/NER/sample.json \
|
51 |
+
--tgt_path data/NER/processed.json \
|
52 |
+
--schema_path data/NER/schema.json \
|
53 |
+
--language zh \
|
54 |
+
--task NER \
|
55 |
+
--sample 0 \
|
56 |
+
--all
|
57 |
+
```
|
58 |
+
|
59 |
+
# 4. 评估
|
60 |
+
我们提供一个位于 [evaluate.py](https://github.com/zjunlp/DeepKE/blob/main/example/llm/InstructKGC/kg2instruction/evaluate.py) 的脚本,用于将模型的字符串输出转换为列表并计算 F1 分数。
|
61 |
+
|
62 |
+
```bash
|
63 |
+
python kg2instruction/evaluate.py \
|
64 |
+
--standard_path data/NER/processed.json \
|
65 |
+
--submit_path data/NER/processed.json \
|
66 |
+
--task ner \
|
67 |
+
--language zh
|
68 |
+
```
|
69 |
+
|