• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
    Python
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

限定领域的三元组抽取的一次尝试,本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试。

数据集下载网址:http://lic2019.ccf.org.cn/kg

  本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试。由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集。但是,这并不耽误我们在这方面做实验。

比赛介绍

  该比赛的网址为:http://lic2019.ccf.org.cn/kg ,该比赛主要是从给定的句子中提取三元组,给定schema约束集合及句子sent,其中schema定义了关系P以及其对应的主体S和客体O的类别,例如(S_TYPE:人物,P:妻子,O_TYPE:人物)、(S_TYPE:公司,P:创始人,O_TYPE:人物)等。比如下面的例子:

{
  "text": "九玄珠是在纵横中文网连载的一部小说,作者是龙马",
  "spo_list": [
    ["九玄珠", "连载网站", "纵横中文网"],
    ["九玄珠", "作者", "龙马"]
  ]
}

该比赛一共提供了20多万标注质量很高的三元组,其中17万训练集,2万验证集和2万测试集,实体关系(schema)50个。

  在具体介绍笔者的思路和实战前,先介绍下本次任务的处理思路: 本次人物的总体思路 首先是对拿到的数据进行数据分析,包括统计每个句子的长度及三元组数量,每种关系的数量分布情况。接着,对数据单独走序列标注模型和关系分析模型。最后在提取三元组的时候,用Pipeline模型,先用序列标注模型预测句子中的实体,再对实体(加上句子)走关系分类模型,预测实体的关系,最后形成有效的三元组。

  接下来笔者将逐一介绍,项目结构图如下: 项目结构图

数据分析

  我们能拿到的只有训练集和验证集,没有测试集。我们对训练集做数据分析,训练集数据文件为train_data.json。

  数据分析会统计训练集中每个句子的长度及三元组数量,还有关系的分布图,代码为data_analysis/train_data_analysis.py 。

输出结果如下:

             spo_num    text_length
count  173108.000000  173108.000000
mean        2.103993      54.057190
std         1.569331      31.498245
min         0.000000       5.000000
25%         1.000000      32.000000
50%         2.000000      45.000000
75%         2.000000      68.000000
max        25.000000     300.000000

句子的平均长度为54,最大长度为300;每句话中的三元组数量的平均值为2.1,最大值为25。   每句话中的三元组数量的分布图如下:每句话中的三元组数量分布图   关系数量的分布图如下: 关系数量分布图

序列标注模型

  我们将句子中的主体和客体作为实体,分别标注为SUBJ和OBJ,标注体系采用BIO。一个简单的标注例子如下:

如 O
何 O
演 O
好 O
自 O
己 O
的 O
角 O
色 O
, O
请 O
读 O
《 O
演 O
员 O
自 O
我 O
修 O
养 O
》 O
《 O
喜 B-SUBJ
剧 I-SUBJ
之 I-SUBJ
王 I-SUBJ
》 O
周 B-OBJ
星 I-OBJ
驰 I-OBJ
崛 O
起 O
于 O
穷 O
困 O
潦 O
倒 O
之 O
中 O
的 O
独 O
门 O
秘 O
笈 O

  序列标注的模型采用ALBERT+Bi-LSTM+CRF,结构图如下: 序列标注模型结构图 模型方面的代码不再具体给出,有兴趣的同学可以参考文章NLP(二十五)实现ALBERT+Bi-LSTM+CRF模型,也可以参考文章最后给出的Github项目网址。

  模型设置文本最大长度为128,利用ALBERT做特征提取,在自己的电脑上用CPU训练5个epoch,结果如下:

_________________________________________________________________
Train on 173109 samples, validate on 21639 samples
Epoch 1/10
173109/173109 [==============================] - 422s 2ms/step - loss: 0.4460 - crf_viterbi_accuracy: 0.8710 - val_loss: 0.1613 - val_crf_viterbi_accuracy: 0.9235
Epoch 2/10
173109/173109 [==============================] - 417s 2ms/step - loss: 0.1170 - crf_viterbi_accuracy: 0.9496 - val_loss: 0.0885 - val_crf_viterbi_accuracy: 0.9592
Epoch 3/10
173109/173109 [==============================] - 417s 2ms/step - loss: 0.0758 - crf_viterbi_accuracy: 0.9602 - val_loss: 0.0653 - val_crf_viterbi_accuracy: 0.9638
Epoch 4/10
173109/173109 [==============================] - 415s 2ms/step - loss: 0.0586 - crf_viterbi_accuracy: 0.9645 - val_loss: 0.0544 - val_crf_viterbi_accuracy: 0.9651
Epoch 5/10
173109/173109 [==============================] - 422s 2ms/step - loss: 0.0488 - crf_viterbi_accuracy: 0.9663 - val_loss: 0.0464 - val_crf_viterbi_accuracy: 0.9654
Epoch 6/10
173109/173109 [==============================] - 423s 2ms/step - loss: 0.0399 - crf_viterbi_accuracy: 0.9677 - val_loss: 0.0375 - val_crf_viterbi_accuracy: 0.9660
Epoch 7/10
173109/173109 [==============================] - 415s 2ms/step - loss: 0.0293 - crf_viterbi_accuracy: 0.9687 - val_loss: 0.0265 - val_crf_viterbi_accuracy: 0.9664
Epoch 8/10
173109/173109 [==============================] - 414s 2ms/step - loss: 0.0174 - crf_viterbi_accuracy: 0.9695 - val_loss: 0.0149 - val_crf_viterbi_accuracy: 0.9671
Epoch 9/10
173109/173109 [==============================] - 422s 2ms/step - loss: 0.0049 - crf_viterbi_accuracy: 0.9703 - val_loss: 0.0036 - val_crf_viterbi_accuracy: 0.9670
Epoch 10/10
173109/173109 [==============================] - 429s 2ms/step - loss: -0.0072 - crf_viterbi_accuracy: 0.9709 - val_loss: -0.0078 - val_crf_viterbi_accuracy: 0.9674
           precision    recall  f1-score   support

      OBJ     0.9593    0.9026    0.9301     44598
     SUBJ     0.9670    0.9238    0.9449     25521

micro avg     0.9621    0.9104    0.9355     70119
macro avg     0.9621    0.9104    0.9355     70119

利用seqeval模块做评估,在验证集上的F1值约为93%。

关系分类模型

  需要对关系做一下说明,因为笔者会对句子(sent)中的主体(S)和客体(O)组合起来,加上句子,形成训练数据。举个例子,在句子历史评价李氏朝鲜的创立并非太祖大王李成桂一人之功﹐其五子李芳远功不可没,三元组为[{"predicate": "父亲", "object_type": "人物", "subject_type": "人物", "object": "李成桂", "subject": "李芳远"}, {"predicate": "国籍", "object_type": "国家", "subject_type": "人物", "object": "朝鲜", "subject": "李成桂"}]},在这句话中主体有李成桂,李芳远,客体有李成桂和朝鲜,关系有父亲(关系类型:2)和国籍(关系类型:22)。按照笔者的思路,这句话应组成4个关系分类样本,如下:

2 李芳远$李成桂$历史评价李氏朝鲜的创立并非太祖大王###一人之功﹐其五子###功不可没
0 李芳远$朝鲜$历史评价李氏##的创立并非太祖大王李成桂一人之功﹐其五子###功不可没
0 李成桂$李成桂$历史评价李氏朝鲜的创立并非太祖大王###一人之功﹐其五子李芳远功不可没
22 李成桂$朝鲜$历史评价李氏##的创立并非太祖大王###一人之功﹐其五子李芳远功不可没

