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

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

(责编:王果)

移动应用注册表单必死! 数据:2012年的全球互联网知多少 访中粮我买陈伟伟:高并发大压力挑战架构师极限 左路Deep Learning+右路Knowledge Graph,谷歌引爆大数据 数据库排行榜:关系型居首,NoSQL整体人气最高 联通:要做PaaS,存储最低为TB 百度资深交互设计师谈微信4.5版本 TalkingData推出移动游戏数据分析平台 一周消息树:著名计算机黑客Aaron Swartz自杀身亡 使用Windows 8模拟器及Visual Studio 2012调试IE 10触控及响应式Web设计 Azure、AWS要来了 IDC抱团取暖还是各找出路 C#使用ICDBurn实现CD刻录 验证码识别基础方法及C#/.NET源码 傲逆软件CEO周鲁:核心游戏精神,在移动游戏创作中传承 Kim Dotcom推出新文件存储服务平台Mega 用户数一天达百万 美FCC:希望全美在2015年部署千兆以太网 iOS和Android双平台:帷千动媒SDK 3.0发布 移动周报:2013年移动App设计13大精髓 构建高可扩Web架构和分布式系统实战(下) API设计的十大最差和五大最佳实践 Hadoop:为什么RAID-0不行? 电子前沿基金会:实现互联网自由需翻越5座大山 安全无小事:2013年最令人期待的15家安全公司 移动电商:更喜欢用HTML5代替原生APP Talkingdata行业预警:移动游戏正在变成红海 微软无视W3C 拒绝遵循WebRTC标准 Linux下使用MongoDB+GridFS实现备份作业的优化和监视 AWS建新数据中心 老用户获益不易 铜导线退出历史舞台 激光传导速度将达100G bps 大众点评推出首个O2O开放者平台:高德、盛大加入 从APM角度上看:NoSQL和关系数据库并无不同 各位老大请进. 如何给下拉列表框中某一选项的值赋null?另,如何判断用户没有对列表框进行选择? 为什么我在sql*plus在system表空间建了个scott.sale表后在oem看不见呀!! 如何给下拉列表框中某一选项的值赋null?另,如何判断用户没有对列表框进行选择? 各位老大请进. 超级菜鸟 datagrid的触发事件问题 为什么选择服务器游标后,datagrid 不能用了? 数据库oracle9.2,用oledb连接数据库时出现“未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序。”怎样解决? 直接通过ADO如何远程访问计算机上的SQL Server数据库 如何升级jbuilder7的jdk? 发布基于TXMLDocument的程序需要打包哪些文件? 小白鲨只是提议版主不要随意性执法 彩色图像的亮度和对比度? HTML Help Workshop 话中国电影的英文译名(英语爱好者请进,更新中) 小弟做的第一个网页,知道来这个论坛的都是高手,请大家多批评! 如何从CObject中派生一个类? 初学请求大家帮助希望早结贴早睡觉(两贴共120分)。 菜鸟问题:应该先学开发平台还是先学开发语言? service是否也有消息队列? 不知道这样的情况,SQL语句该如何写!谢谢了! HTML Help Workshop 安装什么样的版本? iis无缘无故死掉??? c#.net ! Delphi程序员现在的工资怎么样啊? 如何取得Button的Text属性值? 歪脚鸭病了 一个想了很久的问题,C/C++为什么把声明与实现放在不同的文件里(*.h,*.cpp),感觉没有一点好处。 郁闷,散分! 关于scjp的一个很菜的问题 请问为什么我的两千上网后不能关机? 哈!又升级了!(版主要手下留情,我是真心感谢大家) 现在再看《人月神话》有价值吗? 有关生成可执行文件的问题 水源里的兄弟们进来说说,到底怎样才能渡自己早日成星呀? 请教:怎样在一个应用程序中提取经运算的 多行文本行 有关new操作的问题 我要学c#.net,该从那开始??难吗??谢谢指教啊~~~~~ 两个小问题 请教:怎样在一个应用程序中提取经运算的 多行文本行 如何读取一个目录下所有目录? 如何测出电话不通时返回得声音(占线声),它的具体代码?我要做一个占线自动重拨的程序! 我的插入代码为什么不能执行!? 声卡资源的分配??帮帮我!!! 怪事多多!IE窗口无法“还原” 我的代码怎么发不上去? msdn不知为什么运行不好了,要运行两次才行,速度很慢! 一个播放器,如何判断它要播放的是视频文件还是音频文件? 我在银行工作,请推荐一些关于UNIX和informix online的好书,如何学习? 汪峰战队导师考核 “那张渔网”遭遇选华少出书揭“好声音”内幕 最大梦想是传“好声音”李代沫将与神秘歌手合作新王励勤女友刘彦池 玩泰拳摆POSE卖学员唱哭观众 导师汪峰纠结到要改规则梦想导师贾轶男助阵汪峰队明晚进行考核韩艳星李芭妮海量性感照 没有什么她不中韩女星同场合照比美 韩女星弱爆了导师庾澄庆:我要的是可塑性强的怪声音汪峰组考核成演唱会 钟伟强对战毕夏引柳岩与胡夏贴身跳热舞侧露内衣走光显尴刘晓庆美国婚礼现场照曝光 与老公花海第六期好声音收视创新高 数据持续打破《新白娘子传奇》演员现状同剧不同命揭秘《好声音》政治学:成年人的权力游好声音人气学员亮相天津国际沙滩音乐节“好声音”胡梦周是吴莫愁师兄同受哈林《陆贞传奇》赵丽颖绝美私照曝光“好声音”毅光年能留下 声音乐团帮了李小璐与明星姐妹淘装嫩照 棒球帽吐舌“双生林志玲”被曝外围女 海量性感照世界体育舞蹈大赛24日光谷起舞四厅官涉嫌严重违纪被免职日本取代中国成美国最大债权国图文:87家科技型企业昨集体挂牌S板全国政协在鄂调研台资企业转型升级拜仁“自杀”连开了三枪紧扣主题 突出重点 精细运作充分展示综合交通先行 实现互通共赢一个被颠覆的赛季黄石西塞山区倒逼干部接地气金龙泉依托大病救助会建立员工长效帮扶拜仁“自杀”连开了三枪要拿出建高铁的魄力提网速促进县域经济更好更快发展减免小微企业税收747.18万元我省通过政策性招聘努力解决农村教师短全国政府网站首次普查剑指“僵尸”网站这不是镜头脏了台北路片旧城改造项目被征收房屋分户评五千名海内外嘉宾下月聚首中博会朱英国院士执教治学50年
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