阅读更多

9顶
0踩

开源软件

谷歌已经使用Deep Learning技术开发了许多新方法来解析语言,目前,谷歌开源了一款基于Deep Learning的学习工具——word2vec,这是首款面向大众的Deep Learning学习工具。

word2vec(word to vector)顾名思义,这是一个将单词转换成向量形式的工具。通过转换,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。

word2vec为计算向量词提供了一种有效的连续词袋(bag-of-words)和skip-gram架构实现,word2vec遵循Apache License 2.0开源协议。

如何转换?

word2vec主要是将文本语料库转换成词向量。它会先从训练文本数据中构建一个词汇,然后获取向量表示词,由此产生的词向量可以作为某项功能用在许多自然语言处理和机器学习应用中。

在举例子之前,引入余弦距离(Cosine distance)这个概念(摘自维基百科):

通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。在比较过程中,向量的规模大小不予考虑,仅仅考虑到向量的指向方向。余弦相似度通常用于两个向量的夹角小于90°之内,因此余弦相似度的值为0到1之间。

然后可以通过distance工具根据转换后的向量计算出余弦距离,来表示向量(词语)的相似度。例如,你输入“france”,distance工具会计算并显示与“france”距离最相近的词,如下:

              Word             Cosine distance
      -------------------------------------------
                spain              0.678515
              belgium              0.665923
          netherlands              0.652428
                italy              0.633130
          switzerland              0.622323
           luxembourg              0.610033
             portugal              0.577154
               russia              0.571507
              germany              0.563291
            catalonia              0.534176

在word2vec中主要有两种学习算法:连续词袋和连续skip-gram,switch-cbow允许用户选择学习算法。这两种算法有助于预测其它句子的词汇。

从词转换到句子或更长的文本

在一些特定的应用程序中,它还可以用于多个词汇,例如,“san francisco”,这样它就会通过预先处理数据集,让其形成句子,找到与“san francisco”余弦距离最近的内容:

              Word          Cosine distance
-------------------------------------------
          los_angeles              0.666175
          golden_gate              0.571522
              oakland              0.557521
           california              0.554623
            san_diego              0.534939
             pasadena              0.519115
              seattle              0.512098
                taiko              0.507570
              houston              0.499762
     chicago_illinois              0.491598

如何衡量词向量质量

可能影响到词向量质量的几个因素:

  • 训练数据的数量和质量
  • 向量的大小
  • 训练算法

向量的质量对任何一个应用程序都非常重要,然而,根据复杂的任务来探索不同的超参数设置可能会过于苛刻。因此,我们设计了简单的测试集,来快速评估矢量词的质量。

词聚类(Word clustering)

词向量也可以从巨大的数据集中导出词类,通过执行词向量顶部的K-means聚类即可实现,脚本演示地址:./demo-classes.sh,最后输出的是一个词汇表文件和与之对应的类ID标识,例如:

carnivores 234
carnivorous 234
cetaceans 234
cormorant 234
coyotes 234
crocodile 234
crocodiles 234
crustaceans 234
cultivated 234
danios 234
.
.
.
acceptance 412
argue 412
argues 412
arguing 412
argument 412
arguments 412
belief 412
believe 412
challenge 412
claim 412

性能

在多核CPU上(使用开关‘-threads N’),通过使用并行训练可以显著提高训练速度,超参数选择对性能也至关重要(包括速度和准确率),主要选择有:

  • 架构:skip-gram(慢、对罕见字有利)vs CBOW(快)
  • 训练算法:分层softmax(对罕见字有利)vs 负采样(对常见词和低纬向量有利)
  • 欠采样频繁词:可以提高结果的准确性和速度(适用范围1e-3到1e-5)
  • 维度词向量:通常情况下表现都很好
  • 文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近

去哪里收集训练数据

随着训练数据的增加,词向量质量也显著提升,如果以研究为目的的,可以考虑线上数据集:

快速入门

  1. 代码下载:http://word2vec.googlecode.com/svn/trunk/
  2. 运行“make”编译word2vec工具
  3. 运行demo脚本:./demo-word.sh and ./demo-phrases.sh

关于word2vec更多介绍,大家可以阅读:https://code.google.com/p/word2vec/

