• Stars
    star
    303
  • Rank 137,655 (Top 3 %)
  • Language
    Python
  • Created over 1 year ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

使用BERT-BILSTM-CRF进行中文命名实体识别。

BERT-BILSTM-CRF

使用BERT-BILSTM-CRF进行中文命名实体识别。突出一个词:方便

数据和模型下载地址:https://cowtransfer.com/s/3a155b702dfa42 点击链接查看 [ BERT-BILSTM-CRF ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 hmpdf8 查看;

问题勘验

  • TypeError: init() got an unexpected keyword argument 'batch_first': pip install pytorch-crf==0.7.2

依赖

scikit-learn==1.1.3 
scipy==1.10.1 
seqeval==1.2.2
transformers==4.27.4
pytorch-crf==0.7.2

目录结构

--checkpoint模型和配置保存位置
--model_hub预训练模型
----chinese-bert-wwm-ext:
--------vocab.txt
--------pytorch_model.bin
--------config.json
--data存放数据
----dgre
--------ori_data原始的数据
--------ner_data处理之后的数据
------------labels.txt标签
------------train.txt训练数据
------------dev.txt测试数据
--config.py配置
--model.py模型
--process.py处理ori数据得到ner数据
--predict.py加载训练好的模型进行预测
--main.py训练和测试

说明

这里以dgre数据为例,其余数据类似。

1去https://huggingface.co/hfl/chinese-bert-wwm-ext/tree/main下载相关文件到chinese-bert-wwm-ext下2在process.py里面定义将ori_data里面的数据处理得到ner_data下的数据ner_data下数据样本是这样的--labels.txt
故障设备
故障原因
--train.txt/dev.txt
{"id": "AT0001", "text": ["6", "2", "号", "汽", "车", "故", "障", "报", "告", "综", "合", "情", "况", ":", "故", "障", "现", "象", ":", "加", "速", "后", ",", "丢", "开", "油", "门", ",", "发", "动", "机", "熄", "火", "。"], "labels": ["O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-故障设备", "I-故障设备", "I-故障设备", "B-故障原因", "I-故障原因", "O"]}
一行一条样本格式为BIO3在config.py里面定义一些参数比如--max_seq_len句子最大长度GPU显存不够则调小--epochs训练的epoch数
--train_batch_size训练的batchsize大小GPU显存不够则调小--dev_batch_size验证的batchsize大小GPU显存不够则调小--save_step多少step保存模型
其余的可保持不变4在main.py里面修改data_name为数据集名称需要注意的是名称和data下的数据集名称保持一致最后运行python main.py

5在predict.py修改data_name并加入预测数据最后运行python predict.py

DGRE数据集

max_seq_len=512
train_batch_size=12
dev_batch_size=12
save_step=20
epochs=3
              precision    recall  f1-score   support

        故障原因       0.70      0.74      0.72       490
        故障设备       0.75      0.79      0.77       484

   micro avg       0.72      0.76      0.74       974
   macro avg       0.72      0.76      0.74       974
weighted avg       0.72      0.76      0.74       974

