中文文本蕴含计算项目(88万中文文本蕴含数据集+中文文本蕴含模型)

ChineseTextualInference

ChineseTextualInference project including chinese corpus build and inferecence model, 中文文本推断项目,包括88万文本蕴含中文文本蕴含数据集的翻译与构建,基于深度学习的文本蕴含判定模型构建.
项目地址:https://github.com/liuhuanyong/ChineseTextualInference

项目介绍

文本间的推理关系,又称为文本蕴含关系 (TextualEntailment),作为一种基本的文本间语义联系,广泛存在于自然语言文本中。简单的来说文本蕴含关系描述的是两个文本之间的推理关系,其中一个文本作为前提(premise),另一个文本作为假设(hypothesis),如果根据前提P能够推理得出假设H,那么就说P蕴含H,记做P->H,这跟一阶逻辑中的蕴含关系是类似的。
目前关于文本蕴含还存在两个问题:
一,中文文本蕴含数据集严重匮乏
目前,关于文本蕴含的研究主要还是集中在英文,如评测中常常使用的SNLI数据集与MultiNIL:
1) The Stanford Natural Language Inference (SNLI) 是斯坦福大学NLP组发布的文本蕴含识别的数据集。SNLI由人工标注的,一共包含570K个文本对,其中训练集550K,验证集10K,测试集10K,一共包含三类entailment,contradiction,neutra,上节提到的例子就是出自此数据集
2) The Multi-Genre Natural Language Inference (MultiNLI)是一个众包数据集,包含433k个文本对。

然而,在中文中,还没有出现大规模的文本蕴含数据集, CCL2018有一个文本蕴含的评测,由北京语言大学于东老师团队组织的,发布了一个数量级为10W的评测集,这是目前最大的一个文本蕴含数据集,与英文还有很大的差距。
二,语言之间存在根本性差异
在英文SNIL数据集中,准确率已经达到将近90%,这个准确率是在50W+数据集上得到的,而中文与英文有实质性差异,英文的文本蕴含模型无法直接应用到中文的文本蕴含当中,我们需要在中文上做技术上的PK,做本土化的创新.

因此,本项目将尝试完成两个任务:
一, 完成与SNIL规模相当的中文文本蕴含数据集
二, 基于构建起的中文文本蕴含数据集, 尝试完成模型实验

项目架构

image

中文文本蕴含数据集构建

1,英文文本蕴含数据

A snowboarder on a wide plain of snow	A snow field with a snowboarder on it	entailment
A snowboarder on a wide plain of snow	A snowboarder gliding over a field of snow	neutral
A snowboarder on a wide plain of snow	A snowmobile in a blizzard	neutral
An older women tending to a garden.	The lady is cooking dinner	contradiction
An older women tending to a garden.	The lady is weeding her garden	neutral
An older women tending to a garden.	The lady has a garden	entailment
A man in a black shirt overlooking bike maintenance.	A man destroys a bike.	contradiction
A man in a black shirt overlooking bike maintenance.	A man watches bike repairs.	entailment
A man in a black shirt overlooking bike maintenance.	A man learns bike maintenance.	neutral
A man in a black shirt is looking at a bike in a workshop.	A man is wearing a red shirt	contradiction
A man in a black shirt is looking at a bike in a workshop.	A man is in a black shirt	entailment
A man in a black shirt is looking at a bike in a workshop.	A man is deciding which bike to buy	neutral

2,中英文文本语料翻译
translate_duba.py