因此,就会出现关系0(表示“未知”),这样我们在提取三元组的时候就可以略过这条关系,形成真正有用的三元组。

  因此,关系一共为51个(加上未知关系:0)。关系分类模型采用ALBERT+Bi-GRU+ATT,结构图如下: 关系分类模型图

  模型方面的代码不再具体给出,有兴趣的同学可以参考文章NLP(二十一)人物关系抽取的一次实战,也可以参考文章最后给出的Github项目网址。

  模型设置文本最大长度为128,利用ALBERT做特征提取,在自己的电脑上用CPU训练30个epoch(实际上,由于有early stopping机制,训练不到30个eopch),在验证集上的评估结果如下:

				precision    recall  f1-score   support

          未知       0.84      0.77      0.80      5057
          祖籍       0.89      0.77      0.82       181
          父亲       0.82      0.81      0.82       609
        总部地点       0.95      0.95      0.95       310
         出生地       0.96      0.94      0.95      2330
           目       1.00      1.00      1.00      1271
          面积       0.84      0.94      0.89        79
          简称       0.99      0.99      0.99       138
        上映时间       0.95      0.97      0.96       463
          妻子       0.88      0.85      0.87       680
        所属专辑       0.97      0.97      0.97      1282
        注册资本       1.00      1.00      1.00        63
          首都       0.92      0.94      0.93        47
          导演       0.92      0.93      0.92      2603
           字       0.96      0.94      0.95       339
          身高       0.99      0.97      0.98       393
        出品公司       0.94      0.96      0.95       851
        修业年限       1.00      1.00      1.00         2
        出生日期       0.99      0.99      0.99      2892
         制片人       0.76      0.74      0.75       127
          母亲       0.76      0.82      0.79       425
          编剧       0.78      0.79      0.79       771
          国籍       0.89      0.96      0.92      1621
          海拔       1.00      1.00      1.00        43
        连载网站       0.98      1.00      0.99      1658
          丈夫       0.85      0.88      0.87       678
          朝代       0.87      0.91      0.89       419
          民族       0.98      0.99      0.99      1434
           号       0.92      0.99      0.95       197
         出版社       0.98      0.99      0.98      2272
         主持人       0.89      0.83      0.86       200
        专业代码       1.00      1.00      1.00         3
          歌手       0.88      0.92      0.90      2857
          作词       0.81      0.83      0.82       884
          主角       0.92      0.59      0.72        39
         董事长       0.93      0.83      0.88        47
        毕业院校       0.99      0.99      0.99      1433
        占地面积       0.89      0.82      0.85        61
        官方语言       1.00      1.00      1.00        15
        邮政编码       1.00      1.00      1.00         4
        人口数量       1.00      0.98      0.99        45
        所在城市       0.95      0.95      0.95        77
          作者       0.97      0.97      0.97      4359
        成立日期       0.99      0.99      0.99      1608
          作曲       0.78      0.71      0.75       849
          气候       0.99      1.00      1.00       103
          嘉宾       0.77      0.78      0.77       158
          主演       0.94      0.96      0.95      7383
         改编自       0.88      0.90      0.89        71
         创始人       0.85      0.91      0.88        75

    accuracy                           0.93     49506
   macro avg       0.92      0.91      0.92     49506
weighted avg       0.93      0.93      0.93     49506

三元组提取

  最后一部分,也是本次比赛的最终目标,就是三元组提取。

  三元组提取采用Pipeline模式,先用序列标注模型预测句子中的实体,然后再用关系分类模型判断实体关系的类别,过滤掉关系为未知的情形,就是我们想要提取的三元组了。

  三元组提取的代码为triple_extract/triple_extractor.py 。

  运行三元组提取脚本,代码为triple_extract/spo.py 。

  我们在网上找几条样本进行测试,测试的结果如下:

原文: 真人版的《花木兰》由新西兰导演妮基·卡罗执导,由刘亦菲、甄子丹、郑佩佩、巩俐、李连杰等加盟,几乎是全亚洲阵容。 实体: {'OBJ': ['妮基·卡罗', '刘亦菲', '甄子丹', '郑佩佩', '巩俐', '李连杰'], 'SUBJ': ['花木兰']} 三元组: [['花木兰', '主演', '刘亦菲'], ['花木兰', '导演', '妮基·卡罗'], ['花木兰', '主演', '甄子丹'], ['花木兰', '主演', '李连杰'], ['花木兰', '主演', '郑佩佩'], ['花木兰', '主演', '巩俐']]

原文: 《冒险小王子》作者周艺文先生,教育、文学领域的专家学者以及来自全国各地的出版业从业者参加了此次沙龙,并围绕儿童文学创作这一话题做了精彩的分享与交流。 实体: {'OBJ': ['周艺文'], 'SUBJ': ['冒险小王子']} 三元组: [['冒险小王子', '作者', '周艺文']]

原文: 宋应星是江西奉新人,公元1587年生,经历过明朝腐败至灭亡的最后时期。 实体: {'OBJ': ['江西奉新', '1587年'], 'SUBJ': ['宋应星']} 三元组: [['宋应星', '出生地', '江西奉新'], ['宋应星', '出生日期', '1587年']]

原文: 韩愈,字退之,河阳(今河南孟县)人。 实体: {'OBJ': ['退之', '河阳'], 'SUBJ': ['韩愈']} 三元组: [['韩愈', '出生地', '河阳'], ['韩愈', '字', '退之']]