文本>>>>>492号汽车故障报告故障现象一辆车用户用水清洗发动机后在正常行驶时突然产生铛铛异响自行熄火
实体>>>>>: {'故障原因': [('异响', 40, 41), ('熄火', 45, 46)]}
====================================================================================================
文本>>>>>故障现象空调制冷效果差实体>>>>>: {'故障设备': [('空调', 5, 6)], '故障原因': [('制冷效果差', 7, 11)]}
====================================================================================================
文本>>>>>原因分析1遥控器失效或数据丢失;2ISU模块功能失效或工作不良;3系统信号有干扰导致处理方法体会1检查该车发现两把遥控器都不能工作两把遥控器同时出现故障的可能几乎是不存在的由此可以排除遥控器本身的故障2检查ISU的功能受其控制的部分全部工作正常排除了ISU系统出现故障的可能3怀疑是遥控器数据丢失用诊断仪对系统进行重新匹配发现遥控器匹配不能正常进行此时拔掉ISU模块上的电源插头使系统强制恢复出厂设置再插上插头发现系统恢复可以进行遥控操作但当车辆发动在熄火后遥控又再次失效4查看线路图发现在点火开关处安装有一钥匙行程开关当钥匙插入在点火开关内处于ON位时该开关接通向ISU发送一个信号此时遥控器不能进行控制工作当钥匙处于OFF位时开关断开遥控器恢复工作可以对门锁进行控制如果此开关出现故障也会导致遥控器不能正常工作同时该行程开关也控制天窗的自动回位功能测试天窗发现不能自动回位确认该开关出现故障
实体>>>>>: {'故障设备': [('遥控器', 7, 9), ('ISU模块', 20, 24), ('系统信号', 37, 40), ('遥控器', 66, 68), ('遥控器', 158, 160), ('遥控器', 182, 184), ('开关', 434, 435)], '故障原因': [('失效', 10, 11), ('数据', 13, 14), ('丢失', 15, 16), ('功能失效', 25, 28), ('工作不良', 30, 33), ('干扰', 42, 43), ('不能工作', 70, 73), ('数据丢失', 161, 164), ('失效', 260, 261), ('不能自动回位', 424, 429), ('故障', 438, 439)]}
====================================================================================================
文本>>>>>原因分析1发动机点火系统不良;2发动机系统油压不足;3喷嘴故障;4发动机缸压不足;5水温传感器故障实体>>>>>: {'故障设备': [('发动机点火系统', 7, 13), ('发动机系统', 19, 23), ('喷嘴', 31, 32), ('发动机', 38, 40), ('水温传感器', 48, 52)], '故障原因': [('不良', 14, 15), ('油压不足', 24, 27), ('故障', 33, 34), ('缸压不足', 41, 44), ('故障', 53, 54)]}
====================================================================================================

DUIE数据集

max_seq_len=256
train_batch_size=12
dev_batch_size=12
save_step=500
epochs=1

没跑完,在第1500step后手动停止了。

             precision    recall  f1-score   support

        Date       0.87      0.79      0.83      3130
      Number       0.77      0.72      0.75       877
        Text       0.70      0.63      0.66      2045
          人物       0.80      0.90      0.85     44595
          企业       0.47      0.67      0.55      3148
       企业/品牌       0.53      0.69      0.60       160
          作品       0.00      0.00      0.00        90
          国家       0.71      0.74      0.73      2241
        图书作品       0.86      0.72      0.78      4535
          地点       0.40      0.50      0.44       958
          城市       0.45      0.61      0.52       220
          奖项       0.00      0.00      0.00       529
          学校       0.64      0.86      0.74      1879
        学科专业       0.00      0.00      0.00         8
        影视作品       0.86      0.63      0.72      7900
        文学作品       0.57      0.21      0.30       188
          景点       0.44      0.36      0.40       118
          机构       0.81      0.37      0.51      2977
          歌曲       0.80      0.76      0.78      4976
          气候       0.80      0.80      0.80       132
        电视综艺       0.76      0.65      0.70      1010
         行政区       0.73      0.70      0.71       305
          语言       0.00      0.00      0.00        20
        音乐专辑       0.70      0.70      0.70      1035

   micro avg       0.77      0.79      0.78     83076
   macro avg       0.57      0.54      0.55     83076
weighted avg       0.78      0.79      0.77     83076