class Translate:def __init__(self):return'''获取html'''def get_html(self, url):headers = {'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 'r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3','Connection': 'keep-alive'}req = request.Request(url, headers=headers)page = request.urlopen(req).read()page = page.decode('utf-8')return page'''解析翻译答案'''def extract_answers(self, content):selector = etree.HTML(content)answer = selector.xpath('//div[@class="in-base"]/div/div/text()')[0]return answer'''翻译主函数'''def translate(self, query):url = 'http://www.iciba.com/{}'.format(query)html = self.get_html(url)try:answer = self.extract_answers(html)except Exception as e:answer = queryreturn answer

3,翻译后中文文本蕴含数据集

一名身穿灰色T恤的男子站在一辆卡车和一棵小树的停车收费表旁边。	这辆卡车是绿色的。	neutral
摩托车排成一排,靠在一座建筑物上。	停车场里到处都是汽车。	contradiction
一男一女在街角接吻。	一对男女在接吻。	entailment
一名身穿绿色制服,手里拿着球的足球运动员被他的一些队友举起,而另一名穿红色球衣的球员则伸手去接球。	这位绿色球员受伤了,他的队友正在帮助他。	neutral
一个男人坐在阳光下,坐在长凳上,弹着班卓琴,而一只加拿大鹅看着。	有个人站着弹吉他。	contradiction
一个棕色头发的女人,对着麦克风唱歌。	一个女人唱歌。	entailment
一位穿着深色外套的女士正坐着,身边有许多人。	一位女士正试图在节日举行饮食比赛。	neutral
一位水泥工人正在一家服装店外的一条新人行道上工作。	一名工人在工作。	contradiction
巴尔从后板凳上扔出莫洛托夫鸡尾酒,就像金里奇曾经做过的那样。	金里奇和巴尔都把莫洛托夫鸡尾酒从后排扔出去了。	entailment
一群儿童和成年人在树林里的一条土路上骑自行车。	一个家庭在乡下骑自行车。	neutral
两个人手拿着一根杆子在外面工作。	两个男人在外面捕鲸。	contradiction
这是一张男人睡在墙上或冥想的照片。	一个人在墙附近。	entailment
当三个人经过时,人行道上有建筑。	他们最近拆毁了那里的一座建筑物。	neutral
老太太坐在满是鲜花的房间里。	这位老太太正在厨房里做蛋糕。	contradiction
游泳者潜入蓝色游泳池水中。	有一个人在水里。	entailment

4, 中英文文本蕴含数据集规模

语言类型句子数蕴含句子对数
中文100W88W
英文116W96W

中文文本蕴含模型实验

本实验采用两个双向LSTM对前提Premise和假设hypothsis进行编码,最周将两个句子表征进行拼接,送入全连接层进行三分类
1, 网络层如下:

    embedding_layer = Embedding(self.VOCAB_SIZE + 1,self.EMBEDDING_DIM,weights=[self.embedding_matrix],input_length=self.TIME_STAMPS,trainable=False,mask_zero=True)left_input = Input(shape=(self.TIME_STAMPS,), dtype='float32')right_input = Input(shape=(self.TIME_STAMPS,), dtype='float32')encoded_left = embedding_layer(left_input)encoded_right = embedding_layer(right_input)shared_lstm = self.create_base_network(input_shape=(self.TIME_STAMPS, self.EMBEDDING_DIM))left_output = shared_lstm(encoded_left)right_output = shared_lstm(encoded_right)merged = concatenate([left_output, right_output], axis=-1)merged = Dropout(0.3)(merged)merged = BatchNormalization()(merged)pred = Dense(self.NUM_CLASSES, activation='softmax', name='softmax_prediction')(merged)optimizer = SGD(lr=0.001, momentum=0.9)model = Model(inputs=[left_input, right_input], outputs=pred)model.compile(loss='categorical_crossentropy',optimizer=optimizer,metrics=['accuracy'])model.summary()

2, 实验结果

模型训练集测试集训练集准确率测试集准确率
Bilstm30w10W0.560.54

总结

1, 本项目针对中文文本蕴含数据集数量不足的问题,提出了一个中文文本蕴含数据集,规模达到88W
2, 借助翻译方法进行英文中文转换,前提是英文句子较为短小,短句的翻译效果还是不错的
3, 原先打算使用百度API进行翻译,但是使用次数有限制,因此转而以金山毒霸代之,使用在线翻译结果
4, 本项目实现了一个以LSTM进行文本蕴含三分类的模型,准确率不是很高,只有0.54左右,后期还有很大的优化空间

any question? 请联系我:
邮箱:lhy_in_blcu@126.com
csdn:https://blog.csdn.net/lhy2014
我的自然语言处理项目: https://liuhuanyong.github.io/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | 打通推荐系统与知识图谱: 第一个公开的大规模链接数据集合

本文转载自:RUC智能情报站,知乎专栏链接:https://zhuanlan.zhihu.com/RucAIBox前言:近年来,知识图谱(KB)被广泛应用于推荐系统(RS),但尚未有公开将推荐系统物…

数据结构--链表--判断一个字符串是否为回文串(单向链表,双向链表)

回文串为首尾对称的字符串: 如a,aba,abba等 单链表思路 1.将字符读入链表 2.找到链表中点 3.将链表从中点断开成2条,将后半条反转 4.比较两条链表是否相等(比较次数以少的为准(长度为奇数时&#xff…

丁香园在语义匹配任务上的探索与实践

前言语义匹配是NLP领域的基础任务之一,直接目标就是判断两句话是否表达了相同或相似意思。其模型框架十分简洁,通常包含文本表示和匹配策略两个模块,因而很容易扩展到相关应用场景,如搜索、推荐、QA系统等。此类模型通常依赖数据驱…

19本高并发编程书籍推荐

Java并发编程实战 (java并发的圣经) 多处理器编程的艺术 (并发编程的各种算法,java实现,有点难度) 并发的艺术 (多核处理器的共享内存模型中的各种算法) Java虚拟机并发编程 &#x…

Wasserstein metric的通俗解释

Wasserstein metric的通俗解释​关注他166 人赞同了该文章本文收录在无痛的机器学习第二季目录。Wasserstein GAN可以算是GAN界的一大突破了,有关它的介绍和使用心得的文章也已经满天飞了,感兴趣的童鞋随便一搜就能好多,今天就不说太多大家说…

肖仰华 | 领域知识图谱落地实践中的问题与对策

本文转载自公众号:知识工场。肖仰华教授2万字长文为您深度剖析领域知识图谱,对领域知识图谱技术与落地应用中的一系列关键问题做了系统的梳理与解答。肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场…

数据结构--链表--约瑟夫环问题(单向循环链表)

问题:一群人站成一个圆圈,从一个人开始报数,1, 2 ,。。。m,报到m的拉出去砍了,求被砍的顺序和最后一个活下来的。 利用单向循环链表实现 C代码如下:(参考书籍&#xff…

献给新一代人工智能后浪——《后丹》

一只小狐狸带你解锁炼丹术&NLP秘籍视频来源:AIZOO《后丹》那些口口声声,掉包调参侠的人,应该看着你们像我一样,我看着你们,满怀羡慕。人类积攒了几十年的科技,所有的模型、数据、框架和显卡&#xff0c…

神经网络算法学习---mini-batch++++mini-batch和batch的区别

Batch_Size(批尺寸)是机器学习中一个重要参数,涉及诸多矛盾,下面逐一展开。 首先,为什么需要有 Batch_Size 这个参数? Batch 的选择,首先决定的是下降的方向。如果数据集比较小,完全…

进阶阿里架构师:算法、编程语言、数据库、架构设计!书单推荐!

阿里架构师必读书单 数据结构与算法:算法、算法导论等。 编程语言:java编程思想、java核心技术等 模式与设计:设计模式、代码重构、深入理解java虚拟机 数据库:mysql优化、oracle、redis实战、mongodb权威指南等。 架构设计&a…

刘知远 | 语义表示学习

本文转载自公众号:人工智能图灵。刘知远,清华大学计算机系副教授、博士生导师。主要研究方向为表示学习、知识图谱和社会计算。2011年获得清华大学博士学位,已在ACL、IJCAI、AAAI等人工智能领域的著名国际期刊和会议发表相关论文60余篇&#…

数据结构--链表--LRU缓存

LRU&#xff08;Least Recently Used&#xff09;缓存策略&#xff1a; 通俗的讲就是&#xff0c;最近使用的放在最前面&#xff0c;不经常使用的放后面&#xff0c;满了就删除 C代码实现 //用单链表实现LRU策略 2019.3.17 #include <iostream> #include <string…

透过现象看机器学习:奥卡姆剃刀,没有免费的午餐,丑小鸭定理等

一只小狐狸带你解锁炼丹术&NLP 秘籍本文对PAC学习理论、没有免费的午餐定理、丑小鸭定理、奥卡姆剃刀原理等机器学习中有名的理论或定理进行了详细的梳理。在机器学习中&#xff0c;有一些非常有名的理论或定理&#xff0c;这些理论不仅有助于我们从本质理解机器学习特性&a…

NAACL 2019最佳论文:量子概率驱动的神经网络

今天要介绍的文章与当前大火的 BERT 同获最佳论文&#xff0c;摘得 NAACL 2019 最佳可解释NLP论文&#xff08;Best Explainable NLP Paper&#xff09;。NAACL 与 ACL 和 EMNLP 并称之为 NLP 三大顶会&#xff0c;去年 ELMO 获得 outstanding paper&#xff0c;今年一共有五篇…

互联网优秀架构师必读书单V2.0

一篇文章搞懂高级程序员、架构师、技术经理、技术总监、CTO&#xff0c;从薪资到技能要领的区别&#xff0c;我提到了架构师的准确定义和所需工作年限&#xff0c;以及最重要的架构师的职责等。 从程序员进阶到架构师&#xff0c;6大核心技能详解&#xff0c;提到了从程序员进…

领域应用 | NLP 和知识图谱:金融科技领域的“双子星”

本文转载自公众号&#xff1a;恒生技术之眼。自然语言处理&#xff08;Natural Language Processing, NLP&#xff0c;语义计算&#xff09;和知识图谱&#xff08;Knowledge Graph, KG&#xff0c;知识计算&#xff09;作为认知智能的关键技术&#xff0c;正成为智能金融浪潮中…

数据结构--单链表single linked list(无表头哨兵)重写

针对上次写的单链表中不足的地方进行修改&#xff1a; 1.构造函数需要让用户输入&#xff08;bad&#xff09; 2.函数功能不单一&#xff0c;既操作链表&#xff0c;还打印输出&#xff08;bad&#xff09; 代码链接&#xff08;包含无头\有头单链表、循环单链表、双链表、循…

别再蒸馏3层BERT了!变矮又能变瘦的DynaBERT了解一下

一只小狐狸带你解锁炼丹术&NLP秘籍神经网络模型除了部署在远程服务器之外&#xff0c;也会部署在手机、音响等智能硬件上。比如在自动驾驶的场景下&#xff0c;大部分模型都得放在车上的终端里&#xff0c;不然荒山野岭没有网的时候就尴尬了。对于BERT这类大模型来说&#…

LS-GAN:把GAN建立在Lipschitz密度上

最近很多关心深度学习最新进展&#xff0c;特别是生成对抗网络的朋友可能注意到了一种新的GAN-- Wasserstein GAN。其实在WGAN推出的同时&#xff0c;一种新的LS-GAN (Loss Sensitive GAN&#xff0c;损失敏感GAN)也发表在预印本 [1701.06264] Loss-Sensitive Generative Adver…

java程序员必看经典书单,以及各个阶段学习建议

最近&#xff0c;部分读者一直希望我给大家推荐java程序员必读书籍&#xff0c;以及java程序员每个阶段的学习建议。 今天&#xff0c;先给大家推荐1.0版本&#xff0c;后面再不断完善程序员必读书籍2.0版本。 希望&#xff0c;你早日成为牛逼的程序员。 程序员进阶之路 上图是…