原文: 公开资料显示,李强,男,汉族,出生于1971年12月,北京市人,北京市委党校在职研究生学历,教育学学士学位,1996年11月入党,1993年7月参加工作。 实体: {'OBJ': ['汉族', '1971年12月', '北京市', '北京市委党校'], 'SUBJ': ['李强']} 三元组: [['李强', '民族', '汉族'], ['李强', '出生地', '北京市'], ['李强', '毕业院校', '北京市委党校'], ['李强', '出生日期', '1971年12月']]

原文: 杨牧,本名王靖献,早期笔名叶珊,1940年生于台湾花莲,著名诗人、作家。 实体: {'OBJ': ['1940年', '台湾花莲'], 'SUBJ': ['杨牧']} 三元组: [['杨牧', '出生地', '台湾花莲'], ['杨牧', '出生日期', '1940年']]

原文: 杨广是隋文帝杨坚的第二个儿子。 实体: {'OBJ': ['杨坚'], 'SUBJ': ['杨广']} 三元组: [['杨广', '父亲', '杨坚']]

原文: 此次权益变动后,何金明与妻子宋琦、其子何浩不再拥有对上市公司的控制权。 实体: {'OBJ': ['何金明'], 'SUBJ': ['宋琦', '何浩']} 三元组: [['何浩', '父亲', '何金明'], ['宋琦', '丈夫', '何金明']]

原文: 线上直播发布会中,谭维维首次演绎了新歌《章存仙》,这首歌由钱雷作曲、尹约作词,尹约也在直播现场透过手机镜头跟网友互动聊天。 实体: {'OBJ': ['谭维维', '钱雷', '尹约', '尹约'], 'SUBJ': ['章存仙']} 三元组: [['章存仙', '作曲', '钱雷'], ['章存仙', '作词', '尹约'], ['章存仙', '歌手', '谭维维']]

原文: “土木之变”后,造就了明代杰出的民族英雄于谦。 实体: {'OBJ': ['明代'], 'SUBJ': ['于谦']} 三元组: [['于谦', '朝代', '明代']]

原文: 另外,哈尔滨历史博物馆也是全国面积最小的国有博物馆,该场馆面积只有50平方米,可称之“微缩博物馆”。 实体: {'OBJ': ['50平方米'], 'SUBJ': ['哈尔滨历史博物馆']} 三元组: [['哈尔滨历史博物馆', '占地面积', '50平方米']]

原文: 孙杨的妈妈叫杨明,孙杨的名字后面一个字也是来源于她的名字。 实体: {'OBJ': ['杨明', '孙杨'], 'SUBJ': ['孙杨']} 三元组: [['孙杨', '母亲', '杨明']]

原文: 企查查显示,达鑫电子成立于1998年6月,法定代表人张高圳,注册资本772.33万美元,股东仅新加坡达鑫控股有限公司一名。 实体: {'OBJ': ['1998年6月'], 'SUBJ': ['达鑫电子']} 三元组: [['达鑫电子', '成立日期', '1998年6月']]

总结

  本文标题为限定领域的三元组抽取的一次尝试,之所以取名为限定领域,是因为该任务的实体关系是确定,一共为50种关系。

  当然,上述方法还存在着诸多不足,参考苏建林的文章基于DGCNN和概率图的轻量级信息抽取模型,我们发现不足之处如下:

  • 主体和客体的标注策略有问题,因为句子中有时候主体和客体会重叠在一起;
  • 新引入了一类关系:未知,是否有办法避免引入;
  • 其他(暂时未想到)

  从比赛的角度将,本文的办法效果未知,应该会比联合模型的效果差一些。但是,这是作为笔者自己的模型,算法是一种尝试,之所以采用这种方法,是因为笔者一开始是从开放领域的三元组抽取入手的,而这种方法方便扩展至开放领域。关于开放领域的三元组抽取,笔者稍后就会写文章介绍,敬请期待。

参考网址

  1. NLP(二十五)实现ALBERT+Bi-LSTM+CRF模型:https://blog.csdn.net/jclian91/article/details/104826655
  2. NLP(二十一)人物关系抽取的一次实战: https://blog.csdn.net/jclian91/article/details/104380371
  3. 基于DGCNN和概率图的轻量级信息抽取模型:https://spaces.ac.cn/archives/6671

More Repositories

1

people_relation_extract

结合BERT+GRU+ATT模型,对自己收集的人物关系数据进行模型训练,用于人物关系抽取。
Python
319
star
2

