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

[开源推荐]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/

(责编:王果)

帮助软件开发者提高效率的10个小窍门 我想做个程序员:Technovation Challenge圆女孩编程梦想 未来我们开发的Google Glass应用将会是什么样? 独家:前RIM大中华区总经理刘征宇,加入Appconomy 用一个API搞定一切 Segment.io为移动开发者提供便利的分析数据分发服务 TIOBE 6月编程语言排行榜:JavaScript回归前十 《Kingdom Rush Frontiers》上线后 迅速抢占27个国家游戏榜首 移动周报:85后程序员,iOS开源项目,细数7天大事件! Instagram:从Redis到Cassandra 成本节省1/4 乐元素CTO凌聪访谈:游戏引擎技术选型之王道 iOS 7的新设计并非止于外表 WWDC 2013大会10大启示:正向开发者支付大量现金 云计算大会微软专场成功举办 Windows Azure公众预览版上线 IBM全球大裁员 在美国裁员已经开始 动动鼠标,决定“中国十大优秀开源项目”的归属 为改善Flickr 雅虎收购拍照应用开发商GhostBird 让你轻松学习新代码库的六个步骤 RESTful API 设计最佳实践 谷歌11亿美元豪购Waze原因:获取数据 争本地广告市场 为什么大家都要疯狂吐槽iOS 7的扁平化设计? 伟大的程序员是天生的,不是造就的 比Hive高效7倍 Facebook推新一代查询引擎Presto 未来的存储系统设计——PMC技术交流会举行 第五届中国云计算大会PPT尝鲜:十位专家分享的架构实践 “DIY”可穿戴设备:索尼开放智能手表固件 在微软的八个月里,我学到了这些 谷歌实习生每月都拿$6000,你呢? 【第五届中国云计算大会】由瓦特变比特输出,新疆要做中亚云服务中心 应用程序扩展性实现的十宗罪 图文:看谷歌实习生的惬意生活 为移动而设计:交互设计篇 联想的机子伤透我的心!高分求教!!!!!! 但愿有人能给出答案。 如何验证邮件地址的有效性? 一个简单的问题 请教azureeW 、wudaqiang、net_star、ltz 、west_wood——NetMeeting SDK的相关问题 关于vb中多文档编程的问题 请高手指点迷经!怎么得到系统硬件信息。 高分求救:我的2000server经常出现"HTTP/1.1 新建会话失败",应如何解决? MFC 初学者的一个问题? 谢谢! 高分求救:我的2000server经常出现"HTTP/1.1 新建会话失败",应如何解决? win2000server重装后,硬盘丢失,盼解决。 想认识西安的 Delphier,报上你的 QQ 和 Email? MFC 初学者的一个问题? 谢谢! 应该很简单吧:如何在程序中使用外部Dll及Lib? 简单的问题 急 送分 MYSQL权限问题~!~!小菜提问. 使用MSCOMM从串口中读出乱码的问题 如何 实现 数据 窗口 对象 的 不同 行显示不同颜色 SELECT * FROM mytable order by IndexNum where (IndexNum%100=0) , 那里有问题? 强烈建议CSDN论坛加入贴图功能!! PB做的客户端进销存软件的毕业论文,该怎么写,给点意见! 招聘网页美工人员和ASP程序员 [帮我顶]强烈建议CSDN论坛加入贴图功能!! 请问如何屏蔽其他窗口? filter 问题 ????????????? 国内哪个大学的计算机图形学最强? 如何用ACCESS建立一个合理的数据库? 需要空间的看看 如果主键和其他表的外键相连是不是没有办法删掉其中某些表的数据吗? 求助:xls用odbc不能编辑,出错:Syntax error or access violation PE格式的资料你有吗? VB 中的类模块与模块之间的联系是什么? 怎样从windows访问linux的ext3分区? 关于CFM-Resources免费空间(asp+cf+access+30M)的问题!100分 消息接收后拆分,毕设急!!60分已经是倾我所有了 热心的VC大虾,请多帮忙 请问如何用JAVASCRIPT获取服务器时间,并以字符串形式输入,如:200206021943,谢谢! ADO访问access数据库,怎样删除一条记录???? 关于字符串转日期型的值的问题 Tadoquery中参数返回的问题 请问各位高手门,现在公司的数据库编程普遍用哪种模式ADO或ODBC? 如何在CFormView中添加位图背景?? 谁来帮我看看这几行程序!我实在无法解决,谢谢! 请问如何自己编程使用Logitech QuickCam 人工智能的问题(乜人都要睇) 400分题目问题要解决了就立刻、马上、立即、给分! 菜鸟问题c++中清屏函数在哪? 请问哪里有c#语法的速查手册,最好有与vb的对照版? ISA声卡,CD与ME! 帮帮忙,一个很简单的sql语句 机器的电源关不了?(重谢!) 哪位大神给做个Burning(燃烧)(燃烧)歌曲链接要空间可用的哦~ 通过凹透镜的光一定是发散光吗?通过凸透镜的光一定是汇聚光吗? 怎么用氢气罐制造氢气提问以前,我搜索了一下以前的答案:1.火碱、清水以4∶15的质量比配成火碱溶液,注入产气机,再放进3份质量的铝(以纯铝计算),盖好盖子.2.打开阀门,就可以给气球充 一年级语文造句 载货汽车线路电源开关接电瓶正极和电瓶接负极有什么区别 怎样用氢气罐制造氢气提问以前,我搜索了一下以前的答案:1.火碱、清水以4∶15的质量比配成火碱溶液,注入产气机,再放进3份质量的铝(以纯铝计算),盖好盖子.2.打开阀门,就可以给气球充 某导体的横截面积为2毫米2,5分钟内通过这导体的电量300库伦,则导体中的电流大小给个过程 气体增压泵如何防静电我有一小型气体增压泵,如果用于管道煤气做增压用,会不会产生静电,该怎样预防静电的产生?气泵是双缸活塞式增压的,压力2公斤左右. 买的氢气储存在了那种一般的氧气罐里头,然后能不能直接向气球里充气?需要注意什么?安全性怎么样?知道的兄弟速度给个正解.无限感激啊~ 2安= 库、秒 如果通过导体的电流是2安,则一分钟通过导体横截面的电量是 库伦?怎样通过电流表的指针判断电流表的量程?2安= 库、秒 如果通过导体的电流是2安,则一分钟通过导体横截面的 在粗糙的水平面上叠放物体A.B,A.B间的接触面也是粗糙的,如果用水平拉力F拉A,但A.B保持静止.A.物体A与地面间的静摩擦力大小为F.B.物体A与地面间的静摩擦力大小为0C.物体AB间的静摩擦力大小为 质量为40kg的小明骑着一辆质量为10kg的自行车在平直公路上行驶,在五分钟内行驶了1500m的路程.求:小明骑自行车的速度为多少m/若小明骑自行车时所受到的阻力为50N,该同学骑车行驶5分钟克服 一个肥皂盒里面有多少个肥皂我的意思是一个肥皂包装纸箱里面有多少块肥皂(牌子是立白强效去渍) 一段导体10秒内通过6库伦的电量,通过这段导体的电流? 3分钟内电荷量是360库仑,求电流是多少安培好象没学过啊 可不可以用香皂盒肥皂洗脸? 如果通过导体的电流是2安,则1分钟内通过导体横截面的电量是_____库伦? 为什么蓄电池负极板的片数总比正极多一片? 一种肥皂,他的长、宽、高分别是16厘米,6厘米,3厘米,一想装30条肥皂,设计一种包装箱,符合下列要求(1)肥皂装箱时,面积相同的面要互相对接.(2)包装箱是一个长方体.(3)装入肥皂后不留 拆汽车电瓶时,为什么先拆负极,装的时候先装正极啊? 电池为什么负极的面积比正极的大正极不发生化学反应吗 风像什么造句一年级语文 每节电池都有正极和负极 蓄电池负极成了正极一手提照明灯搁置时间长了,里边的水干了,最近有倒上了蒸馏水极性反了正极成了负极,这么充电用了,能长时间用吗?电流还不小呢.【是不是电池上标的正极负极能差了】, 眼睛弄到甲醇怎么办 自动喷淋恒压供水设备和加压泵有什么区别 求:锂电池“正极和负极的制作材料”比如石墨~还有别的~我是想了解那些材料是否有毒,因为我们在卷绕过程中正极和负极会掉粉尘下来 忘记.记得.造句 什么是螺杆式喷射吸水泵,重点求教螺杆式是什么意思,这种工作方式的吸水泵跟别的吸水泵有什么不同? 高锰酸钾法测定化学耗氧量COD为什么不采用直接法?而是要使用返滴定?加热温度控制到多少合适?偏高或偏低有什么影响? 物体的运动方程为S=四分之一t的三次方减3,则t=5时的瞬时速度 静摩擦力大小一般是怎么算出来的? 静摩擦力的大小一定等于引起静摩擦作用的外力?静摩擦力的大小由牵引力决定? 一物体的运动方程是s=t^3+10,求该物体在t=3时的瞬时速度 什么会导致眼睛失明 一公斤氢气有多少?我知道有些地方卖瓶装氢气,大小跟氧气瓶差不多;我想知道,这样一瓶氢气大概有多重?还有,在这样的气瓶中,一公斤的氢气能支撑多少体积?(例如我要冲一立方米的氢气球 充电时,电池负极都与电源负极连,正极都与电源正极连? 如何计算静摩擦力的大小 某同学家里有220V 60W的电灯九只,1400W的空调机一台,700W的电饭煲一只,求:(1)若这些用电器一起工作3h,消耗电能多少? (2)总熔丝的额定电流至少为大?分后给 电池(直流电电源)为什么要正极接负极如题,电池电源为什么要把一个电池的正极接另一个电池的负极,这样为什么不会短路?交流电里面为什么不可以?这样的串联和并联有什么不同?我是说 甲醇有毒 误饮可使眼睛失明可以治疗吗? 氢气多少钱一瓶 汽车电源开关是关正极还是负极 1安培是多大电流 一罐氢气多少 玩具车的塑料履带是什么机器加工的? 电路中电流的大小可用电流表(安培表)进行测量,测量是应注意什么? 一公斤氢气等于多少大气压 请问有谁知道如何用塑料瓶做玩具小汽车? 凸透镜和凹透镜对光线的会聚和发散作用产生的原因A玻璃对光线的折射B玻璃表面对光线发生镜面发射C玻璃表面对光线发生漫反射D由于光的直线传播 将两节同型号电池 一个电源正极接灯泡 一个电源负极接灯泡 这两节电池互不相连 为什么灯泡不亮?不是说 高电位流向低电位吗 ,那可以把电池的正极(高电位)接灯泡一端接地?为什么不亮? [来源:www.efchan.com ]公仔玩具一般是什么塑料 经过凸透镜的光线一定汇聚,通过凹透镜的光线一定发散 这句话为什么是正确的? 蓝色玻璃夜间用黄光照射,会呈什么颜色?蓝光照射后,又会呈什么颜色?蓝色玻璃夜间用黄光照射,会呈什么颜色?白光照射蓝色玻璃,会呈什么颜色?蓝光照射蓝色玻璃,会呈什么颜色? 遥控玩具车的遥控器上的那根软的塑料天线是用什么塑料材料制成的? 为什么凸透镜会汇聚光线?凹透镜会发散光线?(结合三棱镜对光线的偏折情况) 黄光照射绿玻璃 ,蓝玻璃,玻璃呈现什么颜色 甲醇滴到眼睛里会导致双目失明吗?我只知道甲醇是通过误服导致分解甲酸致使双目失明的.如果将甲醇溶液直接滴到眼睛里会不会导致失明?别写大量的什么分子式、机理、用途等无用的东西 判断 凸透镜可以对光线起发散作用() 通过凹透镜后的光线可以会聚到一点() 有一个水箱,在一个侧面上有三个大小相同的出水孔(三个出水孔的高度相同)用一个进水管给空箱灌水.如果三个出水孔全关闭,则要60分钟将水箱灌满如果打开一个出水孔,则要65分钟将水箱灌满
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