词向量

深度学习笔记10-词嵌入和word2vec-第2部分(NLP领域)

拥有回忆 提交于 2020-03-24 12:33:08
分析步骤: 第一步:将one-hot形式分词结果作为输入([0,1,0....,0]的列向量的V*1维词向量),与投影矩阵C(D*V维度)相乘,得到D*1维的向量 第2步:将第一步的输出结果做拼接,作为隐藏层的输入。 第3步:经过一个全连接的神经网络,经过激励层,再softmax,得到该词出现的概率矩阵和互熵损失。不断训练输出结果,改善权重矩阵C(可以发现C的列向量就是该词的词向量表现形式) 来源: https://www.cnblogs.com/luckyplj/p/12558047.html

词袋模型bow和词向量模型word2vec

只谈情不闲聊 提交于 2020-03-21 16:58:38
在自然语言处理和文本分析的问题中,词袋(Bag of Words, BOW)和词向量(Word Embedding)是两种最常用的模型。更准确地说,词向量只能表征单个词,如果要表示文本,需要做一些额外的处理。下面就简单聊一下两种模型的应用。 所谓BOW,就是将文本/Query看作是一系列词的集合。由于词很多,所以咱们就用袋子把它们装起来,简称词袋。至于为什么用袋子而不用筐(basket)或者桶(bucket),这咱就不知道了。举个例子: 文本1:苏宁易购/是/国内/著名/的/B2C/电商/之一 这是一个短文本。“/”作为词与词之间的分割。从中我们可以看到这个文本包含“苏宁易购”,“B2C”,“电商”等词。换句话说,该文本的的词袋由“苏宁易购”,“电商”等词构成。就像这样: 但计算机不认识字,只认识数字,那在计算机中怎么表示词袋模型呢?其实很简单,给每个词一个位置/索引就可以了。例如,我们令“苏宁易购”的索引为0,“电商”的索引为1,其他以此类推。则该文本的词袋就变成了: 是的,词袋变成了一串数字的(索引)的集合。这样计算机就能读懂了。如果用程序来描述的话,就会像:Set<int>(0,1,2…)。当然,刚才的例子中像“苏宁易购”等词只出现了一次,如果出现多次,可能就需要支持重复元素的容器了,如Java/C++中的MultiSet。 可是,在实际的应用中(如:文本的相似度计算)

贪心项目:搭建sample问答系统

时光总嘲笑我的痴心妄想 提交于 2020-03-11 18:01:56
本次项目的目标是搭建一个基于检索式的简单的问答系统。至于什么是检索式的问答系统请参考课程直播内容/PPT介绍。 通过此项目,你将会有机会掌握以下几个知识点: 字符串操作 2. 文本预处理技术(词过滤,标准化) 3. 文本的表示(tf-idf, word2vec) 4. 文本相似度计算 5. 文本高效检索 此项目需要的数据: dev-v2.0.json: 这个数据包含了问题和答案的pair, 但是以JSON格式存在,需要编写parser来提取出里面的问题和答案。 glove.6B: 这个文件需要从网上下载,下载地址为:https://nlp.stanford.edu/projects/glove/, 请使用d=100的词向量 检索式的问答系统 问答系统所需要的数据已经提供,对于每一个问题都可以找得到相应的答案,所以可以理解为每一个样本数据是 <问题、答案>。 那系统的核心是当用户输入一个问题的时候,首先要找到跟这个问题最相近的已经存储在库里的问题,然后直接返回相应的答案即可。 举一个简单的例子: 假设我们的库里面已有存在以下几个<问题,答案>: <"贪心学院主要做什么方面的业务?”, “他们主要做人工智能方面的教育”> <“国内有哪些做人工智能教育的公司?”, “贪心学院”> <“人工智能和机器学习的关系什么?”, “其实机器学习是人工智能的一个范畴

简单粗暴理解与实现机器学习之神经网络NN(四):词向量-word2vec、Word2Vec模型介绍、统计语言模型、神经网络语言模型NNLMNNLM、Word2Vec案例Word2vec、词向量工具使用

