
自然语言处理
CoreJT
中科院自动化所在读直博生,感兴趣的研究方向:文本分类、情感分析、机器阅读理解与问答系统以及对话系统。
展开
-
自然语言处理 | (30) 文本相似度计算与文本匹配问题
目录1. 文本相似度问题与应用2. 文本相似度模型介绍3. 实战:基于Python实现编辑距离4. 实战:基于simhash实现相似文本判断5. 实战:词向量Word AVG1. 文本相似度问题与应用文本相似度问题文本相似度问题包含:词与词、句与句、段落与段落、篇章与篇章之间的相似度问题;以及词与句、句与段落、段落与篇章等之类的相似度问题,这里的相似指的是语义...原创 2019-07-15 16:54:37 · 27835 阅读 · 5 评论 -
自然语言处理 | (29) 基于Hierarchical Attention Network的文本分类原理
目录1.文本分类任务介绍2. Hierarchical Attention Network结构3.Hierarchical Attention Network文本分类原理概述1.文本分类任务介绍文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子、文档等)的标签或标签集合。文本分类的应用非常广泛,如:垃圾邮件分类:2分类问题,判断邮件是否为垃圾邮件 ...原创 2019-03-09 13:56:01 · 973 阅读 · 0 评论 -
自然语言处理 | (28) Transformer详解2
原文地址目录1. 前言2. Transformer总体架构3. 各个技术细节4. 总结5. 参考资料1. 前言注意力机制的原理是计算query和每个key之间的相似性以获得注意力分配权重。在大部分NLP任务中,key一般也是value(basic Attention)。注意力机制一般是用于提升seq2seq或者encoder-decoder架构的表现。但这篇20...转载 2019-03-08 11:31:23 · 5503 阅读 · 2 评论 -
自然语言处理 | (27) Transformer详解1
原文地址前一段时间谷歌推出的BERT模型在11项NLP任务中夺得STOA结果,引爆了整个NLP界。而BERT取得成功的一个关键因素是Transformer的强大作用。谷歌的Transformer模型最早是用于机器翻译任务,当时达到了STOA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Transformer可以增加到非常...转载 2019-03-07 12:50:00 · 3377 阅读 · 1 评论 -
自然语言处理 | (26) 注意力(Attention)机制总结
原文地址目录1. 前言2. Seq2Seq 模型3. NLP中注意力机制起源4. NLP中的注意力机制5. Hierarchical Attention6. Attention机制的本质7. Self-Attention8. Memory-based Attention9. Soft/Hard Attention10. Global/Local Att...转载 2019-03-06 15:52:10 · 17808 阅读 · 0 评论 -
自然语言处理 | (25) 完全图解Seq2Seq with Attention模型
原文地址本文转载自知乎,原文见上述链接。本文通过图片,详细的画出了Seq2Seq with Attention模型的全部流程,帮助大家理解机器翻译、语音识别等任务的重要模型。目录1. 大框架2. 详细图及公式三、score的计算方法四、总结1. 大框架Seq2Seq是一个Encoder-Decoder结构的网络,他的输入是一个序列,输出也是一个序列,如机器翻译中输入...转载 2019-03-05 10:57:15 · 1688 阅读 · 0 评论 -
自然语言处理 | (24) RNN、RNN变体、Seq2Seq、Attention机制简介
原文地址本篇博客转载自知乎,原文见上面的链接。本文主要利用图片的形式简单的介绍了经典RNN、RNN几个重要变体,以及Seq2Seq模型、Attention机制。旨在让大家有个初步的印象,之后的几篇博客还会更详细的展开。目录一、单层网络二、经典的RNN结构(N vs. N)三、N vs. 1四、1 vs. N五、N vs. M六、Attention机制七、总结...转载 2019-03-04 20:51:36 · 456 阅读 · 0 评论 -
自然语言处理 | (23) 基于RCNN的文本分类原理
目录1.文本分类任务介绍2.RCNN原理概述3.RCNN模型处理步骤4.RCNN小结1.文本分类任务介绍文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子、文档等)的标签或标签集合。文本分类的应用非常广泛,如:垃圾邮件分类:2分类问题,判断邮件是否为垃圾邮件 情感分析:2分类问题:判断文本情感是积极还是消极;多分类问题:判断文本情感属于{非常消极,消极...原创 2019-03-04 09:59:44 · 3992 阅读 · 0 评论 -
自然语言处理 | (22) 基于TextRNN的文本分类原理
目录1.文本分类任务介绍2.TextRNN原理概述3.TextRNN的典型结构4.总结1.文本分类任务介绍文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子、文档等)的标签或标签集合。文本分类的应用非常广泛,如:垃圾邮件分类:2分类问题,判断邮件是否为垃圾邮件 情感分析:2分类问题:判断文本情感是积极还是消极;多分类问题:判断文本情感属于{非常消...原创 2019-03-02 20:57:01 · 7839 阅读 · 0 评论 -
自然语言处理 | (21) 基于TextCNN的文本分类原理
目录1.文本分类任务介绍2.TextCNN原理概述3.TextCNN处理步骤4. 拓展阅读1.文本分类任务介绍文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子、文档等)的标签或标签集合。文本分类的应用非常广泛,如:垃圾邮件分类:2分类问题,判断邮件是否为垃圾邮件 情感分析:2分类问题:判断文本情感是积极还是消极;多分类问题:判断文本情感属于{非常消极...原创 2019-03-01 19:48:30 · 1562 阅读 · 0 评论 -
自然语言处理 | (20) 中文词向量训练
完整代码目录1.基于gensim的中文文本词向量训练与相似度匹配2. Tensorflow训练中文词向量3.中文词向量可视化1.基于gensim的中文文本词向量训练与相似度匹配导入必要的包#! pip install gensim #安装gensimfrom gensim.test.utils import common_texts,get_tmpfilefrom ...原创 2019-02-19 20:09:19 · 2248 阅读 · 0 评论 -
自然语言处理 | (19) Python中文文本表示
本篇博客将基于TF-IDF获取一段中文文本的嵌入/向量表示,文本是指包含一句或多句话的短文本。完整代码目录 1.导入必要的包2. 数据集3.基于TF-IDF获取文本嵌入表示4.总结5. 拓展阅读1.导入必要的包import sys,codecsimport pandas as pdimport numpy as npimport jieba.poss...原创 2019-02-19 15:39:03 · 937 阅读 · 0 评论 -
自然语言处理 | (17)文本的离散表示
目录1.词向量的one-hot表示2.文本表示:词袋模型3.文本表示:TF-IDF1.词向量的one-hot表示拿英文举例,英语中大约有1300万个词组(token),不过他们是完全独立的吗?显然不是。例如,有一些词组,Feline猫科动物和Cat猫,Hotel宾馆和Motel汽车旅馆,其实有一定的关联或相似性存在。因此,我们希望用词向量编码词组,把词组表示为N维空间中的一个点...原创 2019-02-19 10:16:12 · 3154 阅读 · 0 评论 -
自然语言处理 | (16) 文本表示概述
目录1.为什么要进行文本表示2.文本表示分类(基于粒度,从细到粗)3.文本表示方法分类文本表示,简单来说就是把文本变成数学上方便处理的向量(数字)而不是字符串。而怎么把字符串变成向量,是文本表示的核心问题。1.为什么要进行文本表示根本原因是计算机不方便直接对文本字符串进行处理,因此需要进行数值化或向量化。 便于机器学习算法处理。不仅传统的机器学习算法需要这个过程,深度学习...原创 2019-02-18 20:44:28 · 1382 阅读 · 0 评论 -
自然语言处理 | (15)使用Pytorch实现RNN(LSTM)语言模型
本篇博客我们将使用pytorch实现一下循环神经网络模型(LSTM).完整代码1.数据预处理# 实现参考 https://github.com/pytorch/examples/tree/master/word_language_model#! pip install torch #安装torchimport torchimport torch.nn as nnimport ...原创 2019-02-14 13:54:13 · 9788 阅读 · 3 评论 -
自然语言处理 | (14) 神经网络语言模型
在本篇博客中,我们将从基于n-gram的传统统计语言模型,过渡到典型的前馈神经网络模型(全联接网络)和循环神经网络模型。目录1.传统语言模型2. 神经网络语言模型3.RNN语言模型训练过程4. 语言模型评估1.传统语言模型文本稀疏性泛化能力不佳 2. 神经网络语言模型RNN语言模型3.RNN语言模型训练过程 ...原创 2019-02-13 22:15:56 · 913 阅读 · 0 评论 -
自然语言处理 | (13)kenLM统计语言模型构建与应用
本篇博客中我们将学习如何使用KenLM工具构建统计语言模型,并使用它完成一个典型的'智能纠错'文本任务。目录1.实验准备2.训练数据3.训练语言模型4.模型压缩5.模型加载6.智能纠错1.实验准备安装依赖# 安装依赖!apt install libboost-all-dev!apt install libbz2-dev!apt install libe...原创 2019-02-12 20:56:27 · 3845 阅读 · 1 评论 -
自然语言处理 | (12)基于统计的语言模型构建
统计语言模型:自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递方式。因此让计算机处理自然语言,一个基本问题就是为自然语言这种上下文相关的特性建立数学模型,这个数学模型就是在自然语言处理中常说的统计语言模型(Statistical Language Model)。它是今天所有自然语言处理的基础,并且广泛应用于机器翻译、语音识别、印刷体或手写体识别、拼写纠错、汉字输入和文献查询。...原创 2019-12-18 14:12:07 · 3885 阅读 · 2 评论 -
自然语言处理 | (11) N-gram语言模型及其应用
目录1.前言2. 什么是N-Gram模型3.利用N-Gram模型评估语句是否合理4.N-Gram模型评估语句合理性的例子5. N-Gram中N的选择及其对性能的影响6.N-Gram语言模型的其他应用7.使用N-Gram模型时的数据平滑算法8.推荐阅读1.前言自然语言(Natural Language)其实就是人类的语言,自然语言处理(NLP)就是对人类语言的...原创 2019-02-10 21:20:26 · 12211 阅读 · 2 评论 -
自然语言处理 | (10)基于TextRank的文本关键词抽取原理
TextRank是一种文本排序算法,是基于著名的网页排序算法PageRank改动而来。在介绍TextRank前,我们先简单介绍下什么是PageRank,再介绍如何利用TextRank进行文本关键词提取。目录 1.PageRank算法2.TextRank算法3.TextRank与TF-IDF比较1.PageRank算法PageRank算法是根据互联网中的超链接关系来确定一...原创 2019-02-06 20:48:14 · 2714 阅读 · 0 评论 -
自然语言处理 | (9)基于TF-IDF的文本关键词抽取原理
原文链接:TF-IDF关键词提取目录1.问题背景2.TF-IDF算法思想3.TF-IDF算法细节4.TF-IDF的应用与评价1.问题背景有一篇很长的文章,我们要用计算机提取他的关键词(Automatic Keyphrase extraction),完全不加人工干预,如何才能正确做到?这个问题涉及到数据挖掘、文本处理、信息检索等很多计算机前沿领域,但是出乎意料的是,有...转载 2019-02-06 13:13:52 · 3131 阅读 · 0 评论 -
自然语言处理 | (8)中文文本分析、可视化与新闻关键词提取
目录1.Python中文文本分析与可视化2.新闻关键词抽取1.Python中文文本分析与可视化读取数据#!pip install wordcloud #安装词云import warningswarnings.filterwarnings("ignore")import jieba #分词包import numpy #numpy计算包import codec...原创 2019-02-05 14:03:42 · 5178 阅读 · 1 评论 -
自然语言处理 | (7)中文文本基本任务与处理
目录1.分词 2.停用词与N-gram3.词性标注、依赖分析、NER、关键词抽取4.jieba工具库使用 1.分词关于分词方法和工具库更多内容可以参考知乎讨论有哪些比较好的中文分词方案中文分词与之前的英文分词(一般以空格分隔)相比更加复杂,词和词紧密连接,需要考虑语境和词义等信息。 2.停用词与N-gram停用词中文当中常用到的停用词词表可以参...原创 2019-02-04 14:47:01 · 2212 阅读 · 0 评论 -
自然语言处理 | (6) 基于英文文本的简易情感分析
在本片博客中我们结合之前讲的工具库、sklearn以及pandas,来构建一个简易的情感分析模型。情感分析属于分类任务,即为文本分配情感标签,我们将使用简单的逻辑回归模型来实现这个多分类任务。目录1.加载数据2.数据预处理3.模型训练完整代码1.加载数据data = pd.read_csv("./data/emotion_data.csv")print(data.s...原创 2019-02-03 19:32:43 · 11082 阅读 · 0 评论 -
自然语言处理 | (5)英文文本处理与spaCy
本篇博客我们将介绍使用spaCy对英文文本进行一些处理,spaCy不仅包含一些基本的文本处理操作,还包含一些预训练的模型和词向量等,之后我们还会学习一些更高级的模型或方法,不过这些基本处理要熟练掌握,因为他们可以对我们的数据进行一些预处理,作为更高级模型或工具的输入;也可以作为相关任务的基线模型baseline。目录1.简介2.英文Tokenization(标记化/分词) 3.词性...原创 2019-02-02 23:22:54 · 4725 阅读 · 0 评论 -
自然语言处理 | (4)英文文本处理与NLTK
本篇博客我们将介绍使用NLTK对英文文本进行一些基本处理,之后我们还会学习一些更高级的模型或方法,不过这些基本处理要熟练掌握,因为他们可以对我们的数据进行一些预处理,作为更高级模型或工具的输入。目录1.NLTK简介2.英文Tokenization(标记化/分词)3.停用词4.词性标注5.chunking/组块分析6.命名实体识别7.Stemming和Lemmatiz...原创 2019-02-02 22:32:28 · 4786 阅读 · 1 评论 -
自然语言处理 | (3)正则表达式
目录1.正则表达式简介2.正则表达式语法2.学习和验证工具3.挑战与提升4.在Python中使用正则表达式5.Python正则表达式简单例子1.正则表达式简介正则表达式是处理字符串的强大工具,拥有独特的语法和独立的处理引擎。在大文本中匹配字符串时,有些情况用上一节学习的str自带的函数(如index,find,in等)可能可以完成,有些复杂的情况(如找出所有邮箱...原创 2019-02-01 13:40:14 · 3355 阅读 · 0 评论 -
自然语言处理 | (2)Python字符串处理
目录1.基本文本处理操作概述2.清理与替换3.截取4.连接与分割5.比较与排序6.查找与包含7.大小写与其他变化1.基本文本处理操作概述NLP处理的对象是文本字符串内容,接下来我们熟悉一下Python中的一些基本文本字符串(中/英文)操作:替换 截取 复制 连接 分割 排序 比较 查找 包含 大小写转换注意下列字符串处理方法都有返回值,不...原创 2019-02-01 10:46:00 · 952 阅读 · 0 评论 -
自然语言处理 | (1)NLP简介
目录1.NLP概述2.NLP核心问题3.NLP典型应用1.NLP概述定义:自然语言处理(Natural Language Processing),简称NLP,是一种用计算机对人类特有的书面形式和口头形式的自然语言的信息进行各种类型处理和加工的技术。 任务通过处理和理解语言,来构建执行某些任务的系统。地位:人工智能与语言学的交叉学科,是人工智能的一个重要分支(和计算机视觉...原创 2019-01-31 13:41:28 · 1206 阅读 · 0 评论