文本>>>>>歌曲墨写你的美是由歌手冷漠演唱的一首歌曲
实体>>>>>: {'歌曲': [('墨写你的美', 3, 7)], '人物': [('冷漠', 13, 14)]}
====================================================================================================
文本>>>>>982阎维文回到山西隆重地迎娶了刘卫星
实体>>>>>: {'人物': [('阎维文', 5, 7), ('刘卫星', 19, 21)]}
====================================================================================================
文本>>>>>王皃姁为还是太子的刘启生了二个儿子刘越汉景帝第11子)、刘寄汉景帝第12子实体>>>>>: {'人物': [('王皃姁', 0, 2), ('刘启', 9, 10), ('刘越', 18, 19), ('刘寄', 30, 31)]}
====================================================================================================
文本>>>>>数据分析方法五种是2011年格致出版社出版的图书作者是尤恩·苏尔李
实体>>>>>: {'图书作品': [('数据分析方法五种', 0, 7)], '人物': [('尤恩·苏尔李', 29, 34)]}
====================================================================================================
文本>>>>>视剧不可磨灭是导演潘培成执导刘蓓丁志诚李洪涛丁海峰雷娟刘赫男等联袂主演
实体>>>>>: {'影视作品': [('不可磨灭', 3, 6)], '人物': [('潘培成', 11, 13), ('刘蓓', 17, 18), ('丁志诚', 20, 22), ('李洪涛', 24, 26), ('丁海峰', 28, 30), ('雷娟', 32, 33), ('刘赫男', 35, 37)]}
====================================================================================================

延申

由于这几个项目的代码结构都差不多,而且都和信息抽取相关,就一起放在这。

More Repositories

1

awesome-chinese-ner

中文命名实体识别。包含目前最新的中文命名实体识别论文、中文实体识别相关工具、数据集,以及中文预训练模型、词向量、实体识别综述等。
575
star
2

pytorch_bert_bilstm_crf_ner

基于pytorch的bert_bilstm_crf中文命名实体识别
Python
503
star
3

pytorch_triple_extraction

基于pytorch的中文三元组提取(命名实体识别+关系抽取)
Python
320
star
4

chinese_information_extraction

中文信息抽取,包含实体抽取、关系抽取、事件抽取
Python
220
star
5

langchain-learning

langchain学习笔记,包含langchain源码解读、langchain中使用中文模型、langchain实例等。
169
star
6

pytorch_bert_intent_classification_and_slot_filling

基于pytorch的中文意图识别和槽位填充
Python
129
star
7

BERT-Relation-Extraction

使用bert进行关系三元组抽取。
Python
125
star
8

PointerNet_Chinese_Information_Extraction

利用指针网络进行信息抽取,包含命名实体识别、关系抽取、事件抽取。
Python
115
star
9

OneRel_chinese

OneRel在中文关系抽取中的使用
Roff
111
star
10

Llama3.1-Finetuning

对llama3进行全参微调、lora微调以及qlora微调。
Python
108
star
11

sentencepiece_chinese_bpe

使用sentencepiece中BPE训练中文词表,并在transformers中进行使用。
Python
106
star
12

pytorch_HAN

异构图神经网络HAN。Heterogeneous Graph Attention Network (HAN) with pytorch
Python
99
star
13

qlora-chinese-LLM

使用qlora对中文大语言模型进行微调,包含ChatGLM、Chinese-LLaMA-Alpaca、BELLE
Python
86
star
14

pytorch_bert_multi_classification

基于pytorch_bert的中文多标签分类
Python
79
star
15

pytorch_bert_chinese_text_classification

基于pytorch+bert的中文文本分类
Python
75
star
16

DGL_Chinese_Manual

DGL中文文档。This is the Chinese manual of the graph neural network library DGL, currently contains the User Guide.
71
star
17

pytorch_GlobalPointer_triple_extraction

基于pytorch的GlobalPointer进行三元组抽取。
Python
67
star
18

pytorch_bert_event_extraction

基于pytorch+bert的中文事件抽取
Python
63
star
19

pytorch-distributed-NLP

pytorch分布式训练
Python
57
star
20

prompt_text_classification

基于prompt的中文文本分类。
Python
53
star
21

pytorch_uie_ner

基于pytorch的百度UIE命名实体识别。
Python
52
star
22

awesome-relation-extraction

关系抽取
51
star
23

W2NER_predict

[Unofficial] Predict code for AAAI 2022 paper: Unified Named Entity Recognition as Word-Word Relation Classification
Python
49
star
24

ChatGLM-LoRA-Tuning

使用LoRA对ChatGLM进行微调。
Python
46
star
25

awesome-chinese-text-correction

中文文本纠错相关的论文、比赛和工具。
46
star
26

ChatABSA