青春壹個敷衍的年華 提交于 2020-03-08 03:50:06
文章目录 7.4 词向量-word2vec 学习目标 7.3.1 Word2Vec模型介绍 7.3.1.1 为什么学习词嵌入 7.3.1.2 词向量是什么 7.3.1.3 词向量训练来源思想-统计语言模型 统计语言模型案例 统计语言模型缺点 7.3.1.4 神经网络语言模型NNLMNNLM 神经网络语言模型例子 7.3.1.4 Word2Vec 举例:CBOW前向计算与向量(参数)更新推导 7.3.1.5 拓展- Word2vec 的训练trick(优化) 7.3.2 Word2vec 词向量工具使用 7.3.3 总结 7.4 词向量-word2vec 学习目标 目标 知道统计语言模型 掌握神经网络语言模型NNLM原理 掌握wor2vec的实现方式以及优化特点 应用 无 7.3.1 Word2Vec模型介绍 7.3.1.1 为什么学习词嵌入 图像和音频处理系统采用的是庞大的高维度数据集,对于图像数据来说,此类数据集会编码为单个原始像素强度的向量。不过,自然语言处理系统一直以来都将字词视为离散的原子符号,将字词表示为唯一的离散 ID 还会导致数据稀疏性,并且通常意味着我们可能需要更多数据才能成功训练统计模型。使用向量表示法可以扫除其中一些障碍。 计算相似度 寻找相似词 信息检索 作为 SVM/LSTM 等模型的输入 中文分词 命名体识别 句子表示 情感分析 文档表示 文档主题判别

Fasttext (Bag of Tricks for Efficient Text Classification) 阅读笔记