spo_extract_platform

本项目是利用深度学习技术来构建知识图谱方向上的一次尝试,作为开放领域的关系抽取,算是笔者的一次创新,目前在这方面的文章和项目都很少。
Python
304
star
3

knowledge_graph_demo

本项目用于展示三元组抽取后形成的知识图谱,包括几本小说的实体关系,以及README.md,介绍这方面的一篇文章。
Python
190
star
4

embedding_rerank_retrieval

本项目是针对RAG中的Retrieve阶段的召回技术及算法效果所做评估实验。使用主体框架为LlamaIndex.
Jupyter Notebook
152
star
5

multi-label-classification-4-event-type

multi-label-classification-4-event-type
Python
127
star
6

ALBERT_text_classification

利用ALBERT实现文本二分类,判别是否属于政治上的出访类事件,提升模型训练和预测速度。
Python
71
star
7

keras_bert_multi_label_cls

本项目采用Keras和Keras-bert实现文本多标签分类任务,对BERT进行微调。
Python
64
star
8

bert_doc_binary_classification

文本二分类任务,是否文档是否属于政治上的出访类事件,利用BERT提取特征,模型采用简单的DNN。
Python
62
star
9

ALBERT_4_Time_Recognition

使用ALBERT预训练模型,用于识别文本中的时间,同时验证模型的预测耗时是否有显著提升。
Python
56
star
10

keras_bert_text_classification

本项目采用Keras和Keras-bert实现文本多分类任务,对BERT进行微调。
Python
46
star
11

keras_bert_sequence_labeling

本项目采用Keras和Keras-bert实现中文序列标注,对BERT进行微调,并在多个命名实体识别数据集上进行测试。
Python
46
star
12

-word-

利用文本分析算法和Python脚本,自动纠正word中的英语单词拼写错误
Python
44
star
13

Sentiment_Analysis

using LSTM model for sentiment analysis.
Python
37
star
14

llm_math_solver

本项目用于大模型数学解题能力方面的数据集合成,模型训练及评测,相关文章记录。
Python
37
star
15

UniLM_Chinese_DEMO

本项目使用云问科技训练的中文版UniLM模型对微博数据集进行自动标题生成。
Python
35
star
16

CNN_4_Verifycode

使用Keras搭建CNN模型,破解简单的网页验证码
Python
34
star
17

Chinese_Time_Recogniztion

利用深度学习模型,在小标注量数据上,进行文本中的时间识别。
Python
33
star
18

transformers_chinese_text_classification

本项目采用transformers模块,使用bert-base-chinese模型实现文本多分类。
Python
32
star
19

DL_4_NER

Using Bi-LSTM model for NER in English.
Python
32
star
20

pytorch_english_mltc

PyTorch使用BERT进行英语多标签文本分类
Python
32
star
21

PyTorch_Learning

learning pytorch step by step
Jupyter Notebook
26
star
22

entity_tagging_platform

A simple and useful platform for entity tagging using tornado.
HTML
25
star
23

cnews_text_classification

利用kashgari轻松搭建文本分类模型。
Python
25
star
24

pytorch_transformer_chinese_text_classification

本项目演示如何在PyTorch中使用Transformer模型进行中文文本分类
Python
23
star
25

R-BERT_for_people_relation_extraction

使用R-BERT模型对人物关系模型进行分类,效果有显著提升。
Python
23
star
26

huggingface_translation_model

使用HuggingFace翻译模型的一次尝试
Jupyter Notebook
21
star
27

llm_4_doc_qa

本项目用于文档问答,使用向量嵌入 + ES 做召回,使用Rerank模型作为精排,再使用LLM做文档问答,Web框架使用Flask。
Python
21
star
28

CRF_4_NER

Using CRF++ for NER
Python
20
star
29

pytorch_transformers_english_ner

本项目采用PyTorch和transformers模块实现英语序列标注,其中对BERT进行微调。
Python
19
star
30

Neo4j_movie_demo

Using Neo4j and Py2neo to demonstrate Chinese top 20 movies and their actor, visualized by graph.
Python
19
star
31

llm_open_triplet_extraction

本项目使用大语言模型(LLM)进行开放领域三元组抽取。
Python
18
star
32

Shicijielong

Using Python spider to complete a funny game named Shicijielong.
HTML
17
star
33

embedding_model_exp

