说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

[开源推荐]Google开源基于Deep Learning的word2vec工具

HTML文档下载 WORD文档下载 PDF文档下载
谷歌已经使用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 234carnivorous 234cetaceans 234cormorant 234coyotes 234crocodile 234crocodiles 234crustaceans 234cultivated 234danios 234...acceptance 412argue 412argues 412arguing 412argument 412arguments 412belief 412believe 412challenge 412claim 412
性能

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

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

去哪里收集训练数据

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

  • 来自维基百科的上亿字符(在Matt Mahoney页面底部,适用预处理perl脚本)
  • WMT11网站:多语言的大量文本数据。

快速入门

  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/

(责编:王果)

GitLab获400万美元A轮融资,GitLab 8.0将很快到来 【CTO讲堂】如何构建高可用和可伸缩的架构? 未来程序员会被机器取代吗? React Native实战(一):配置和起步 集聚MDCC 2015 免费展位第二波正式放出 【深入浅出Koa】入门知识,带你以现代化开发方式构建Web应用 升级到Node V4的七个理由 支持大量ES6特性 像写SQL一样编写Java数据应用 Swift 2.0实战:如何实现从非零下标遍历数组? 手把手教学:在iOS 8中使用Cocoapods 交互技术前沿与应用实战:MDCC虚拟现实专场议程揭晓 解密“攻城狮使用手册” 技术专家齐聚!MDCC 2015精彩日程全曝光 基于ActiveMQ的消息中间件系统 OneMM逻辑与物理架构设计详解 John Carmack大神亲操刀,为Oculus开发Netflix应用 React Native实战(二):Android的打包 独立游戏的成功秘诀:好设计才是王道 Swift 2.1的新变化 Apple TV实战:用TVML开发第一款tvOS应用 【SDCC讲师专访】阿里王晶昱:云时代的分布式数据库DRDS 硬件研发、嵌入式技术演进:MDCC IoT峰会日程揭晓 专访百度知道iOS团队负责人孙源:代码强迫症的死实践派 TIOBE 2015年10月编程语言排行榜:Ruby取代Objective-C进前十 【SDCC讲师专访】PingCAP联合创始人兼CEO刘奇:好的产品应开源,不闭门造车 【深入浅出Koa】常用工具分享 帮你降低编程难度 Relay: 全新的React数据获取框架 探索游戏开发面临的技术挑战——MDCC 2015游戏开发专场议程曝光 【SDCC讲师专访】易开发创始人潘俊勇:这些年我遇到的那些坑 【CTO讲堂】OpenStack行业实践和发展趋势探讨 万物互联,移动为先:MDCC 2015移动开发者大会盛大开幕! 【MDCC 2015】微软开发体验与平台事业合作部大中华区DX部门总经理Srikanth Raju:物联之上云+端 使用VBScript编程下的类型转换问题 如何遍历主窗体中的每个菜单项!!!不是简单的问题 请问,用程序怎样调用Recongnition Profile的功能? 各位,怎样读取XML格式的配置文件,请给出源代码。急需!!! 关于sco unix5。05的软件的问题 这个文件如何解压:steven.advprog.tar.Z 这个问题很怪的!! 兄弟们,救急啊,关于调用oracle的... jive高手 jive 论坛安装后,为什莫我把Locale Settings 改为中国在论坛的首页报错 调用存储过程的方法,在线等待... 请问各路英雄...??? 在DLL中创建多线程的问题? 着急啊!!!一个关于多文档的问题 install expression 打包问题 急急急 求教 一个框架结构的左右两边同时改变的问题 ★★ 高兴送分 ★★(zzwu) 请教高手 系统重装,SQL 6.5只剩下几个data目录下的dat文件,请问怎么才能把数据完全恢复? 客户端调试sql server存储过程 兄弟我想换工作,还企盼网友推荐(看在我对java版热心参与,请版主保留几天) 如何配置jConnect连接Sybase数据库?需要安装jdk吗? 如何在模块中编写一个函数,对数据库进行增,删,修改操作? a 请问各位DirectDraw是做什么的?最好能详细谈谈他的前景?谢谢! 我的win2000server在域中,被以域中Administrator进入,结果我的机子以域用户进入后,机子的系统关机选项变为不可用,以域中Administrato b/s应用程序怎样限制它只能安装在某一台电脑上? FORM中,如何通过 ODBC 访问 Foxpro的 dbf 数据文件(在线等待)? 如何判断连接服务器的sql数据库成功与否?在线等待高手解答! applet waiting online 程序员招聘(西安) 怎样让我的对话框程序实现全屏显示急急急1。。。 我的用法是否正确 有本事的就进来 JSP+JDBC环境中如何配置jConnect连接Sybase数据库?需要安装jdk吗? 急,高分求解Font问题 我编写了一个读写COOKIE的公用函数在我的工程中使用,老不通过,麻烦大哥们帮我诊断诊断 请问怎样获取托盘窗体的句柄??(给一百分) 请帮帮忙,如何调用dtswiz.dll 如何用BDE Administrator设置数据库别名(不用ODBC)访问Oracle数据库。高分相送! 对不起,我知道这个问题很简单,但是我一直没有搞出来,您能告诉我吗?datagrid中进行insert,delete,update操作? 寻求eVC用ADO操作cbd数据库的代码。 两个关于枚举类的问题 问用过struts的朋友一个问题,给100分! huffan交流系数表在C中如何表示?????? 线程问题~~~ 有哪位知道在 Windows 2000 下 锁定计算机时应用程序可以得到什么消息啊? 急!!关于数据的导入导出!! Cells不被VB支持吗? 获取字段类型 如何将DataGrid1中的数据打印出来, 如何使程序自动修改CEdit中的文字? IPDI是什么物质 沼气:如何产生? 在很多影视剧中,日本人在称呼一些中国人时总要在姓后加一个桑字. 受到核辐射,身体会出现什么症状? 证明地转偏向力的存在的小实验,1就地取材2实验简单,操作性强3体验实验过程,要有实验记录(实验材料,实验结论)4要有实验结果5语言规范,描述准确 800字左右 日本人称呼"桑"用英文怎么写?如:田中桑. 没有核辐射症状,是不是就没有被核辐射家人7月份从日本回来身体一直没有异样,请问这就说明没有被核辐射 怎么证明有地转偏向力的实验 日本人称桑是什么意思 用Mg,AI分别跟稀H2SO4反应,制取相同质量H2,消耗Mg和AL的质量比为?提示 Mg+H2SO4===MgSO4+H2|,2AL+3H2SO4===AI2(SO4)3+3H2| |为气体符号 地转偏向力究竟应该用物理知识解释? 日本桑是什么意思 将10g由Mg、Al、Fe组成的混合物与40ml稀H2SO4恰好完全反应,产生5.6L(S.T.P)氢气,则三种金属的物质的量之和可能为A.0.125mol B.0.2mol C.0.25mol D.0.5mol 设计一个简便易行的小实验,证明地转偏向力的存在 脂肪族聚异氰酸酯属于氨基树脂吗?氨基树脂相关定义:本类树脂由胺或酰胺与醛(甲醛、糠醛等)缩聚而成.最重要的有尿素树脂(如脲甲醛)、硫脲树脂(如硫脲甲醛)、密胺树脂(如密 Mg和HNO3反应 与 MG和H2SO4的反应相同么? 两个220v 40w 220v 110w的电阻接在电压可调的电路中,串并联电路消耗的最大总功率之比 聚异氰酸酯是属于有机树脂吗?有机树脂的定义是什么呢?聚异氰酸酯有哪些化学特性和毒性呢? 中国的盆地(4个)山脉(11条)高原(4个)平原(3个)都叫什么名? 盐酸伪麻黄碱加氢痒化钠混合后会变成麻黄碱吗,麻烦给个化学式如果不能,怎么把盐酸伪麻黄碱变成麻黄碱? 聚异氰酸酯树脂有哪些危害? 谁知道写这些题 谁知道怎么写? 水性异氰酸酯胶黏剂,封闭异氰酸酯在烘干加热时解封出的异氰酸酯会和水反应,怎么保证和树脂的羟基交联?封闭型水性异氰酸酯交联剂常温下可与水性树脂(水性聚氨酯、水性丙烯酸酯、氟 谁知道这个甲骨文这么写? 请问一下大家谁知道毛笔写字课教案怎么写?真的很急了,十分谢谢大伙 精子存活时间,精子的存活期 谁知道有关希腊神话故事的作文编写啊?老师要我们写的... 谁知道1到10大写怎么写啊 精子体外存活期额.那天我同学来我家(女),在她到之前,遗精了,然后不知道有没有洗手,洗手的话洗的掉吗?如果没洗手她如果用我碰过的东西.如果正处于排卵期? 地八大题第 谁知道2题这么写 高中阶段的化学中接触到的沉淀有那些有特殊的颜色?主要是除了白色以外的颜色 精子在体外能存活多久?昨天晚上做的时候有点事就停下来了,但是龟头上好象射了一点出来了但是没射在里面,中间也没洗,但是3分钟后又做了一次.我就是想问如果龟头上有精子的话,再次进入 关于武则天历史小故事知道的话,有急用! 高中阶段涉及的化学离子与沉淀颜色最好能全面一点 (2/2)一直保护我心免受伤,可宝贝我视而不见 因了我感觉到的爱,为之奈何 把上面的汉语翻译成英语. 历史对武则天的评价 将两只标有“220V 40W”的灯泡串联后接在 220 V的电路中,则两灯消耗的总功率为A.80WB.20WC.30WD.40W 语文、关联词xxxxxxxxxxxx除非xxxxxxxxx必定xxxxxx 武则天的历史对武则天的详细说明,还有武则天的事迹 吊水进空气会怎样 神经递质为什么不是内环境成分? 谁知道咋写 癸丑桑松木命 日主参断《癸丑 衰地》戌亥空亡是什么意思 神经递质是否是内环境组成成分 谁知道怎么写呀? 将14g铁粉与足量的硫粉隔绝空气加热,使其充分反应,最多可得到硫化亚铁多少克? 为什么在磁铁内部磁感线是从S到N极,而外部却是相反?RT mg铜和足量的浓硫酸反应,生成SO2nL,则被还原的硫酸是( )A.m/64 mol B.m/32 mol C.n/11.2 mol D.n/22.4 mol答案上写的是A,但A和D不是一样的吗? 谁知道我的春节怎样写? 脂肪族腈类化合物活性为什么比芳香族腈类高呢 从小肠壁流出的血液所含成分特点是营养物质变(),氧气变()食物中的()()()等营养物质不能被人体 直接吸收,要通过多种()的作用下分解成可吸收的物质 如图为小娟家洗手间的部分电路,白炽灯L上标有“220V 40W”字样,L正常工作时电阻为____________.该电路存在的安全隐患是____________.小娟改进电路后.想到家人常忘记关灯,便把标有“220V 60W” 为什么芳香族羧酸比脂肪族羧酸容易发生脱羧反应 血浆里含有那些营养成分谢谢喽 钠的化学性质及其应用? 餐饮废油回收处理属于哪个部门 异佛尔酮二异氰酸酯IPDI我做的木粉和聚乳酸共混,想添加IPDI,不知道IPDI一般添加为填料的百分之几呀? 如何证明地转偏向力的存在? 英语翻译主要是要有汉语什么读的,不然知道什么写不知道什么读
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