我是研究僧i 提交于 2020-03-08 02:57:40
论文原文 Bag of Tricks for Efficient Text Classification 论文信息 EACL2017 论文解读 Hytn Chen 更新时间 2020-02-23 文本分类相关方法 用作文本分类的卷积神经网络,有多个使用流程示意图如下 1维卷积 堆卷积(Goldberg Book) 延迟CNN(Kalchbrenner et al. 2016) 动态CNN 详见这篇文章解读 总结一下,CNN在文本分类中担任的主要角色就是encoding文本,之后可以用分类器解决分类的问题。CNN主要问题就是训练相对较慢,从而就限制了CNN不能在非常大的数据集上使用。 论文提出的模型 模型结构图如下 简单来讲就是 文本表征+线性模型 ,这里的文本表征由n-gram,词查找表以及CBOW组成,线性模型由多层softmax和rank constraint组成(实现参数共享的效果)。 输入层 :先看n-gram表征,很简单理解,假设一句话有N个词,1-gram就是单个词为一组,一共可以有N组;2-gram就是两个词为一组的排列组合,一共可以有 N ( N − 1 ) 2 \frac{N(N-1)}{2} 2 N ( N − 1 ) ​ 组,如果再多那字典(要索引到具体组别,一个组别一个序号)的维度就呈指数增长了,因此文中使用了哈希字典的方式来避免这样的情况发生(把所有的n

pyspark 相似文章推荐-Word2Vec+Tfidf+LSH

自古美人都是妖i 提交于 2020-03-06 01:36:55
本文目的 最近在研究LSH方法,主要发现用pyspark实现的较少,故结合黑马头条推荐系统实践的视频进行了本地实现。 本项目完整源码地址: https://github.com/angeliababy/text_LSH 项目博客地址: https://blog.csdn.net/qq_29153321/article/details/104680282 算法 本章主要介绍如何使用文章关键词获取文章相似性。主要用到了Word2Vec+Tfidf+LSH算法。 1.使用Word2Vec训练出文章的词向量。 2.Tfidf获取文章关键词及权重。 3.使用关键词权重乘以其词向量平均值作为训练集。 4.使用LSH求取两两文章相似性。 对于海量的数据,通过两两文章向量的欧式距离求取与当前文章最相似的文章,显然不太现实,故采取LSH进行相似性检索。 LSH即局部敏感哈希,主要用来解决海量数据的相似性检索。由spark的官方文档翻译为:LSH的一般思想是使用一系列函数将数据点哈希到桶中,使得彼此接近的数据点在相同的桶中具有高概率,而数据点是远离彼此很可能在不同的桶中。spark中LSH支持欧式距离与Jaccard距离。在此欧式距离使用较广泛。 实践 部分原始数据: news_data: 一、获取分词数据 主要处理一个频道下的数据,便于进行文章相似性计算 # 中文分词 def

我用飞桨做了一个菜品图像识别系统

China☆狼群 提交于 2020-03-05 23:04:04
【飞桨开发者说】:贝史涛,浙江理工大学本科生,2019中国高校计算机大赛-人工智能创意赛二等奖获得者 随着信息技术的发展,我国餐饮建设也发生了很大变化。目前食堂大多以人工为主,推行一卡通消费,即自助选菜然后人工结算,这与以往使用饭票或现金结算相比,省去了找零的麻烦,在效率上有一定的提升。人工结算之所以效率低下,是因为食堂工作人员需要首先识别菜品种类,然后对应每种菜品价格,最后口头累计消费数额并打卡,同时在计算金额的过程中也可能会出错。 这整一过程不仅需要较长时间,而且准确率也难以保证 。 近年来,在快餐式食堂领域也出现了通过RFID芯片、碗盘颜色识别等技术实现的机器结算。但是,随着顾客数量的日益增长,这已不能满足他们在就餐高峰期对结算速度的需求。通过调研分析,我们发现尽管目前市场上已出现RFID芯片、碗盘颜色的智能识别方式,但仍存在成本高、灵活度低等问题,菜品图像识别相较于它们有着巨大优势。 与此同时,以深度学习为代表的人工智能技术飞速发展。与以往不同的是,这次人工智能不仅在学术界备受关注,在工业界也备受推崇。以“深度学习”为关键词搜索国家自然科学金委近年资助项目,发现基金委资助和立项的“深度学习”相关的课题数量呈逐年快速上升趋势,如下图所示。由于本轮人工智能可落地性非常强,可快速为行业应用赋能,所以在工业、商业、金融等各领域亦备受追捧,目前正快速应被推广应用到各个领域。 ​

word2vec原理分析

泄露秘密 提交于 2020-02-25 08:10:13
  本文摘录整编了一些理论介绍,推导了word2vec中的数学原理,理论部分大量参考《word2vec中的数学原理详解》。 背景 语言模型   在统计自然语言处理中,语言模型指的是计算一个句子的概率模型。   传统的语言模型中词的表示是原始的、面向字符串的。两个语义相似的词的字符串可能完全不同,比如“番茄”和“西红柿”。这给所有NLP任务都带来了挑战——字符串本身无法储存语义信息。该挑战突出表现在模型的平滑问题上:标注语料是有限的,而语言整体是无限的,传统模型无法借力未标注的海量语料,只能靠人工设计平滑算法,而这些算法往往效果甚微。   神经概率语言模型(Neural Probabilistic Language Model)中词的表示是向量形式、面向语义的。两个语义相似的词对应的向量也是相似的,具体反映在夹角或距离上。甚至一些语义相似的二元词组中的词语对应的向量做线性减法之后得到的向量依然是相似的。词的向量表示可以显著提高传统NLP任务的性能,例如《 基于神经网络的高性能依存句法分析器 》中介绍的词、词性、依存关系的向量化对正确率的提升等。   从向量的角度来看,字符串形式的词语其实是更高维、更稀疏的向量。若词汇表大小为N,每个字符串形式的词语字典序为i,则其被表示为一个N维向量,该向量的第i维为1,其他维都为0。汉语的词汇量大约在十万这个量级

动手深度学习PyTorch(十三)GloVe

女生的网名这么多〃 提交于 2020-02-23 04:32:41
全局向量的词嵌入(GloVe) 让我们先回顾一下word2vec中的跳字模型。将跳字模型中使用softmax运算表达的条件概率 P ( w j ∣ w i ) P(w_j\mid w_i) P ( w j ​ ∣ w i ​ ) 记作 q i j q_{ij} q i j ​ ,即 q i j = exp ⁡ ( u j ⊤ v i ) ∑ k ∈ V exp ( u k ⊤ v i ) , q_{ij}=\frac{\exp(\boldsymbol{u}_j^\top \boldsymbol{v}_i)}{ \sum_{k \in \mathcal{V}} \text{exp}(\boldsymbol{u}_k^\top \boldsymbol{v}_i)}, q i j ​ = ∑ k ∈ V ​ exp ( u k ⊤ ​ v i ​ ) exp ( u j ⊤ ​ v i ​ ) ​ , 其中 v i \boldsymbol{v}_i v i ​ 和 u i \boldsymbol{u}_i u i ​ 分别是索引为 i i i 的词 w i w_i w i ​ 作为中心词和背景词时的向量表示, V = { 0 , 1 , … , ∣ V ∣ − 1 } \mathcal{V} = \{0, 1, \ldots, |\mathcal{V}|-1\} V = { 0 , 1

训练词向量实战

一曲冷凌霜 提交于 2020-02-21 19:18:08
基于gensim训练中文词向量 数据集 下载中文维基百科数据 [维基百科数据链接](https://dumps.wikimedia.org/zhwiki/) ,在该目录下选择最新的数据,我下载的是zhwiki-latest-pages-articles.xml.bz2,数据比较难下,附上百度云盘链接 创建环境 conda install -n python35 python=3.5 #创建python35环境 conda install -n python35 jieba #安装jieba分词工具 conda install -n python35 gensim #安装gensim conda install -n python35 hanziconv #安装hanziconv繁体->简体 实验步骤 获取语料 #文档根目录 ROOT_DIR = os.getcwd() DATA_PATH = os.path.join(ROOT_DIR, "data") MODEL_PATH = os.path.join(ROOT_DIR, "model") #创建路径 wiki_articles_xml_file=os.path.join(DATA_PATH,"zhwiki-latest-pages-articles.xml.bz2") wiki_txt_file=os.path.join