本项目用于Embedding模型的相关实验,包括Embedding模型评估、Embedding模型微调、Embedding模型量化等。
Python
17
star
34

keras_albert_text_classification

本项目采用Keras和ALBERT实现文本多分类任务,其中对ALBERT进行微调。
Python
17
star
35

personal_travel_map

使用Pyecharts绘制个人足迹地图。
HTML
16
star
36

keras_bert_multiple_choice_MRC

本项目采用BERT等预训练模型实现多项选择型阅读理解任务(Multiple Choice MRC)
Python
14
star
37

llm_evaluation_4_mmlu

Using LLM to evaluate MMLU dataset.
Python
14
star
38

multi-modal-image-search

本项目使用LLaVA 1.6多模态模型实现以文搜图和以图搜图功能。
Python
14
star
39

WSD_With_Text_Extraction

抽取式NLP模型(阅读理解模型,MRC)实现词义消歧(WSD)
Python
12
star
40

yi_vl_experiment

本项目是关于Yi的多模态系列模型,如Yi-VL-6B/34B等的实验与应用。
Python
12
star
41

tensorflow-serving_4_kashgari

Using tensorflow/serving to deploy kashgari model for time training and predicting.
Python
12
star
42

keras_albert_multi_label_cls

本项目采用Keras和ALBERT实现文本多标签分类任务,其中对ALBERT进行微调。
Python
11
star
43

tensorflow_serving_examples

利用tensorflow/serving进行单模型、多模型、同一模型多版本的部署,并进行模型预测,并用Prothemus进行服务监控。
Python
11
star
44

alias_find_system

别名发现系统
Python
11
star
45

Keras_Transformer_Text_Classification

本项目使用Keras实现Transformer模型来进行文本分类(中文、英文均支持)。
Python
10
star
46

Keras_R_BERT

本项目使用Keras实现R-BERT,在人物关系数据集上进行测试验证。
Python
10
star
47

resnet_4_cifar10

Using Keras ResNet model to classify CIFAR-10 dataset.
Python
9
star
48

Docker_env_test

该项目用于演示如何构建Python开发环境的Docker镜像,并使用PyCharm连接Docker镜像进行开发测试。
Python
9
star
49

CRF_Chinese_NER

利用CRF++实现中文命名实体识别
Python
9
star
50

keras_bert_english_sequence_labeling

本项目采用Keras和Keras-bert实现英语序列标注,其中对BERT进行微调。
Python
9
star
51

document_qa_with_llm

本项目用于文档问答,使用向量嵌入 + ES 做召回,再使用LLM做文档问答。
Python
8
star
52

Movie_graphknowledge

利用2019年语言和智能比赛的数据和训练的模型,对开放的影视新闻进行三元组抽取,形成影视知识图谱。
Python
8
star
53

keras_bert_cloze

本项目采用keras-bert加载BERT模型,进行完形填空。
Python
8
star
54

CRF-Chinese-Word-Segment

利用CRF模型实现中文分词功能
Python
7
star
55

Keras_4_multiclass

Using Keras to create a DNN model to solve classical multiclass problem using IRIS data.
Python
7
star
56

celery_example

two examples for celery with python, one for math operation, the other for web scraping.
Python
7
star
57

keras_bert_short_text_match

本项目采用Keras和Keras-bert实现短文本匹配任务。
Python
7
star
58

CAPTCHA-Recognizition

Using CNN model to recognize CAPTCHA by using Keras.
Python
7
star
59

pdf-llm_series

The project is for PDF Python learning with Large Language Model.
Python
7
star
60

keras_roberta_text_classificaiton

Use English Roberta PLM to do text classification(TC) task with GLUE dataset: SST-2.
Python
6
star
61

tf_hub_english_text_classification

本项目使用tensorflow_hub中的BERT模型,对英语电影评论数据集(IMDB)进行文本二分类。
Python
6
star
62

text_corrector_corpus_auto_generation

该项目致力于从中文文字版PDF文档中,自动化构建出高质量的中文文本纠错语料。
Python
6
star
63

ES_Learning

Example codes for Elasticsearch learning with Python.
Python
6
star
64

llama-2-multiple-choice-mrc

本项目采用Firefly模型训练框架,使用LLAMA-2模型对多项选择阅读理解任务(Multiple Choice MRC)进行微调,取得了显著的进步。
Python
6
star
65

relation_extract_people

