关于nlp的一些探索
深度学习,知识图谱,nlp学习经历
获取信息来源:英文paper研读,吴恩达公开课,Hiton公开课,北大nlp教材,英文最新学术论文,中科院院士技术博客,知识图谱专家课程
自学进修路线:基础理论---专业理论(公开课,讲义,教材,技术博客)---框架原理及使用:sparkMLlib,tensorflow---最新技术,专业理论提升(英文paper研读,算法改进)---NLP、LSTM(句子相似度,双向LSTM分词,语义分析理解,机器翻译)---聊天机器人技术研究
部分研究成果与原创技术博客,请登陆本人的技术博客:www.cnblogs.com/txq157(博客园)
生成式聊天机器人三种问题的解决方案:①上下文:Attention Model的引入②安全回答:更改损失函数为MMI③一致性问题(同义句敏感度问题):在Decoder阶段引入同义句
nlp研发经历
一、中文分词
实验背景:目前深度学习与nlp结合是大势所趋,在深度学习中占据统治地位的是BiLSTM和Attention Model在本人成功改造了IK中文分词,在模拟大容量文本分词时速度提升了30%(2016年初实现)的基础上,目前继续深入研究基于双向LSTM分词以及词性标注,全面取代CRF。
二、Kmeans聚类算法改进
实验背景:提取出文章的关键词,有很多方案。基于深度学习语义理解方向是目前热点,在使用w2v获取到词embedding后,进行词聚类,然后从每个簇中心中抽取出频率最高的词作为文章的关键词是比较不错的方案。基于"相同语境中出现的词语义相近"思想的w2v已经很成功,kmeans聚类算法由于损失函数的非凸性很容易陷入局部最优解,聚类中心的选取方式以及k值的最优解需要改进。
实验成果:经过本人长期不懈的努力,终于改进成功。改进后的效果:①能够使聚类中心的选取更加合理化,能够确定k值的隐式最优解,聚类结果准确率高且稳定②增加数据归一化处理③增加了聚类结果连续存储的归类算法。链接地址:http://www.cnblogs.com/txq157/p/6067098.html
三、文章摘要改进计划:siamese lstm 解决句子相似度
实验背景:文章摘要技术用在搜索领域,可以改进搜索性能,节约用户的搜索时间。运用传统的依赖于知识库方法摘取出文章的关键词效果不佳。文章摘要技术,不管采用何种手段,离不开三个核心问题:①计算句子相似度②文摘句抽取③文摘句排序。文章摘要比较理想的效果是抽取出文章中的中心句,而不是特征词的拼凑。因此从语义理解的角度出发,第一种方案,依赖于w2v获取到词embedding,然后累加embedding组成句子,继续累加组成文章语义表示,从中找出与文章语义最接近的句子语义表示。这个方案与传统的统计建模相比,效果显然好很多,但不是最佳方案。把CNN引入到nlp中也是一种方案,但不是最佳方案。语义理解的核心是以句子或者文章为单位进行高阶特征抽取。在垂直搜索领域,lucene底层的文档排重SimHash已经很成功,前提也是抽取文档的特征语句。现在提出一个更接近于理想效果的方案:运用siamese lstm获取到句子的向量(与标准的lstm比较,这些句子的向量具有语义关联),然后累加成文章的语义表示,从中找出与文章语义最相近的句子作为中心句。因此核心问题是siamese lstm解决句子相似度。
深度学习nlp实验
在nlp业内,语义理解和分析一直是难点,之前基于word2vector按照词向量选择每个词的候选词然后组合成语句的方案,时间复杂度高且准确度不够。此次实验目的是探索基于2015年国外最新的研究成果 siamese lstm(区别于标准的lstm),以句子对儿或者文档对儿为输入对象,以句子对儿的exp(-||h1-h2||)为输出,MSE构建loss function,基于ma结构,实验准确度提升到90%以上,如果样本足够科学,人工打分足够精准,准确度还会更高。
搭建tensorflow分布式环境,siamese lstm学术论文的转化,主要是tensorflow 代码实施,模型训练
基于句子对儿的siamese lstm的相似度解决方案的一次成功探索。
关于nlp的一些探索的更多相关文章
- NLP点滴——文本相似度
[TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...
- NLP+语义分析(四)︱中文语义分析研究现状(CIPS2016、角色标注、篇章分析)
摘录自:CIPS2016 中文信息处理报告<第二章 语义分析研究进展. 现状及趋势>P14 CIPS2016> 中文信息处理报告下载链接:http://cips-upload.bj. ...
- NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)
R语言由于效率问题,实现自然语言处理的分析会受到一定的影响,如何提高效率以及提升词向量的精度是在当前软件环境下,比较需要解决的问题. 笔者认为还存在的问题有: 1.如何在R语言环境下,大规模语料提高运 ...
- 请收好这份NLP热门词汇解读
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 微软研究院AI头条 编者按:在过去的一段时间,自然语言处理领域取得了许多重要的进展,Tran ...
- NLP&深度学习:近期趋势概述
NLP&深度学习:近期趋势概述 摘要:当NLP遇上深度学习,到底发生了什么样的变化呢? 在最近发表的论文中,Young及其同事汇总了基于深度学习的自然语言处理(NLP)系统和应用程序的一些最新 ...
- 图解BERT(NLP中的迁移学习)
目录 一.例子:句子分类 二.模型架构 模型的输入 模型的输出 三.与卷积网络并行 四.嵌入表示的新时代 回顾一下词嵌入 ELMo: 语境的重要性 五.ULM-FiT:搞懂NLP中的迁移学习 六.Tr ...
- NLP入门(五)用深度学习实现命名实体识别(NER)
前言 在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具--NLTK和Stanford NLP.在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现N ...
- NLP是什么
NLP是什么 而在计算机领域, NLP(Natural Language Processing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言. 这包括,既要能让计算机理解自然语 ...
- 聊天机器人(chatbot)终极指南:自然语言处理(NLP)和深度机器学习(Deep Machine Learning)
在过去的几个月中,我一直在收集自然语言处理(NLP)以及如何将NLP和深度学习(Deep Learning)应用到聊天机器人(Chatbots)方面的最好的资料. 时不时地我会发现一个出色的资源,因此 ...
随机推荐
- for循环居然还可以这样写
公司代码有点坑,查找问题,发现for循环的写法不是固定条件在中间,写反了也是可以运行的.比如:下面一个简单的for循环 int m=0; for(int i=0;i>3;i++){ m=m+i; ...
- Tomcat基础操作
1.在WebApps ROOT目录里,如果删除过ROOT从新创建,放置index.html,index.jsp即可访问. 2.修改默认8080端口,打开server.xml,将8080端口修改为80即 ...
- sql server报【从varchar数据类型到datetime数据类型的转换产生一个超出范围的值】错误的解决办法
产生这个错误的原因是在使用convert函数将给定的日期字符串转换为日期类型的时候,因为datetime这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误. 如果类型是[datetime ...
- springboot指定注解扫描范围
springboot注解扫描范围是由@ComponentScan指定的;默认情况下为启动程序所在目录及其子包; 如果需要指定扫描路径,在启动程序中添加修改 @ComponentScan(basePac ...
- centos7.x下环境搭建(二)—nginx安装
上篇文章是对mysql的安装,接着上篇文章,这篇文章安装nginx服务 添加yum源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添 ...
- python利用ThreadPoolExecutor实现有任务异常,就终止线程池中的所有剩余任务
先描述一下场景: 我有一批任务需要放入线程池中去处理,但是一旦线程池中有1个任务出现了异常(抛了Exception)就将线程中尚未开始的任务全部取消不执行. 需要说明的是正在执行的任务因为无法撤销,所 ...
- Python数据库添加时间
利用pymysql往数据库中添加时间字段的方法: 1.导入datetime和pymysql:安装:pip install pymysql, datetime是内置 2.写入SQL语句:向对应的字段中间 ...
- 记Flask的一种设置项目配置的方法!
在做项目时,碰到的一种设置配置的方式,主要是因为公司将所有的配置写成了一个公司专有的配置库(各种资源地址,账号等),上线后的项目需要什么配置是从这个配置库的读取.但在开发时不能使用,所以在开发时需要自 ...
- PyTorch 之 DataLoader
DataLoader DataLoader 是 PyTorch 中读取数据的一个重要接口,该接口定义在 dataloader.py 文件中,该接口的目的: 将自定义的 Dataset 根据 batch ...
- Haskell路线
@ 知乎 @ <I wish i have learned haskell> ———— 包括: Ranks, forall, Monad/CPS, monadic parser, FFI ...