基于ChatGPT的情感分析
Python
46
star
27

python_common_code_collection

收集经常用到的一些python代码
Python
44
star
28

sbert_text_similarity

使用sentence-transformers(SBert)训练自己的文本相似度数据集并进行评估。
Python
43
star
29

BERT_MRC_NER_chinese

基于bert_mrc的中文命名实体识别
Python
43
star
30

pytorch_GlobalPointer_Ner

基于pytorch的GlobalPointer进行中文命名实体识别。
Python
37
star
31

BERT-Event-Extraction

使用bert进行事件抽取。
Python
34
star
32

pytorch_casrel_triple_extraction

基于pytorch的CasRel进行三元组抽取。
Python
34
star
33

Chinese-LLaMA-Alpaca-LoRA-Tuning

使用LoRA对Chinese-LLaMA-Alpaca进行微调。
Python
33
star
34

pytorch_bert_chinese_spell_correction

基于pytorch的中文拼写纠错,使用的模型是Bert以及SoftMaskedBert
Python
30
star
35

pytorch_bert_relation_extraction

基于pytorch+bert的中文关系抽取
Python
29
star
36

SpERT_chinese

基于论文SpERT: "Span-based Entity and Relation Transformer"的中文关系抽取,同时抽取实体、实体类别和关系类别。
Python
29
star
37

pytorch_bert_entity_linking

基于bert的中文实体链接
Python
27
star
38

Gector_chinese

基于seq2edit (Gector) 的中文文本纠错。
Python
26
star
39

taishan1994

22
star
40

address_normalize

根据地址提取省、市、区/县、街道,并进行标准化
Python
20
star
41

tensorflow-text-classification

基于tensorflow的中文文本分类(复旦中文语料)
Python
20
star
42

pytorch_uie_re

基于百度uie的关系抽取
Python
20
star
43

BERT-ABSA

使用bert进行中文方面级情感识别。
Python
19
star
44

baichuan-Qlora-Tuning

基于qlora对baichuan-7B大模型进行指令微调。
Python
18
star
45

pytorch_Cascade_Bert_Ner

基于pytorch的级联Bert用于中文命名实体识别。
Python
18
star
46

stroke2vec

获取中文的笔画向量
Python
17
star
47

doccano_export

使用doccano标注工具同时导出实体和关系数据为空的解决办法。
Python
17
star
48

pytorch_TPLinker_Plus_Ner

基于pytorch的TPLinker_plus进行中文命名实体识别
Python
17
star
49

chinese_sentence_embeddings

bert_avg,bert_whitening,sbert,consert,simcse,esimcse 中文句向量表示
Python
16
star
50

pytorch_knowledge_distillation

基于Pytorch的知识蒸馏(中文文本分类)
Python
15
star
51

pytorch_bert_coreference_resolution

基于pytorch+bert的指代消解
Python
15
star
52

simcse_chinese_sentence_vector

基于simcse的中文句向量生成
Python
14
star
53

pytorch_bilstm_crf_chinese_ner

基于pytorch+bilstm_crf的中文命名实体识别
Python
13
star
54

chinese_keyword_extraction

中文关键词提取
Python
12
star
55

dpcq_new_word_find

斗破苍穹小说的新词发现
Python
12
star
56

tensorflow-bilstm-crf

基于tensorflow的bilstm+crf的命名实体识别
12
star
57

python3_wiki_word2vec

基于python3训练中文wiki词向量、字向量、拼音向量
Python
11
star
58

chinese_llm_pretrained

使用自己的tokenizer继续预训练大语言模型。
Python
9
star
59

genius_for_your_data

使用GENIUS文本生成模型训练自己的数据集。
Python
9
star
60

train_bert_use_your_data

基于pytorch使用自己的数据继续训练bert
Python
9
star
61

pytorch_Multi_Head_Selection_Ner

基于pytorch的多头选择方法进行中文命名实体识别。
Python
9
star
62

pytorch_chinese_biaffine_ner

使用biaffine的中文命名实体识别
Python
9
star
63

pytorch_unbalanced_text_classification

