自然语言处理NLP
AI算法工程师YC
Work together and make progress together
展开
-
基于word2vec的QA demo
问答系统基于词向量的相似度计算,在问答对字典里返回最相近问题的答案# -*- coding: utf-8 -*-import docximport sysimport jiebafrom gensim.models import Word2Vecimport osimport numpy as npimport pickle as pkimport warningsimpo...原创 2019-12-23 10:10:13 · 422 阅读 · 2 评论 -
文章摘要生成(Summarizing Text with Amazon Reviews)
文章摘要生成数据集:Amazon 500000评论本节内容:•数据预处理•构建Seq2Seq模型•训练网络•测试效果seq2seq教程: https://github.com/j-min/tf_tutorial_plus/tree/master/RNN_seq2seq/contrib_seq2seqimport pandas as pdimport numpy as npimp...原创 2019-12-16 16:27:28 · 883 阅读 · 0 评论 -
Seq2Seq对输入单词字母排序
Seq2SeqRNN 网络结构LSTM网络结构机器翻译的历史Seq2Seq的应用Seq2Seq存在的问题Attention机制“高分辨率”聚焦在图片的某个特定区域并以“低分辨率”感知图像的周边区域的模式,通过大量实验证明,将attention机制应用在机器翻译,摘要生成,阅读理解等问题上,取得的成效显著关注输入序列中某些状态下的内容Bucket机制正常情况要对所有句子进...原创 2019-12-16 15:49:31 · 637 阅读 · 0 评论 -
基于Tensorflow里CNN文本分类
使用CNN进行文本分类卷积神经网络英文邮件分类语料simplistic , silly and tedious . it's so laddish and juvenile , only teenage boys could possibly find it funny . exploitative and largely devoid of the depth or sophis...原创 2019-12-16 11:46:50 · 984 阅读 · 1 评论 -
Tensorflow和Gensim里word2vec训练
Tensorflow里word2vec训练# -*- coding:utf-8 -*-import tensorflow as tfimport numpy as npimport mathimport collectionsimport pickle as pklfrom pprint import pprint#from pymongo import MongoClienti...原创 2019-12-16 11:17:38 · 516 阅读 · 0 评论 -
基于bag of words 和 word2Vec 的影评情绪分类
基于bag of words 和 word2Vec 的影评情绪分类分别用词袋模型和Word2Vec模型提取特征进行LR二分类# -*- coding: utf-8 -*-'''基于词袋特征(bag of words)和词向量特征(word2vec)对影评情绪二分类'''import os import reimport numpy as npimport pandas as p...原创 2019-12-13 22:00:01 · 447 阅读 · 0 评论 -
LSTM_文本生成(text_generation)
1.文本生成(char)用LSTM做文本生成举个小小的例子,来看看LSTM是怎么玩的我们这里用温斯顿丘吉尔的人物传记作为我们的学习语料。# -*- coding: utf-8 -*-'''用RNN做文本生成,用温斯顿丘吉尔的人物传记作为我们的学习语料我们这里简单的文本预测是,给了前置的字母以后,下一个字母是谁?比如,importan,给出t,Winsto,给出n,Britai, 给...原创 2019-12-10 22:31:09 · 1974 阅读 · 2 评论 -
自然语言处理库—Gensim之Word2vec
1. gensim概述Gensim(http://pypi.python.org/pypi/gensim)是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。 主要用于主题建模和文档相似性处理,它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法。Gensim在诸如获取单词的词向量等任务中非常有用。使用Gensi...原创 2019-12-10 22:05:24 · 491 阅读 · 0 评论 -
Keras中Sequential模型及方法详细总结
Sequential 序贯模型序贯模型是函数式模型的简略版,为最简单的线性、从头到尾的结构顺序,不分叉,是多个网络层的线性堆叠。Keras实现了很多层,包括core核心层,Convolution卷积层、Pooling池化层等非常丰富有趣的网络结构。我们可以通过将层的列表传递给Sequential的构造函数,来创建一个Sequential模型。from keras.models import...原创 2019-12-10 21:11:17 · 9467 阅读 · 0 评论 -
NLTK包的常用总结
NLTKNLTK的全称是natural language toolkit,是一套基于python的自然语言处理工具集。NLTK是Python很强大的第三方库,可以很方便的完成很多自然语言处理(NLP)的任务,包括分词、词性标注、命名实体识别(NER)及句法分析。NLTK的安装nltk的安装十分便捷,只需要pip就可以。pip install nltk在nltk中集成了语料与模型等的包...原创 2019-12-09 21:32:59 · 1654 阅读 · 0 评论 -
情感分析(Emotion Detector)
1 概述情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评价,可以分析菜品口味、送达时间、送餐态度、菜品丰富度等多个维度的用户情感指数,从而从各个维度上改进外卖服务。情感分析可以采用基于情感词典的传统方法,也可以采用基于深度学习的方法,下面详细讲解2 基于情...原创 2019-11-20 19:03:40 · 2254 阅读 · 0 评论 -
词向量(Word Embedding)
一、词的表示在自然语言处理任务中,首先需要考虑词如何在计算机中表示。通常,有两种表示方式:one-hot representation和distribution representation。简而言之,词向量技术是将词转化成为稠密向量,并且对于相似的词,其对应的词向量也相近。1.1 离散表示(one-hot representation)传统的基于规则或基于统计的自然语义处理方法将单词看作一...原创 2019-11-20 18:49:14 · 3836 阅读 · 1 评论 -
词性标注实战(Part-Of-Speech tagging, POS tagging)
定义词性标注(Part-Of-Speech tagging, POS tagging)也被称为语法标注(grammatical tagging)或词类消疑(word-category disambiguation),是语料库语言学(corpus linguistics)中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术 。词性标注可以由人工或特定算法完成,使用机器学习(ma...原创 2019-11-20 10:16:03 · 3883 阅读 · 0 评论 -
拼写纠错原理以及模型(Spelling Correction model)
拼写纠错(Spelling Correction)1 任务定义拼写纠错(Spelling Correction),又称拼写检查(Spelling Checker),往往被用于字处理软件、输入法和搜索引擎中,如下所示:2 类型拼写纠错一般可以拆分成两个子任务:Spelling Error Detection:按照错误类型不同,分为Non-word Errors和Real-word E...原创 2019-11-19 17:20:30 · 5183 阅读 · 0 评论 -
拼写纠错实战(spell_correction)
最终效果对测试文本中的每一句话,逐个单词检测是否有拼写错误,检测拼写错误的标准是衡量该单词是否在词典库中出现一、构造词典库读取本地存储词典库文本# 词典库# 转换成集合复杂度O(logn),列表复杂度为O(n)vocab = set([line.rstrip() for line in open('vocab.txt')])print(vocab){'Change', 'pain...原创 2019-11-19 15:27:20 · 1479 阅读 · 0 评论 -
语言模型(language model)
一、统计语言模型1、什么是统计语言模型?统计语言模型是一个单词序列上的概率分布,对于一个给定长度为m的序列,它可以为整个序列产生一个概率 P(w_1,w_2,…,w_m) 。其实就是想办法找到一个概率分布,它可以表示任意一个句子或序列出现的概率。目前在自然语言处理相关应用非常广泛,如语音识别(speech recognition) , 机器翻译(machine translation), 词...原创 2019-11-18 17:46:26 · 5345 阅读 · 0 评论 -
词袋模型(BOW,bag of words)和词向量模型(Word Embedding)理解
Word2vec向量空间模型在信息检索中是众所周知的,其中每个文档被表示为向量。矢量分量表示文档中每个单词的权重或重要性。使用余弦相似性度量计算两个文档之间的相似性。尽管对单词使用矢量表示的想法也已经存在了一段时间,但是对于嵌入单词的技术,将单词映射到向量的技术,最近一直在飙升。其中一个驱动因素是TomášMikolov的Word2vec算法,该算法使用大量文本来创建高维(50到300维)的单...原创 2019-11-18 10:02:37 · 3810 阅读 · 0 评论 -
viterbi算法
简介viterbi算法其实就是多步骤每步多选择模型的最优选择问题,其在每一步的所有选择都保存了前续所有步骤到当前步骤当前选择的最小总代价(或者最大价值)以及当前代价的情况下前继步骤的选择。依次计算完所有步骤后,通过回溯的方法找到最优选择路径。符合这个模型的都可以用viterbi算法解决。最优路径理解在理解viterbi算法之前,我们先来跟随步骤计算一下下面这幅图从左到右的最大路径下面我们...原创 2019-11-14 20:10:49 · 518 阅读 · 1 评论 -
朴素贝叶斯的三个常用模型:高斯(GaussianNB)、多项式(multinomial model)、伯努利(Bernoulli model)
文本分类在文本分类中,假设我们有一个文档d∈X,X是文档向量空间(document space),和一个固定的类集合C={c1,c2,…,cj},类别又称为标签。显然,文档向量空间是一个高维度空间。我们把一堆打了标签的文档集合<d,c>作为训练样本,<d,c>∈X×C。例如:<d,c>={Beijing joins the World Trade Organ...原创 2019-11-14 12:13:41 · 6639 阅读 · 1 评论 -
朴素贝叶斯分类器(Naive Bayes classifier)
朴素贝叶斯生活中很多场合需要用到分类,比如新闻分类、病人分类等等。本文介绍朴素贝叶斯分类器(Naive Bayes classifier),它是一种简单有效的常用分类算法。病人分类让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。症状 职业 疾病打喷嚏 护士 感冒打喷嚏 农夫 过敏头痛 建筑工人 脑震荡头痛 建...原创 2019-11-14 11:57:18 · 2065 阅读 · 0 评论 -
利用贝叶斯分类器对fetch_20newsgroups数据集进行分类
步骤1 数据采集2 特征提取3 模型训练4 模型评估20 Newsgroups数据集介绍20newsgroups数据集是用于文本分类、文本挖据和信息检索研究的国际标准数据集之一。数据集收集了大约20,000左右的新闻组文档,均匀分为20个不同主题的新闻组集合。一些新闻组的主题特别相似(e.g. comp.sys.ibm.pc.hardware/ comp.sys.mac.hardwar...原创 2019-11-14 11:28:43 · 3983 阅读 · 0 评论 -
sklearn中使用CountVectorizer和TfidfTransformer计算TF-IDF
CountVectorizeCountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法。对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率。CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数。CountVectorizer(input='content', encoding='utf-8',...原创 2019-11-13 21:51:21 · 3773 阅读 · 0 评论 -
TF-IDF算法实现
Python实现TF-IDF算法# -*- coding: utf-8 -*-from collections import defaultdictimport mathimport operator """函数说明:创建数据样本Returns: dataset - 实验样本切分的词条 classVec - 类别标签向量"""def loadDataSet():...原创 2019-11-13 21:25:58 · 582 阅读 · 0 评论 -
TF-IDF原理介绍
TF-IDF定义TF-IDF(Term Frequency-Inverse DocumentFrequency, 词频-逆文件频率),一种用于资讯检索和资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被...原创 2019-11-13 16:31:23 · 240 阅读 · 0 评论 -
中文分词包jieba的使用总结
安装 jieba 包pip install jiebahttps://github.com/fxsjy/jieba特点:支持三种分词模式:精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。支持繁体分词支持自定义词典M...原创 2019-11-13 16:04:35 · 894 阅读 · 0 评论