自然语言处理
文章平均质量分 82
黄然大悟
写写笔记,聊聊技术,谈谈人生!
展开
-
tensorflow2.0+keras简单实现BERT模型
BERT模型简介BERT主要利用Transformer Encoder部分结合Masked Language Model,训练双向注意力模型应用到语言建模中。BERT模型拆解tensorflow模块导入import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import activationsfrom tensorflow.keras import layersfr原创 2021-02-24 15:27:49 · 3430 阅读 · 3 评论 -
tensorflow serving部署Bert预训练模型
目前没有整理完善,先留个坑~Bert模型介绍BERT的关键技术创新是将Transformers双向训练作为一种流行的注意力模型应用到语言建模中。Masked LM (MLM)在向BERT输入单词序列之前,每个序列中有15%的单词被[MASK]token替换。然后,该模型试图根据序列中其他非MASK词提供的上下文来预测MASK词的原始值。本文主要记录使用tensorflow serving部署训练好的bert模型,并根据模型获取句子向量表示。ckpt转saved_model格式google ber原创 2020-12-29 23:53:19 · 1770 阅读 · 4 评论 -
自然语言处理入门(五)--基于双塔结构的语义匹配模型
语义匹配文本语义匹配一般是计算两端文本之前的语义相关性或相似度,在搜索和自动问答中应用广泛。用深度学习方法解决这类问题一般有两种思路,以搜索中的query和doc为例:一种是query和doc分别学习一个向量表示,最后计算cos相似度;另一种是query和doc先融合,然后接多层网络,最后变成分类问题来优化。详细可参考:《搜索与推荐中的深度学习匹配》之搜索篇本文主要将的是第一种情况,就是所谓的双塔结构。双塔结构双塔结构总体如下图,一般有两个输入,然后分别接一个表示层,表示层输出向量,最后计算两个向原创 2020-09-20 18:15:46 · 3587 阅读 · 0 评论 -
维特比算法(viterbi)原理以及简单实现
维特比算法看一下维基百科的解释,维特比算法(Viterbi algorithm)是一种动态规划算法。它用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。通俗易懂的解释知乎有很多,如:如何通俗地讲解 viterbi 算法?,我我这里重点是如何用python代码实现这个算法。算法原理维特比算法就是求所有观测序列中的最优,如下图所示,我们要求从S到E的最优序列,中间有3个时刻,每个时刻都有对应的不同观察的概率,下图中每个时刻不同的观测标签有3个。原创 2020-06-20 23:28:29 · 16181 阅读 · 4 评论 -
greedy search和beam search的原理以及实现
在自然语言处理seq2seq模型中,模型训练完成后,预测推理时需要预测每一步输出的最可能的单词,之后组合成完整的预测输出句子。这里每一步最可能的输出单词的选择就用到greedy search或者beam search。下面详细介绍一下这两种搜索的区别,以及实现方法。贪婪搜索 greedy searchgreedy search比较简单,就是贪婪式的搜索,每一步都选择概率最大的单词输出,最后组成整个句子输出。这种方法给出的结果一般情况结果比较差,因为只考虑了每一步的最优解,往往里全局最优解差距很大。贪婪原创 2020-07-18 17:04:12 · 2240 阅读 · 0 评论 -
自然语言处理入门(四)--Tensorflow2.0+Keras实现seq2seq+Attention模型的对话系统
这里写自定义目录标题seq2seq模型介绍Keras实现seq2seq模型Encoder部分Decoder部分Encoder和Decoder合并模型详细结构seq2seq模型训练本文主要是利用keras框架记录简单实现seq2seq模型的过程,seq2seq的应用主要有问答系统、人机对话、机器翻译等。seq2seq模型介绍seq2seq模型主要有两个部分Encoder和Decoder,Encoder负责将输入编码,Decoder负责解码输出。最简单的seq2seq模型图:Keras实现seq2se原创 2020-05-17 00:15:27 · 3689 阅读 · 4 评论 -
query改写-拼写纠错(Spelling Correction)
这是转载斯坦福NLP课程中讲拼写纠错的一节,感觉讲的比较好,虽然课程很老,但是讲的知识,在目前的query改写、拼写纠错还是很实用的,附原文链接:http://www.52opencourse.com/138/%E6%96%AF%E5%9D%A6%E7%A6%8F%E5%A4%A7%E5%AD%A6%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%...转载 2019-09-23 21:51:41 · 1760 阅读 · 0 评论 -
查询理解(Query Understanding)—查询改写总结
本文翻译的原文:https://queryunderstanding.com/query-rewriting-an-overview-d7916eb94b83查询改写(Query Rewriting)的总结目前为止,我们只是专注于字符级别和字块级别的查询理解,现在我们转向对实体和查询本身的理解。在这个级别上,最强大的查询理解技术就是我们称之为查询改写的一大类策略。查询改写会自动转换和改写用...翻译 2018-09-22 21:45:22 · 3726 阅读 · 0 评论 -
自然语言处理入门(二)--Keras实现BiLSTM+Attention新闻标题文本分类
本篇主要记录Keras实现BiLSTM+Attention模型,其中Attention是自定义层。然后用该模型完成新闻标题文本分类任务。数据预处理这里使用的数据集只是用来演示文本分类任务,所以没有使用长篇的文章,而是使用的标题。原始数据集是在头条爬取的,在这里可以下载:https://github.com/fate233/toutiao-text-classfication-dataset我...原创 2019-07-13 15:55:13 · 10113 阅读 · 14 评论 -
自然语言处理入门(一)--搜狗新闻语料处理和word2vec词向量的训练
新闻语料预处理本文使用的是搜狗新闻语料库,原始语料是类似下图中xml格式,首先需要提取中语料中正真的新闻内容,就是<content>中对应的文本。还需要过滤一些特殊字符,以及半角和全角的转换问题。下面看一下详细的处理过程。首先是一个全角转半角的辅助程序,全角和半角转换的详细情况请参考:https://blog.csdn.net/huanghaocs/article/detail...原创 2019-05-25 18:30:54 · 2811 阅读 · 4 评论 -
NLP相关分词和预处理工具包
jiebaPython下中文分词工具地址:https://github.com/fxsjy/jieba , 安装:pip install jieba功能:中文分词、词性标注、TF-IDF和TextRank关键词抽取ansjJava下中文分词工具地址:https://github.com/NLPchina/ansj_seg ,maven使用: <dependency> ...原创 2019-04-27 11:09:46 · 492 阅读 · 0 评论 -
深度学习NLP的各类模型及应用总结
原文来自知乎:https://zhuanlan.zhihu.com/p/58931044。转载为了方便自己学习,如有侵权,我会删除!背景自然语言处理(英语:Natural Language Process,简称NLP)是计算机科学、信息工程以及人工智能的子领域,专注于人机语言交互,探讨如何处理和运用自然语言。自然语言处理的研究,最早可以说开始于图灵测试,经历了以规则为基础的研究方法,流行于现...转载 2019-03-31 17:31:46 · 25146 阅读 · 0 评论 -
Java调用Tensorflow训练模型预测结果
Java调用Tensorflow训练好的模型做预测,首先需要读取词典,然后加载模型,读入数据,最后预测结果。读取词典文件这个词典文件wordIndexMap.txt,就是上一篇对应训练模型之前生成的词典文件。每行一个词和词的编号。// 从文件读取词典文件存入Map private static Map&amp;lt;String, Integer&amp;gt; readVocabFromFile(Str...原创 2018-12-28 21:41:51 · 5605 阅读 · 8 评论 -
使用Tensorflow训练LSTM+Attention中文标题党分类
这里我们用Tensorflow中LSTM模型训练一个标题党的分类模型,并最后用Java调用训练好的模型。数据预处理首先根据语料和实验数据训练词向量word2vec模型,这个有很多教程,这么不再叙述。之后根据训练好的词向量生成我们需要的词典文件。保存的词典map为每行一个词和词的编号。import gensimimport numpy as npdef load_words_embedd...原创 2018-12-28 21:32:39 · 8294 阅读 · 9 评论 -
NLP相关书籍和论文综述
1. An Introduction to Conditional Random Fields本篇论文详细介绍了条件随机场(Conditional Random Fields,CRF)模型,了解CRF模型必读论文,包括有四个部分: 第一部分介绍了CRF模型的基础知识图模型,还有判别式模型和生成式模型的区别。 第二部分介绍了两种CRF模型,Linear-chain CRFs和General ...原创 2018-07-23 00:07:31 · 3276 阅读 · 0 评论 -
NLP中的语言模型(language model)
什么是语言模型统计语言模型是一个单词序列上的概率分布,对于一个给定长度为m的序列,它可以为整个序列产生一个概率P(w_1,w_2,...,w_m) 。其实就是想办法找到一个概率分布,它可以表示任意一个句子或序列出现的概率。 目前在自然语言处理相关应用非常广泛,如语音识别(speech recognition) , 机器翻译(machine translation),词性标注,句法分析。原创 2017-09-11 17:28:49 · 22622 阅读 · 0 评论 -
自然语言处理相关数据集和语料
英文数据集Web data: Amazon reviewshttps://snap.stanford.edu/data/web-Amazon.html http://jmcauley.ucsd.edu/data/amazon/Restaurant Reviews Datasethttp://www.cs.cmu.edu/~mehrbod/RR/Movie Review Datahttp://www原创 2017-09-10 13:44:45 · 2029 阅读 · 0 评论