NLP
文章平均质量分 73
Juanly Jack
此人很懒。
展开
-
基于CNN+tensorflow对搜狐新闻进行分类并对函数进行封装
1、下载数据数据来源于搜狐新闻,下载连接:链接:https://pan.baidu.com/s/1St_s7CRPeghF2Z8MuVG56w提取码:yd1l2、数据简单分析import numpy as npimport pandas as pdtrain_data = pd.read_csv('sohu_train.txt', sep='\t', header=None, dty...原创 2018-10-16 23:35:45 · 444 阅读 · 0 评论 -
ELMo(Embeddings from Language Models) --学习笔记
学习参考自:(1)、ELMo 最好用的词向量《Deep Contextualized Word Representations》(2)、吾爱NLP(5)—词向量技术-从word2vec到ELMo(3)文本嵌入的经典模型与最新进展1、ELMo简介基于大量文本,ELMo模型从深层的双向语言模型(deep bidirectional language model)中的内部状态(internal...原创 2018-11-09 23:20:28 · 2977 阅读 · 1 评论 -
NER --关系抽取总结
1、关系抽取概述2、关系抽取分类3、常用关系抽取方法关系抽取面临的挑战 :(1)基于规则的关系抽取命名实体标签:人工规则优缺点:(2)有监督关系抽取常用特征工程:词汇特征:句法特征和其他特征:**基于Boostrapping的关系抽取 **关系抽取可能存在以下问题(大部分情况适用):1)没有足够标注数据2)可能有一些种子 实体对3)可能有一些非常...原创 2018-11-02 17:14:20 · 3551 阅读 · 1 评论 -
Word2Vec --学习总结笔记
0、Word2vec它将每个词表示成一个定长的向量,并使得这些向量能较好地表达不同词之间的相似和类比关系。Word2vec 工具包含了两个模型:跳字模型(skip-gram)和连续词袋模型(continuous bag of words,简称 CBOW),此外还有两种训练方法,分别为负采样和层次softmax。1、skip-gram跳字模型假设基于某个词来生成它在文本序列周围的词。举个例子,...原创 2018-11-07 14:54:23 · 663 阅读 · 0 评论 -
fastText --学习笔记
学习自此处致谢李沐大神!0、子词嵌入(fastText)在法语、西班牙语、英语等语言中,一个词可能有多种内部结构和形成方式(实际上这是语言学中构词学的研究内容),为了解决这些问题,可以将单词进行结构拆分,以此来研究单词的词向量。在 word2vec 中,没有直接利用构词学中的信息,无论是在skip-gram模型还是CBOW模型中,将形态不同的单词用不同的向量来表示。例如,“dog”和“do...原创 2018-11-07 17:25:29 · 248 阅读 · 0 评论 -
基于 LSTM 电影评论情感分析
0、前言RNN网络因为使用了单词的序列信息,所以准确率要比前向传递神经网络要高。网络结构:首先,将单词传入 embedding层,之所以使用嵌入层,是因为单词数量太多,使用嵌入式词向量来表示单词更有效率。在这里我们使用word2vec方式来实现,而且特别神奇的是,我们只需要加入嵌入层即可,网络会自主学习嵌入矩阵。通过embedding 层, 新的单词表示传入 LSTM cells。这将是...原创 2018-11-04 13:47:02 · 12256 阅读 · 14 评论 -
Attention mechanism --学习笔记
学习自:(1)注意力机制(2)什么是自注意力机制?0、注意力机制在seq2seq的模型里面,解码器在各个时间步都依赖相同的背景变量/向量来获取输入序列信息,当编码器为循环神经网络时,背景变量来着它最终时间步的隐藏状态。但显然,举个例子,若要对不同语言进行翻译,我们在解码器生成输出序列中的每个词可能仅需要利用输入序列中的某一部分信息,也就是应该对每个时间步的编码信息分配不同的注意力。回忆...原创 2018-11-11 15:34:26 · 478 阅读 · 0 评论 -
GRU(门控循环单元)--学习笔记
0、门控循环单元门控循环神经网络可以更好地捕捉时间序列中时间步距离较大的依赖关系,通过引入了门的概念,修改循环神经网络中隐藏状态的计算方式,它包括重置门、更新门、候选隐藏状态和隐藏状态。重置门有助于捕捉时间序列里短期的依赖关系。更新门有助于捕捉时间序列里长期的依赖关系。1、重置门和更新门门控循环单元中的重置门(reset gate)和更新门(update gate)的输入均为当前时间步输入...原创 2018-11-11 17:08:39 · 7620 阅读 · 0 评论 -
seq2seq编码器与解码器 --学习笔记
0、网络图结构从上图可以看出,编码是一个RNN网络,当然可以是一个单向RNN也可以是一个双向RNN,C是一个context为背景变量,将输入信息进行编码汇总得到一个信息。接着由这个背景变量作为解码的输入,加上隐藏变量和输出变量,得到结果在进行映射,依次得到序列的每个预测结果。以上x1,x2,x3分别表示时间步输入,h1,h2等分别表示时间步隐藏状态,y1,y2分别表示时间步输出,s1,s2...原创 2018-11-08 20:09:07 · 3335 阅读 · 0 评论 -
Fine-tuning Approaches -- OpenAI GPT 学习笔记
1、Fine-tuning Approaches从语言模型转移学习的一个趋势是,在监督的下游任务中相同模型的微调之前,一个语言模型目标上预训练一些模型体系结构。这些方法的优点是几乎没有什么参数需要从头学习。至少部分由于这一优势,OpenAI GPT在GLUE benchmark的许多句子级别任务上取得了以前最先进的结果。微调是必须非常精确地调整模型参数以适应某些观察的过程。在没有已知机制来解释...原创 2018-11-15 18:17:23 · 2175 阅读 · 0 评论 -
All you need is attention(Tranformer) --学习笔记
1、回顾传统的序列到序列的机器翻译大都利用RNN或CNN来作为encoder-decoder的模型基础。实际上传统机器翻译基于RNN和CNN进行构建模型时,最关键一步就是如何编码这些句子的序列。往往第一步是先将句子进行分词,然后每个词转化为对应的词向量,那么每个句子都可以由这些词向量来构造对应的句子的序列表示向量。(1)RNN递归进行:yt=f(yt−1,xt)不管是LSTM、GRU还是S...原创 2018-11-16 17:13:43 · 2552 阅读 · 0 评论 -
Hanlp 汉字转拼音如何通过python调用
0、hanlpHanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。开源网址:HanLP: Han Language Processing但由于hanlp是用java来实现的,要在python中使用hanlp,只能通过调用pyhanlp这个包来。但是pyhan...原创 2018-11-30 10:41:40 · 832 阅读 · 2 评论 -
全局向量GloVe --学习笔记
好原创 2018-11-06 23:10:52 · 564 阅读 · 0 评论 -
NER -- 词向量与标注预处理阶段
0、前言本文旨在对自己命名实体识别中词向量与标注预处理阶段的总结。此处假设给定大量文本,以及部分对应的标注(此处使用的是IOB标注方案),但是文本与标注是分开存储的。在我们进行NER的预测任务之前,我们需要做以下工作:(1)对每个文本进行分词(当然这里分词也要注意用什么标准进行分词,此处不解释),然后用空格(join)连接每个词,同时对部分文本进行打标注,分开存储成两个文件。(2)对分好词...原创 2018-11-01 16:20:04 · 3109 阅读 · 0 评论 -
基于CNN+tensorflow训练50000条新闻文本并实现分类
1、本文作者学习了前辈的研究《Implementing a CNN for Text Classification in TensorFlow》以及github作者的实验,使用THUCNews的一个子集进行训练与测试。THUCNews是根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档(2.19 GB),均为UTF-8纯文本格式。非常感激前辈及学习过程中...原创 2018-10-10 23:17:12 · 6639 阅读 · 3 评论 -
(原论文方法复现+word2vec尝试)--基于CNN训练50000条新闻文本并实现分类
1、本文建立在https://blog.csdn.net/m0_38088359/article/details/83004972这篇文章的基础上,并对《Implementing a CNN for Text Classification in TensorFlow》原论文的方法进行复现,去掉了embedding层,用Word2Vec来代替词向量。原论文中是用了六个卷积核做特征提取,最后进行特征...原创 2018-10-18 23:58:59 · 3206 阅读 · 1 评论 -
基于LDA对电商商品评论进行情感分析
数据是人工爬取自京东网站上的评论数据,该项目主要以美的产品作为分析。下载连接:链接:https://pan.baidu.com/s/1uyzEa6VJBkBLHMzxLxwwMw提取码:bwfa1、项目背景:现在大众在进行网购之前都会先看下相关商品的评论,包括好评与差评,再综合衡量,最后才决定是否会购买相关的物品。甚至有的消费者已经不看商品的详情秒数页而是直接看评论,然后决定是否下单。商...原创 2018-10-22 18:27:14 · 8531 阅读 · 1 评论 -
LDA主题模型浅析 -- 笔记
0、前言LDA是两个常用模型的简称:Linear Discriminant Analiysis 和Latent Dirichlet Allocation.LDA(Latent Dirichlet Allocation)在文本建模中类似于SVD,PLSA等模型,可以用于浅层语义分析,在文本语义分析中是一个很有用的模型.这个模型涉及到Gamma函数,Dirichlet分布(狄利克雷分布),Dir...原创 2018-10-22 23:33:43 · 3664 阅读 · 1 评论 -
马尔科夫链蒙特卡洛(MCMC) -- 学习笔记
0、前言蒙特卡罗方法(Monte Carlo Simulation)是一种随机模拟(或者统计模拟)方法。给定一个概率分布p(x),如何让计算机生成满足这个概率分布的样本。 这个问题就是统计模拟中研究的重要问题–采样(Sampling)。MCMC(Markov Chain Monte Carlo)算法是其中一种重要的采样方法。1、马尔科夫链、马尔科夫稳态马尔科夫链的数学定义如下:P(Xt+...原创 2018-10-29 00:16:52 · 4488 阅读 · 0 评论 -
BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding
1.BERT模型BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的represen...转载 2018-10-26 10:36:41 · 3397 阅读 · 0 评论 -
Python3 分词去掉文本标点(自主定义)并构建tfidf词向量
from sklearn.feature_extraction.text import TfidfVectorizerimport stringcorpus=[]punc = "。”;,:—“”()《》"# punc = punc.encode("utf8") python3不用解码成unicodeimport jiebawith open('corpus.txt',encodin原创 2018-09-12 14:07:08 · 1492 阅读 · 0 评论 -
深度学习使用word embedding(词嵌入)的原因
1、基于神经网络的词分布表示,将单词映射到低维连续向量词嵌入编码了语义空间中的线性关系,向量不同部分表示不同的语义。比如“国王-往后”与“男-女”的类比反映中语义空间的线性关系。2、相似词映射到了相似方向,语义相似性被编码近义词或者“相似”词的邻居词分布类似,同样两个词邻居词分布类似可以推出两个词语义相近。比如 “猫 宠物 主人 喂食 蹭 喵 ” 和 “狗 宠物 主人 喂食 咬 汪”这两组词...原创 2018-10-24 23:47:05 · 1834 阅读 · 0 评论 -
Dilation卷积与IDCNN 笔记
0、前言Dilation 卷积,也被称为:空洞卷积、膨胀卷积。在神经网络中,通常利用卷积来实现数据的特征提取。卷积层还有一个权值共享的原则:每个神经元只关注一个特征。卷积完经过激励层做一个非线性映射,输出到Pooling layer。池化层的作用:(1)压缩数据和参数的量,减小过拟合。(2)增大感受野。主要两种方法:Max Pooling 和 Average Pooling1、...原创 2018-10-30 12:49:01 · 4517 阅读 · 0 评论 -
命名实体识别(NER)
学习笔记,详情请点击此处。0、前言NER又称作专名识别,是自然语言处理中的一项基础任务,应用范围非常广泛。命名实体一般指的是文本中具有特定意义或者指代性强的实体,通常包括人名、地名、组织机构名、日期时间、专有名词等。NER系统就是从非结构化的输入文本中抽取出上述实体,并且可以按照业务需求识别出更多类别的实体,比如产品名称、型号、价格等。实体这个概念可以很广,只要是业务需要的特殊文本片段都可以称...原创 2018-10-27 22:07:54 · 8129 阅读 · 0 评论 -
序列标注中的标签方案
0、前言对于英文,token可以是一个单词(e.g. awesome),也可以是一个字符(e.g. a)。对于中文,token可以是一个词语(分词后的结果),也可以是单个汉字字符。标签列表为IOBES:B,即Begin,表示开始I,即Intermediate,表示中间E,即End,表示结尾S,即Single,表示单个字符O,即Other,表示其他,用于标记无关字符1、标签方案I...原创 2018-10-27 22:34:30 · 272 阅读 · 0 评论 -
Wordpiece Model --学习笔记
0、Segmentation Approaches神经机器翻译模型通常使用固定的词汇,即使翻译从根本上来说是一个开放的词汇问题(名称、数字、日期等)。有两大类方法可以解决词汇表外词汇(OOV,即词汇表未登录的词)的翻译问题。一种方法是简单地将罕见字从源复制到目标(如最罕见的字是名称或数字正确的翻译只是一个副本),要么基于注意力模型,使用外部对齐模型,甚至使用一个更复杂的专用指向网络。另一个大...原创 2018-11-27 11:49:03 · 9461 阅读 · 5 评论