来自: csdn
9
0
评论 共 8 条 请登录后发表评论
8 楼 transist 2013-09-05 17:27
这个适合处理英文这种简单按空格来分词的,对中文不一定适用
7 楼 jilen 2013-08-28 16:52
貌似对中文不友好啊
6 楼 我是Android 2013-08-24 21:51
没懂 ,说的是啥啊
5 楼 diggywang 2013-08-24 18:47
源代码就5个C文件?
4 楼 juedui0769 2013-08-24 16:21
拿来学习英语收集词汇
3 楼 吃鱼的虾米 2013-08-24 13:32
没怎么懂 
2 楼 kanme818 2013-08-24 13:29
感觉人类危险了
1 楼 clxy 2013-08-23 21:14
电脑学会联想,世界将会怎样?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • word2vec词向量训练及中文文本相似度计算

    word2vec词向量训练及中文文本相似度计算。 word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系。虽然源码是开源的,但是...

  • 基于Word2Vec的相似度计算(python)

    前言 ...词向量(word2vec)是一个将单词转换成向量形式的工具。可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。 在自然语言处理(NLP...

  • 中文word2vec的python实现_基于Word2Vec的相似度计算(python)-Go语言中文社区

    背景知识1.1词向量词向量(word2vec)是一个将单词转换成向量形式的工具。可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。在自然语言处理(NLP)相关任务中,...

  • python下【word2vec】实现两个词向量的相似度计算

    **词向量(word2vec)**是...要使用word2vec工具就我所知有两种方式,一种是从谷歌下载安装,需要使用linux环境;另一种是python中的gensim库中就有word2vec工具。本文使用python下的word2vec方法。 利用word2vec实...

  • 基于Word2vec文本聚类

    基于Word2vec文本聚类

  • 如何通俗理解Word2Vec (23年修订版)

    在继续聊 Word2vec 之前,先聊聊 NLP (自然语言处理)。NLP 里面,最细粒度的是词语,词语组成句子,句子再组成段落、篇章、文档。所以处理 NLP 的问题,首先就要拿词语开刀。咱们居住在各个国家的人们通过各自的语言...

  • Transformer通俗笔记:从Word2Vec、Seq2Seq逐步理解到GPT、BERT

    NNLM → Word2Vec → Seq2Seq → Seq2Seq with Attention → Transformer → Elmo → GPT(关于GPT,可再重点看下这篇ChatGPT技术原理解析) → BERT(从不懂到弄懂所有这些模型,我用了整整5个半天即2...

  • 基于word2vec的疾病和手术相关词语的相似度计算

    项目需要预测是否患有骨质疏松,患者所做手术是其中的一维特征,因此需要得到骨质疏松或骨量减少和手术之间的关系,此处选择用word2vec得到词语之间的相似度。 用gensim学习word2vec gensim是一个很好用的Python NLP...

  • word2vec模型训练保存加载及简单使用

    目录 word2vec模型训练保存加载及简单使用 一 word2vec简介 二、模型训练和保存及加载 模型训练 模型保存和加载 ...四、文本相似度计算——... word2vec是google开源的一款用于词向量计算的工具。可以这样理解wor...

  • 深度学习:详解word2vec + 实践操作(包括text2word)

    Text2vec 的输入是整个文本序列,输出是文本序列对应的向量表示。Word2vec 的训练目标是最小化相似单词在空间中的距离或最大化...Text2vec 通常用于处理整个文本序列的任务,如文本分类、文本相似度计算、文本聚类等。

  • 【NLP】 Word2Vec模型 & Doc2Vec模型

    Word2Vec是Google在2013年开源的一款将词表征为实数值向量的高效工具,采用的模型有CBOW(Continuous Bag-Of-Words,即连续的词袋模型)和Skip-Gram 两种。Word2Vec通过训练,可以把对文本内容的处理简化为K维向量空间...

  • 【NLP】Word2Vec 介绍

    Word Embedding(语言是有能量的)

  • 基于word2vec与Word Mover Distance的文档相似度计算

    一、通过词向量进行文档相似度判定的背景与意义  随着人类对自身秘密的探索与研究的不断深入,以生物技术为基石的人工智能技术也在快速的发展。通过对自身的神经以及思维的研究,人们创造出人工智能,来使在各个...

  • 深入浅出理解word2vec模型 (理论与源码分析)

    深入浅出理解word2vec模型 (理论与源码分析)对于算法工程师来说, Word2Vec 可以说是大家耳熟能详的一种词向量计算算法,Goole在2013年一开源该算法就引起了工业界与学术界的广泛关注。一般来说,word2vec 是基于序列...

  • 【NLP】特征工程_word2Vec_02_实践_文本向量化

    word2vec目前可以应用很多方面,如文本分类,文本聚类,相似度计算,推荐,NLP相关应用等等。 那么今天就先玩下其文本向量化功能 python版已实现word2vec的库有: gensim 数据集 要训练词向量就必须要有大量的语料库...

  • NLP自然语言处理Gensim词向量word2vec常见应用

    Gensim是一个用于自然语言处理(NLP)的开源 Python 库,它可以帮助你进行文本处理。Gensim有许多优秀的特性,使它成为进行NLP文本处理的理想选择。其中一个原因是Gensim提供了丰富的文本处理功能。例如可以使用...

  • Spark:HanLP+Word2Vec+LSH实现文本推荐(kotlin)

    Spark:HanLP+Word2Vec+LSH实现文本推荐(kotlin) 文本推荐的基本流程就是首先对目标本文进行关键词提取,接着把关键词转成词向量,再计算词向量的相似性进行推荐。这三个步骤都有现成的模型和算法来实现,本文介绍的...

  • 史上最小白之《Word2vec》详解

    虽然现在深度学习比较广泛,但是其实word2vec并不是深度学习,因为在这个word2vec中,只是使用到了浅层的神经网络,同时它是计算词向量的一种开源工具,当我们说word2vec模型的时候,其实指的使它背后的CBOW和skip-...

  • 三菱PLC例程源码QD75P八轴定位系统程序

    三菱PLC例程源码QD75P八轴定位系统程序本资源系百度网盘分享地址

Global site tag (gtag.js) - Google Analytics