
自然语言处理
vivian_ll
这个作者很懒,什么都没留下…
展开
-
jieba关键词提取的源码解析
一、简介1.什么是关键词关键词是指能反映文本主题或者意思的词语,如论文中的Keyword字段。关键词提取是文本挖掘领域一个很重要的部分,通过对文本提取的关键词可以窥探整个文本的主题思想,进一步应用于文本的推荐或文本的搜索。常用的关键词提取算法:TF-IDF算法、TextRank算法2.jieba关键词提取简介利用jieba进行关键字提取时,有两种接口。一个基于TF-IDF算法,一个基于TextRank算法。TF-IDF算法,完全基于词频统计来计算词的权重,然后排序,再返回TopK个词作为关键字原创 2020-06-09 19:12:26 · 4706 阅读 · 1 评论 -
论文笔记:Attention is All You Need
一步步解析Attention is All You Need!原创 2019-12-31 11:43:34 · 606 阅读 · 0 评论 -
bert今生前世全总结
一、Bert简介谷歌AI实验室的BERT深刻影响了NLP的格局。BERT之后,许多NLP架构、训练方法与语言模型如雨后春笋般涌现,比如谷歌的TransformerXL、OpenAI’s GPT-2、 XLNet、ERNIE2.0、 RoBERTa等。BERT团队对该框架的描述:BERT全称Bidirectional Encoder Representations from Transfor...原创 2019-11-25 12:14:54 · 1248 阅读 · 0 评论 -
论文笔记:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
论文地址:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding前言Google在2018年10月发表的一篇文章。AbstractBERT 表示来自 Transformer 的双向编码器表示(Bidirectional Encoder Representations from Tra...原创 2019-11-21 20:03:33 · 1366 阅读 · 0 评论 -
论文笔记:Investigating LSTM for Punctuation Prediction
据悉,标准的语音识别系统的输出是缺乏标点和句边界的。标点预测(punctuation prediction)技术,又称句边界检测(sentence boundary detection)或句切分(sentence segmentation)技术,是一种典型的序列标注机器学习任务,是指在缺乏标点的文本(如语音识别抄本)中加入标点或对篇章文本进行句子单元切分,目的是提高文本的可懂度,降低人工阅读的负荷...转载 2019-10-14 09:54:19 · 590 阅读 · 0 评论 -
FST(Finite State Transducers, 有限状态转换器)简介及示例
一、简介Finite State Transducers 简称 FST, 中文名:有穷状态转换器。FST目前在语音识别和自然语言搜索、处理等方向被广泛应用。例如,在自然语言处理中,经常会遇到一些针对某些内容法则做出修改的操作,比如:如果c的后面紧接x的话,则把c变为b,FST则是基于这些规则上的数学操作,来把若干个规则整合成一个单程的大型规则,以有效提高基于规则的系统(rule-based s...原创 2019-07-08 15:55:55 · 17328 阅读 · 7 评论 -
python构建带数字的古诗词数据集
一、数据准备:全唐诗数据集:https://github.com/todototry/AncientChinesePoemsDB从郑州大学图书馆网站上爬取下来的全唐诗库,收录了唐代诗人2539人的诗作42863首,共计900卷。该数据集格式为:每首诗一个txt文件,按照卷进行排序和命名。其中有一些为空白文件,总大小为5MB左右。中华古诗数据集:https://github.com/jack...原创 2019-07-04 12:24:08 · 4738 阅读 · 5 评论 -
WordPiece和BPE双字节编码
BERT 的模型结构是一个多层双向Transformer 编码器,整体的模型结构其实就是Transformer,但BERT的创新点在于:引入了掩码使得Transformer编码器能够使用双向信息加入两个预训练任务,实现NLP领域的迁移学习WordPieceWordPiece原理现在基本性能好一些的NLP模型,例如OpenAI GPT,google的BERT,在数据预处理的时候都会有Wor...原创 2019-07-29 21:07:08 · 4394 阅读 · 0 评论 -
使用pytorch时遇到的问题汇总
遇到问题:embedding的时候遇到数据加载的时候遇到TypeError: 'int' object is not callable问题:数据不是Tensor类型的而是np.array或其他类型的。解决:tensor = torch.LongTensor(data_x)data_x = autograd.Variable(tensor)tensor = torch.Long...原创 2019-08-09 17:11:25 · 44236 阅读 · 25 评论 -
Keras实现BiLSTM+CRF字符级序列标注
BiLSTM即可实现分词或命名实体标注等序列标注任务,单独的CRF也可以很好的实现。但因为单独LSTM预测出来的标注可能会出现(I-Organization-> I-Person,B-Organization - > I-Person)这样的问题序列,所以需要搞一个LSTM + CRF的混合模型。这种错误在CRF中是不存在的,因为CRF的特征函数的存在就是为了对输入序列观察,学习各种...原创 2019-06-26 17:34:21 · 6305 阅读 · 12 评论 -
论文笔记:A Mostly Data-driven Approach to Inverse Text Normalization
这篇文章是苹果公司发表在语音识别顶会INTERSPEECH2017上的一篇文章。将逆文本化(ITN)转为标签问题的方法Siri 使用标准的格式化方式来展示日期、时间、地址和金额等对象。这是由于在语音识别的核心组件的输出上应用了一个被称之为逆转文本标准化(ITN,Inverse Text Normalization)的过程。可以通过下面这个案例来理解 ITN 所起的重要作用,如果没有 ITN,S...原创 2019-05-31 14:58:19 · 1996 阅读 · 0 评论 -
Bi-LSTM原理及TensorFlow实现序列标注
本文整理了Bi-LSTM的原理,并在静觅博客静觅:TensorFlow Bi-LSTM实现序列标注 的基础上对TensorFlow 搭建一个Bi-LSTM来处理序列标注问题的代码进行了详细的注释。Bi-LSTM理解RNN的意思是,为了预测最后的结果,我先用第一个词预测,当然,只用第一个预测的预测结果肯定不精确,我把这个结果作为特征,跟第二词一起,来预测结果;接着,我用这个新的预测结果结合第三...原创 2019-04-02 16:58:21 · 14014 阅读 · 8 评论 -
面试准备——RNN和LSTM
LSTM结构推导,为什么比RNN好?推导forget gate,input gate,cell state, hidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸。...原创 2019-04-08 16:07:53 · 10902 阅读 · 3 评论 -
Seq2Seq和Attention机制详解
一、Seq2Seq简介seq2seq模型最早可追溯到2014年的两篇paper [1, 2],主要用于机器翻译任务(MT)。seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。由于encoder与decode...原创 2019-04-12 11:29:20 · 5455 阅读 · 0 评论 -
Neo4j安装及简单使用
一、Neo4j和图数据库简介neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。Neo4j的是一种流行的图形数据库。 其他的图形数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph,AllegroGraph。Neo4j图形数据库的主要构建...原创 2019-04-15 21:47:39 · 81119 阅读 · 16 评论 -
基于医疗知识图谱的问答实践中遇到的问题
问题1:ahocorasick安装失败原因:改名为pyahocorasick,pip安装依然失败。error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tool...原创 2019-04-22 17:19:34 · 16053 阅读 · 69 评论 -
使用中文维基百科训练word2vec模型
1.下载原始数据数据下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2首先把需要下载的东西都列出来一、下载内容1.语料:下载地址是https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xm...原创 2019-05-08 19:43:34 · 3483 阅读 · 3 评论 -
基于医疗知识图谱的问答系统源码详解
项目还是找的中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。项目地址:https://github.com/liuhuanyong/QASystemOnMedi...原创 2019-05-06 16:19:55 · 86346 阅读 · 95 评论 -
基于word2vec的疾病和手术相关词语的相似度计算
项目需要预测是否患有骨质疏松,患者所做手术是其中的一维特征,因此需要得到骨质疏松或骨量减少和手术之间的关系,此处选择用word2vec得到词语之间的相似度。用gensim学习word2vecgensim是一个很好用的Python NLP的包,不光可以用于使用word2vec,还有很多其他的API可以用。它封装了google的C语言版的word2vec。当然我们可以可以直接使用C语言版的word...原创 2019-05-27 16:41:38 · 1543 阅读 · 2 评论 -
知识图谱与KBQA——槽填充
一、相关概念开放域对话:不太严谨的定义可以理解为 ,在不确定用户意图前的各种瞎聊,你不知道用户会问什么样千奇百怪的问题,但是chatbot都能接住,然后和用户进行对话,这种就是开放域的对话。填槽:填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程。准入条件:从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断就是准入条件。封闭域...原创 2019-04-01 17:29:45 · 6124 阅读 · 0 评论