基于pytorch的不平衡数据的文本分类
Python
9
star
64

pytorch_lightning_text_classification

基于pytorch_lightning的中文文本分类样例
Python
8
star
65

medical_question_and_answer_knowledge_graph

Python
8
star
66

fasttext_chinese_ABSA

基于fasttext的中文细粒度情感分类
Python
8
star
67

PPO_Chinese_Generate

Python
8
star
68

pytorch_simple_bert

更直接的bert代码,可以加载hugging face上的预训练权重,目前支持中文文本分类以及MLM语言模型训练任务。
Python
8
star
69

classical_chinese_extraction

文言文信息抽取(实体识别+关系抽取)
Python
7
star
70

lol_knowledge_graph_qa

基于英雄联盟知识图谱的问答
Python
7
star
71

pytorch_gat

Pytorch implementation of graph attention network
Python
7
star
72

chinese_llm_sft

使用指令微调对大模型进行微调。
Python
7
star
73

bert-sklearn-chinese

像使用sklearn那样来使用bert进行中文文本分类、命名实体识别、句子相似度判别
Python
6
star
74

pytorch_cnn_rnn_transformer

pytorch版本的三大特征提取器
Python
6
star
75

pytorch_ner_v1

中文命名实体识别的三种架构实现
Python
6
star
76

UIE_CLUENER

用百度的UIE解决CLUENER2020细粒度实体识别数据集。
Python
6
star
77

pytorch_Chinese_Generate

基于pytorch的中文文本生成。
Python
6
star
78

ltp_triple_extraction

Python
6
star
79

pytorch_bert_english_ner

基于bert的英文实体识别
Python
5
star
80

transformer-examples

从头开始使用transfomer构建seq2seq(对对联)、自编码(新闻文本分类)、自回归(斗破苍穹小说续写)任务。
Python
5
star
81

pytorch_chinese_QANet_cmrc2018

基于QANet的中文阅读理解。
Python
5
star
82

hugging-face-course

hugging face的官方教程中文翻译
5
star
83

Qwen2-UIE

基于Qwen2模型进行通用信息抽取【实体/关系/事件抽取】
Python
5
star
84

eda_for_chinese_text_classification

基于EDA进行中文文本分类
Python
5
star
85

pytorch_chinese_text_classification

基于pytorch的中文文本分类,包含fasttext、textcnn、textrnn、textrnn_att、textrnn_bc、transformer、dpcnn
Python
5
star
86

pytorch_bert_chinese_ner

基于bert的中文实体识别,并使用字形嵌入和拼音嵌入。
Python
4
star
87

pytorch_chinese_albert_attribute_extraction

基于pytorch_albert的属性抽取
Python
4
star
88

xiximayou-arxiv

用于定制化arxiv文章。
CSS
3
star
89

pytorch_peot_rnn

基于pytorch_rnn的古诗词生成
Python
3
star
90

ChatCTG

基于ChatGPT的可控文本生成。这里主要是使用ChatGPT实现一些文本生成相关的项目。
Python
3
star
91

seq2seq_english_to_chinese

基于pytorch的英文翻译成中文
Python
3
star
92

chinese_chengyujielong

本仓库包含4万多条成语,并提供成语接龙实例。
Python
3
star
93

Chinese-BELLE-LoRA-Tuning

使用LoRA对BELLE发布的BELLE-7B-2M进行微调。
Python
3
star
94

phishing_url_recognition

恶意域名识别
Python
3
star
95

pytorch_chinese_multiple_choice

基于pytorch+lstm的中文多项选择。
Python
2
star
96

WebQA_tfidf

针对于百度WebQA数据集,利用TF-IDF等模型构建的问答系统
Python
2
star
97

pytorch_albert_qa

基于albert的中文问答
Python
2
star
98

pytorch_OneVersusRest_Ner

基于pytorch的one vs rest中文命名实体识别。
Python
1
star
99

learn_django

django的一些学习笔记
HTML
1
star
100

DPO-Finetuning

专门用于训练DPO模型的仓库。
Python
1
star