- A+
大概一年前开始研究nlp(自然语言处理)时,就接触过word2vec这个强大的文本聚类开源项目(见《自然语言处理方面的一些待好好研读的文章笔记》),当时就意识到这东西对SEO来说肯定特别有帮助,只因我不够专注,没能继续深入研究下去。今天去逛@GoGo闯大神的博客时,突然发现他发了下面这篇文章,竟然把word2vec与实际项目结合得如此完美,忍不住第一时间转过来跟大家分享一下。这里不得不吐槽一下,这篇文章是我有史以来最难转的文章!排版太难搞了,以前都是直接用为知笔记或者印象笔记一键剪藏后发布,这回却行不通了,原因是会破坏掉源代码结构,只能我手动一段段复制粘贴了,简直逆天!!!
----------以下是GoGo闯原文,有重新排版,无文字删改,原文章版权归GoGo闯所有----------
手上有份职位词表,数万职位,现在想给每个职位找出相关职位来做推荐。
相关职位,指的是相同职类但不同职位,如:java工程师 – php开发、python工程师、C++开发…..,会计师 – 经济师、统计师、审计师…..,UI设计 – 平面设计、海报设计、广告设计师….
由于职位表是没有职类这层逻辑的,现有的数据也没办法给职位做关联的参考,人工把数万个职位做关联也不现实,所以需要有一个快速简单粗暴的办法。
之前了解过google的开源项目word2vec在聚类、找关联方面效果不错,常用做广告推荐,原理如下:
在A公司的多个页面中,电商公司B有他们的一个主页,专门介绍他们公司一些产品促销,抢购和发布会什么的。
公司A目前有很多用户的浏览数据,如用户u浏览了公司A的页面a1,a2,a3等。
把这些数据处理一下,整合成word2vec能处理的数据,如下
U1 a1,a2,a3……
U2 a2,a3,a5,……
U3 a1,a3,a6,……
其中u1,u2,u3表示不同的用户,后面的一串表示这些用户的浏览记录,如U1 a1,a2,a3表示用户u1先浏览了页面a1,再浏览a2,然后浏览了a3,……
这些数据还不符合word2vec的输入数据格式,把第一列去掉,变成下面的样子
a1,a2,a3……
a2,a3,a5,……
a1,a3,a6,……
这些数据就可以作为word2vec的输入数据了。
就把这些数据作为word2vec的训练数据,词向量维度为3,进行训练,完成后得到下面的输出
A1 (0.3,-0.5,0.1)
A2 (0.1,0.4,0.2)
A3 (-0.3,0.7,0.8)
……
An (0.7,-0.1,0.3)
就得到了每个页面的向量。
这些向量有啥意义呢?其实单个向量的意义不大,只是用这些向量可以计算一个东西——距离,这个距离是页面之间的距离,如页面a1和a2可以用欧式距离或者cos距离计算公式来计算一个距离,这个距离是有意义的,表示的是两个网页在用户浏览的过程中的相似程度(也可以认为是这两个页面的距离越近,被同一个人浏览的概率越大)。注意这个距离的绝对值本身也是没有意义的,但是这个距离的相对大小是有意义的,意思就是说,假设页面a1跟a2、a3、a4的距离分别是0.3、0.4、0.5,这0.3、0.4、0.5没啥意义,但是相对来说,页面a2与a1的相似程度就要比a3和a4要大。
那么这里就有玄机了,如果页面a1是电商公司B的主页,页面a2、a3、a4与a1的距离在所有页面里面是最小的,其他都比这三个距离要大,那么就可以认为同一个用户u浏览a1的同时,浏览a2、a3、a4的概率也比较大,那么反过来,一个用户经常浏览a2、a3、a4,那么浏览a1的概率是不是也比较大呢?从实验看来可以这么认为的。同时还可以得到一个推论,就是用户可能会喜欢a1这个页面对应的广告主的广告。
这个在实验中实际上也出现过的。这里模拟一个例子吧,如a1是匹克体育用品公司在媒体公司A上的官网,a2是湖人队比赛数据页,a3是热火队的灌水讨论区,a4是小牛队的球员讨论区。这个结果看起来是相当激动人心的。
根据这样的一个结果,就可以在广告主下单的那个页面上增加一个条件——经常浏览的相似页面推荐,功能就是——在广告主过来选条件的时候,可以选择那些经常浏览跟自己主页相似的页面的用户。举个例子就是,当匹克体育用品公司来下单的时候,页面上给它推荐了几个经常浏览页面的粉丝:湖人队比赛数据页,热火队的灌水讨论区,小牛队的球员讨论区。意思是说,目标人群中包括了经常浏览这三个页面的人。
这个功能上线后是获得过很多广告主的好评的。
这样word2vec这个算法在这里就有了第一种用途。
referer:http://itindex.net/detail/50749-%E5%AD%A6%E4%B9%A0-word2vec-%E7%AC%94%E8%AE%B0
以上的逻辑简单说是这样的,如果用户平均访问深度为5个商品,A、B两个用户经常访问a、b、c这三个商品,则可以判定这两个用户喜好是一样的,所以可以给A用户推荐B经常浏览的另外两个商品,反之一样。
于是联想到可以把这几万个职位词在搜索结果页前50名的url对应的主域拿出来,如果两个职位50个主域重合度特别高,则可以认为这两个职位是相关的。然后就乎开始爬百度了,结果同样整理成word2vec需要的格式,然后分析:
WORD1 url1 url2 …. url50
WORD2 url1 url2 …. url50
…..
WORD50000 url1 url2 …. url50
无奈所有职位重合度都很高,因为经常出现的总是那么几个网站,分不出来。。。于是打算用文本语料来试下,word2vec分析的效果,取决于语料质量。质量主要是语料选取的范围、量级和粒度。
比如好搜query为“注册会计师”的搜索结果页右侧,通过word2vec是可以找出这种关系的,但我只需要职称、职业这两个div对应的内容,其他证书、考试啥的虽然与注册会计师有关,但不是我所要的。所以如果语料选的很宽泛,会跑出来很多不需要的关联词,同时如果语料范围定的合理但量级很小,那相关职位会找的不全。综上考虑,把几万个职位词丢到百度商情,循环跑上十几轮,用跑出来的词做分析,500w。。。
安装google word2vec解析器
svn checkout http://word2vec.googlecode.com/svn/trunk/ cd trunk make
出现报错:找不到malloc.h
将word2vec几个文件中的 “#include <malloc.h>”替换成“#include <stdlib.h>”之后,再重新执行make
运行成功!
将从商情跑出来的词进行分词并删除停止词,每个词之间用空格隔开,保存为一个文件,这里的文件名为:shiyan,然后执行:./word2vec -train shiyan -output vectors.bin -cbow 0 -size 200 -window 10 -negative 0 -hs 1 -sample 1e-3 -threads 8 -binary 1
trunk ./word2vec -train shiyan -output vectors.bin -cbow 0 -size 200 -window 10 -negative 0 -hs 1 -sample 1e-3 -threads 8 -binary 1 Starting training using file shiyan Vocab size: 52346 Words in train file: 12107001 Alpha: 0.000005 Progress: 100.00% Words/thread/sec: 80.91k %
分词训练参数:
-train:输入文件
-output:输出的词向量(或聚类)
-cbow 0:0表示使用skip-gram模型(慢,对罕见词有利),1表示使用continuous bag-of-words模型(速度快)。
-size 200:每个单词的向量维度是200
-window 10:窗口大小,skip-gram通常在10附近,cbow通常在5附近。
-negative 0:采样使用hierarchical softmax方法(负采样,对常见词有利),不使用negative sampling方法(对罕见词有利)。
-sample 1e-3:采样阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。
-binary 1:1表示模型存储为二进制,0表示模型存储为文本。
还有其他一些默认参数:
-alpha:学习速率,默认为0.025
-min-count:最低频率,默认是5,如果一个词语在文档中出现的次数小于5,那么就会丢弃。
-classes 5:输出单词聚类(聚类个数为5),此时将不再输出词向量。
加载和测试这个模型:
trunk ./distance vectors.bin
Enter word or sentence (EXIT to break): seo Word: seo Position in vocabulary: 681 Word Cosine distance ------------------------------------------------------------------------ seo优化 0.719739 搜索引擎优化 0.657688 优化 0.638677 关键词 0.607671 网站seo 0.595945 sem 0.585403 seo推广 0.582900 关键字 0.572032 seo搜索引擎 0.555099 seo技术 0.552127 搜索引擎 0.537766 外贸seo 0.537455 网站推广 0.536381 网店推广 0.527872 网站优化 0.524872 seo网站推广 0.516956 外链 0.515978 搜索 0.507645 淘宝推广 0.502895 网站seo优化 0.498923 网络营销 0.498747 推广 0.497343 整站 0.497005 竞价 0.489886 内链 0.488461 网盟推广 0.487965 网站站长 0.487357 竞价推广 0.483573 优化推广 0.482869 收录 0.477189 旺道 0.476077 站外 0.471112 网站营销 0.467853 黑帽 0.460517 王通 0.460462 淘宝客 0.451625 靠前 0.445665 站长 0.439734 外贸b2c 0.436770 淘宝美工 0.435778 Enter word or sentence (EXIT to break): 软件开发 Word: 软件开发 Position in vocabulary: 592 Word Cosine distance ------------------------------------------------------------------------ 手机软件开发 0.686619 开发软件 0.613448 软件编程 0.602904 网站前端开发 0.594718 ios软件开发 0.594441 java软件开发 0.587273 ui设计 0.580842 ios开发 0.577102 前端开发 0.576923 android软件开发 0.576495 开发 0.575300 ios应用开发 0.573682 应用软件开发 0.572448 软件测试 0.571539 手机开发 0.570288 安卓软件开发 0.555979 ios 0.548380 php开发 0.543266 软件ui设计 0.540917 web前端 0.539397 手机应用开发 0.536349 app开发 0.532582 手机软件测试 0.523931 软件技术 0.523016 软件设计 0.522313 移动应用开发 0.521805 .net软件开发 0.519345 iphone软件开发 0.515472 客户端开发 0.513703 网页前端开发 0.511749 手机游戏开发 0.507798 erp开发 0.504769 嵌入式软件 0.502161 app开发工程师 0.498728 软件开发师 0.498368 c#开发 0.493418 网页前端 0.492120 html5前端开发 0.488186 ios软件工程师 0.486978 网站前端 0.485179 Enter word or sentence (EXIT to break): 设计师 Word: 设计师 Position in vocabulary: 383 Word Cosine distance ------------------------------------------------------------------------ 设计美工 0.542570 平面 0.516078 设计学徒 0.500554 ceac 0.483488 设计团队 0.478844 家具设计师 0.459778 软装设计师 0.458273 设计师实习 0.457935 手绘设计师 0.453170 acaa 0.444251 装饰设计师 0.441549 ui设计师 0.438041 施工图设计师 0.438001 家装设计师 0.433551 美工 0.433171 平面设计 0.429313 网络设计师 0.427992 珠宝设计师 0.426903 adobe 0.426485 设计实习生 0.423995 女装设计师 0.419589 主创 0.417825 电脑设计 0.411264 照明设计师 0.405545 插画师 0.404566 数码设计师 0.401514 绘 0.400261 灯光设计师 0.398222 化妆师 0.398177 设计师主管 0.398145 it项目经理 0.397077 纸样师 0.396515 近现代 0.393856 插画设计师 0.388611 概念设计 0.387966 商业摄影师 0.387836 制作学徒 0.387594 室内设计 0.387581 设计类 0.387304 android程序员 0.385852 Enter word or sentence (EXIT to break): 平面设计 Word: 平面设计 Position in vocabulary: 446 Word Cosine distance ------------------------------------------------------------------------ 广告设计 0.684518 淘宝美工 0.667863 服装设计 0.657802 美工 0.641394 影视后期制作 0.640994 电脑平面设计 0.630919 平面广告设计 0.621206 动漫设计 0.599133 影视后期 0.594395 动漫制作 0.571649 室内设计 0.570330 淘宝美工设计 0.558992 网店美工 0.553565 珠宝设计 0.548055 网页美工设计 0.546348 游戏特效 0.545785 服装打版 0.544812 动画设计 0.539909 服装制版 0.539548 网页前端设计 0.526358 电脑文秘 0.525707 ui设计 0.525259 美工设计 0.521181 设计美工 0.520906 服装打板 0.510823 影楼后期制作 0.508018 服装制板 0.505013 3d设计 0.504442 鞋类设计 0.500875 手机ui设计 0.499561 室内外设计 0.493166 seo技术 0.491319 游戏设计 0.488357 游戏特效师 0.485421 美甲 0.483693 室内设计专业 0.483351 室内装修设计 0.480742 影视后期剪辑 0.480355 室内装潢设计 0.475572 影视动画 0.474696 Enter word or sentence (EXIT to break): 摄影师 Word: 摄影师 Position in vocabulary: 1218 Word Cosine distance ------------------------------------------------------------------------ 婚纱摄影师 0.667226 化妆师 0.665565 时尚摄影师 0.622016 商业摄影师 0.605789 摄影 0.597364 家具设计师 0.579942 珠宝设计师 0.543122 动画导演 0.535288 插画师 0.535001 化装师 0.533826 婚礼策划师 0.513327 化妆造型师 0.509725 造型师 0.500360 儿童摄影师 0.498681 美容师 0.489576 音乐制作人 0.487725 发型师 0.487454 女装设计师 0.486705 瑜伽老师 0.478010 美发师 0.475100 插画设计师 0.468988 平面模特 0.468060 摄像师 0.466966 环艺设计师 0.465835 形象设计师 0.465747 私人健身教练 0.459519 拍 0.458284 淘宝摄影师 0.456123 家装设计师 0.453661 习俗 0.453126 摄影网 0.452991 时装设计师 0.452957 摄影记者 0.451351 家居设计师 0.451215 软装设计师 0.447289 瑜伽教练 0.447075 服饰设计师 0.446279 拍摄 0.438833 摄影家 0.438829 民歌 0.436176 Enter word or sentence (EXIT to break): 前端 Word: 前端 Position in vocabulary: 4791 Word Cosine distance ------------------------------------------------------------------------ 前端设计 0.543078 硬件 0.510818 java前端开发 0.501528 网络测试 0.498747 网页前端 0.481514 嵌入式软件 0.477922 .net软件开发 0.477773 数通 0.472506 后端 0.462648 软件开发 0.459761 powerpc 0.457401 基带 0.456266 web前端 0.452662 ios 0.449036 zigbee 0.447387 网络开发 0.445944 无线通讯 0.445250 软调 0.440820 前段 0.439289 运维 0.438803 网优 0.438579 软件售前 0.438544 网站前端 0.437701 c#开发 0.436066 移动前端开发 0.429779 网络协议 0.427880 uhf 0.424018 网站测试 0.423567 软件设计 0.421407 服务端开发 0.421256 开发软件 0.420388 架构工程师 0.419086 覆盖率 0.418275 ate 0.411748 嵌入式 0.409611 ios开发 0.408829 ui 0.408764 服务器开发 0.408281 应用软件开发 0.404719 网页前端开发 0.403501 Enter word or sentence (EXIT to break): 销售 Word: 销售 Position in vocabulary: 27 Word Cosine distance ------------------------------------------------------------------------ 窗帘销售 0.653045 网店销售 0.641096 商铺销售 0.627334 专卖店销售 0.617265 石材销售 0.604186 瓷砖销售 0.589053 壁纸销售 0.588842 终端销售 0.588391 轴承销售 0.586787 电子销售 0.580002 销售员 0.577832 烟酒销售 0.577183 礼品销售 0.570141 店面销售 0.568592 服装销售 0.567019 木门销售 0.563036 木材销售 0.560146 行业销售 0.558169 客车销售 0.557084 茶叶销售 0.553065 酒水销售 0.551092 家装销售 0.546795 影楼销售 0.546254 白酒销售 0.545667 灯饰销售 0.543876 网络电话销售 0.541846 童装销售 0.538494 商品销售 0.538148 家电销售 0.535868 保健品销售 0.534349 电子产品销售 0.533232 美容销售 0.532570 房产电话销售 0.528413 营销 0.523461 产品销售 0.521886 阀门销售 0.521680 业务销售 0.517095 汽车电话销售 0.516339 化妆品销售 0.515881 网站销售 0.513903 Enter word or sentence (EXIT to break): 人事行政 Word: 人事行政 Position in vocabulary: 6302 Word Cosine distance ------------------------------------------------------------------------ 人资 0.541588 酒店审计 0.514241 人力资源主任 0.513246 行政人事部 0.511530 物业管理客服 0.506943 后勤文员 0.504574 市场营销部 0.504412 品质技术员 0.504403 呼叫中心质检 0.499803 it文员 0.499135 财务秘书 0.496873 文控文员 0.496536 劳资专员 0.491849 化妆品客服 0.490731 人事行政部 0.490545 行政岗位 0.482668 行政人事总监 0.480326 仓管主管 0.477785 出纳人员 0.476226 行政人事文员 0.473426 酒店销售经理 0.473005 总账会计 0.472737 市场销售部 0.472287 物业文员 0.470851 qe工程师 0.470445 部门文员 0.470165 内衣跟单 0.468921 酒店质检 0.468573 ktv经理 0.467774 物业公司经理 0.466842 工厂会计 0.466649 酒店接待员 0.464138 物业客服人员 0.463045 商场财务 0.462976 酒店采购员 0.461506 服装企划 0.459963 汽车销售总监 0.458433 技术文员 0.457545 招商部经理 0.457445 商场客服 0.456199 Enter word or sentence (EXIT to break): java Word: java Position in vocabulary: 88 Word Cosine distance ------------------------------------------------------------------------ php 0.758849 c# 0.722526 jsp 0.688918 j2ee 0.684869 asp 0.643252 javascript 0.641425 c++ 0.635134 net 0.630710 python 0.629371 delphi 0.608799 flex 0.600048 web 0.584956 多线程 0.581113 javaweb 0.578110 javaee 0.568087 android 0.568071 ios 0.563578 vc 0.558348 linuxc 0.555954 c 0.554644 aspnet 0.549799 struts2 0.546701 ajax 0.545580 mvc 0.541996 axis 0.540643 vb 0.537916 linux 0.536819 android开发 0.536751 html5 0.531652 hadoop 0.530698 cxf 0.530626 hibernate 0.528411 html 0.526316 java2 0.525255 extjs 0.523899 ruby 0.523172 php开发 0.522322 web前端 0.517817 嵌入式 0.513669 c#开发 0.513444
随便敲几个词,结果靠谱,但是结果貌似无法导出来。好在python有实现word2vec功能的库:gensim,在python自然语言处理常用的库,依赖于NumPy和SciPy,内嵌word2vec,于是安装gensim
执行:sudo pip install gensim
安装成功后,配置python下word2vec训练模型:
#coding:utf-8 import logging import os.path import sys import multiprocessing from gensim.models import Word2Vec from gensim.models.word2vec import LineSentence if __name__ == '__main__': program = os.path.basename(sys.argv[0]) logger = logging.getLogger(program) logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s') logging.root.setLevel(level=logging.INFO) logger.info("running %s" % ' '.join(sys.argv)) # check and process input arguments if len(sys.argv) < 4: print globals()['__doc__'] % locals() sys.exit(1) inp, outp1, outp2 = sys.argv[1:4] model = Word2Vec(LineSentence(inp),size=200, window=10, min_count=5,workers=multiprocessing.cpu_count()) # trim unneeded model memory = use(much) less RAM #model.init_sims(replace=True) model.save(outp1) model.save_word2vec_format(outp2, binary=False)
执行:python dp.py shiyan.txt shiyan.txt.model shiyan.txt.vector
➜ dp python dp.py shiyan shiyan.model shiyan.vector 2015-08-09 01:12:23,883: INFO: running dp.py shiyan shiyan.model shiyan.vector 2015-08-09 01:12:23,888: INFO: collecting all words and their counts 2015-08-09 01:12:23,889: INFO: PROGRESS: at sentence #0, processed 0 words, keeping 0 word types 2015-08-09 01:12:23,948: INFO: PROGRESS: at sentence #10000, processed 29137 words, keeping 4567 word types 2015-08-09 01:12:24,009: INFO: PROGRESS: at sentence #20000, processed 58144 words, keeping 7218 word types ... 2015-08-09 01:12:42,947: INFO: PROGRESS: at sentence #2820000, processed 9432488 words, keeping 185672 word types 2015-08-09 01:12:43,013: INFO: PROGRESS: at sentence #2830000, processed 9468107 words, keeping 186243 word types 2015-08-09 01:12:43,037: INFO: collected 186343 word types from a corpus of 9480079 raw words and 2833228 sentences 2015-08-09 01:12:43,293: INFO: min_count=5 retains 52345 unique words (drops 133998) 2015-08-09 01:12:43,293: INFO: min_count leaves 9273773 word corpus (97% of original 9480079) 2015-08-09 01:12:43,434: INFO: deleting the raw counts dictionary of 186343 items 2015-08-09 01:12:43,461: INFO: sample=0 downsamples 0 most-common words 2015-08-09 01:12:43,461: INFO: downsampling leaves estimated 9273773 word corpus (100.0% of prior 9273773) 2015-08-09 01:12:43,462: INFO: estimated required memory for 52345 words and 400 dimensions: 204145500 bytes 2015-08-09 01:12:43,463: INFO: constructing a huffman tree from 52345 words 2015-08-09 01:12:45,750: INFO: built huffman tree with maximum node depth 21 2015-08-09 01:12:45,780: INFO: resetting layer weights 2015-08-09 01:12:46,985: INFO: training model with 4 workers on 52345 vocabulary and 400 features, using sg=1 hs=1 sample=0 and negative=0 2015-08-09 01:12:46,985: INFO: expecting 2833228 examples, matching count from corpus used for vocabulary survey 2015-08-09 01:12:47,986: INFO: PROGRESS: at 0.74% examples, 60270 words/s 2015-08-09 01:12:48,986: INFO: PROGRESS: at 1.33% examples, 52628 words/s 2015-08-09 01:12:49,993: INFO: PROGRESS: at 2.00% examples, 52100 words/s ...... 2015-08-09 01:15:06,579: INFO: PROGRESS: at 98.70% examples, 65500 words/s 2015-08-09 01:15:07,583: INFO: PROGRESS: at 99.40% examples, 65545 words/s 2015-08-09 01:15:08,294: INFO: reached end of input; waiting to finish 12 outstanding jobs 2015-08-09 01:15:08,329: INFO: training on 9480079 raw words took 141.3s, 65611 trained words/s 2015-08-09 01:15:08,329: INFO: saving Word2Vec object under shiyan.model, separately None 2015-08-09 01:15:08,330: INFO: not storing attribute syn0norm 2015-08-09 01:15:08,330: INFO: not storing attribute cum_table 2015-08-09 01:15:08,330: INFO: storing numpy array 'syn0' to shiyan.model.syn0.npy 2015-08-09 01:15:08,536: INFO: storing numpy array 'syn1' to shiyan.model.syn1.npy 2015-08-09 01:15:10,605: INFO: storing 52345x400 projection weights into shiyan.vector
通过gensim来加载和测试这个模型
#coding:utf-8 import gensim,sys query = sys.argv[1] model = gensim.models.Word2Vec.load_word2vec_format("shiyan.vector", binary=False) for line in model.most_similar(query.decode('utf8'),topn=40): print line[0],line[1]
执行:python xiangsi.py 软件开发
➜ dp python xiangsi.py 软件开发 软件测试 0.644203305244 软件编程 0.641749203205 ios软件开发 0.590277433395 安卓软件开发 0.58010995388 ui设计 0.577515244484 android软件开发 0.571004211903 前端开发 0.569640994072 ios开发 0.568329393864 ios 0.5585090518 开发软件 0.554177343845 手机软件开发 0.554124116898 iphone开发 0.551974534988 php开发 0.548898220062 ios应用开发 0.543795704842 软件技术 0.543053269386 前端 0.538294553757 手机软件测试 0.535252809525 ios软件工程师 0.535138607025 seo技术 0.534423351288 游戏软件 0.533400118351 app工程师 0.532044112682 java软件开发 0.531271100044 游戏设计 0.531262934208 美工设计 0.526203334332 动漫设计 0.525193333626 php网站制作 0.523901283741 app开发工程师 0.523256838322 嵌入式软件 0.522759318352 c#开发 0.520873367786 游戏特效 0.508026242256 网页美工设计 0.503576040268 动漫制作 0.502809166908 网络工程 0.502703726292 计算机软件 0.500763297081 iphone软件开发 0.500563025475 java 0.500288248062 手机游戏开发 0.498192459345 erp开发 0.493500709534 影楼后期制作 0.487614810467 web前端 0.485604643822 应用软件开发 0.485008656979 网络管理 0.484756171703 移动前端开发 0.484711945057 策划人员 0.48280531168 硬件 0.482684314251 美工设计师 0.48266467452 动漫设计师 0.481665492058 网络营销 0.481587409973 网页前端开发 0.481107622385 软件技术支持 0.480998277664 it 0.480265170336 手机开发 0.479971259832 javaweb开发 0.478168129921 安卓 0.477316766977 建网站 0.475247681141 计算机硬件 0.474990665913 android游戏开发 0.474090397358 网页游戏开发 0.473975598812 程序开发 0.472855627537 安卓手机开发 0.472422420979 软件界面设计 0.472275555134 javaee 0.470984250307 开发 0.470956414938 平面广告设计 0.470800548792 影视后期 0.470746666193 电脑平面设计 0.470167994499 软件设计 0.466253072023 android开发人员 0.46543353796 影视后期制作 0.463842242956 c语言程序员 0.463717520237 .net软件开发 0.460093021393 编程语言 0.458144903183 php软件开发 0.457925081253 电脑软件 0.4575317204 3d美工 0.455626904964 ui工程师 0.455027461052 phpadmin 0.454506158829 ipd 0.454408198595 app开发 0.454272389412 三维动画 0.454136043787 三维动画设计 0.453771173954 编程工程师 0.453233599663 ui 0.452533066273 计算机行业 0.452187091112 嵌入式 0.452162027359 网站前端开发 0.451245456934 电子市场 0.449694275856 flash动画设计 0.4491943717 html工程师 0.447791397572 软件ui设计 0.447774231434 二维动画制作 0.446723341942 淘宝运营 0.443565249443 网站前端 0.44346344471 软件销售 0.443296849728 安卓程序员 0.442745238543 电商运营 0.442650645971 php网站开发 0.441696703434 底层 0.441174566746 unity3d开发 0.441150724888 计算机编程 0.440518915653
之后可以根据表中的职位词和跑出的相关词组成一行字符串,加上id,不同职位交叉计算相关词的重合度,如果>50%都算是相同职类的。
总的来讲word2vec对于SEO的使用成本挺高的,需要不断修改很多东西,如分词的词典、word2vec参数设置、大量语料的抓取等,但过了这个坎,还是可以结合SEO做很多东西。
参考资料:
http://www.cnblogs.com/hebin/p/3507609.html
http://radimrehurek.com/gensim/models/word2vec.html
文章来源:GoGo闯博客
2016-09-29 下午11:24
word2vec太难搞了,
来自外部的引用: 1