关系抽取之人物关系抽取,采用Pipeline方式。
Python
5
star
66

docker_image_demo

该项目用于显示如何使用Docker进行镜像打包,用于初学者入门。
Python
5
star
67

Examples-of-Python-Spiders

There are three Python Spiders written by myself using PhantomJS, Selenium, and AutoIt.
Python
5
star
68

Keras-K-fold-test

本项目以iris.csv和DNN模型为例,演示如何在Keras中使用K-fold交叉验证。
Python
5
star
69

panas_usage_25_tricks

使用pandas的25个技巧。
HTML
4
star
70

keras_albert_sequence_labeling

本项目采用Keras和ALBERT实现序列标注,其中对ALBERT进行微调。
Python
4
star
71

vllm_learning

本项目用于大模型部署工具vLLM的研究与学习。
Python
4
star
72

roberta_torch_2_tf

本项目用于将HuggingFace提供的Roberta的Torch版本的模型转化为Tensorflow1.X版本的ckpt格式。
Python
4
star
73

bert_finetune_text_classification

利用BERT微调进行文本分类。
Python
4
star
74

CPM-LM-TF2-DEMO

本项目使用清源预训练模型CPM,并给出一些模型使用的例子。
Python
4
star
75

RoBERTa_and_DCMN_plus_for_RACE

I use RoBERTaMultipleChoiceModel and DCMN+ RoBERTa for RACE dataset.
Python
4
star
76

Keras_quasi_Mul_BERT

本项目使用Keras实现quasi Mul-BERT,在人物关系数据集上进行测试验证,其中quasi的意思为近似,因为Mul-BERT模型的论文还未发表,更多模型的细节还未知,因此为近似Mul-BERT。
Python
4
star
77

bert_sougou_qa

本项目利用keras-bert和tokenizers模块,对BERT进行微调,对搜狗问答数据集实现抽取式问答。
Python
4
star
78

Sudoku-Solver-JavaScript-Version

This Sudoku Solver is written purely by HTML and JavaScript, which becomes more friendly for users to operate.
HTML
3
star
79

ORM_test

本项目用于演示如何使用SQLAlchemy来操作MySQL数据库,简单的CRUD操作。
Python
3
star
80

dynamic_quantization_on_bert

本项目使用动态量化(Dynamic Quantization)技术对BERT模型进行量化,并实验量化后的模型在推理性能和效果上的表现。
Jupyter Notebook
3
star
81

keras_bert_DCMN

使用DCMN模型完成多项选择阅读理解型任务。
Python
3
star
82

formIntoMySQL

This project use Spring Boot to interactive with form on the web and submit the result to MySQL database.
HTML
3
star
83

Poem-Search

web框架使用tornado, 后端数据库采用MongoDB, 诗词数据集使用爬虫。
Python
3
star
84

Sudoku-Solver

This program is written by Python Django, and used to solve Sudoku from other places.
HTML
2
star
85

phoneSpider

Scrapy phone information from baidu research using scrapy-splash, this is a simple version.
Python
2
star
86

machine_learning_text_classification

利用ALBERT+机器学习算法进行文本分类。
Python
2
star
87

llm_relation_classification

使用LLM对人物关系进行分类,记录模型训练、部署及评估结果。
Python
2
star
88

doubanMovieSpider

This project is simply a tutorial for downloading pictures from website and rename them.
Python
2
star
89

MathOperation

MathOperation
HTML
2
star
90

percent4.github.io

my personal blog with github + hexo
HTML
2
star
91

josephus

test
HTML
1
star
92

keras_train_visualization

Keras模型训练实时可视化
Python
1
star
93

csv_file_review

使用tornado上传Excel、CSV文件,并可以在线浏览。
HTML
1
star
94

unittest_example

Python单元测试使用例子
Python
1
star
95

protobuf_learning

Protobuf入门学习项目
Python
1
star
96

audio_recognizition

Using Xunfei and Baidu API to recognize audio in wav format
Python
1
star
97

WDS_With_Text_Extraction

使用Text Extraction模型进行词义消歧(WSD)
Python
1
star
98

Kaggle_Competition

some thoughts about a Kaggle competition
1
star
99

document_reviewer

常见文档格式的预览,比如txt,log,csv,image,pdf,markdown,python,html等。
JavaScript
1
star
100

Numeric_Analysis

This project is mainly to introduce some classical methods in Numeric Analysis using Python.
Python
1
star