传统的计算词与词之间相似的算法有: tf-idf,相似余弦等,而word2vec是通过语义分析来计算相似度,跟前两个差别较大,比如: 贸易站 与 特朗普,如果用前两种算法相似度肯定很差,或者完全不同。而用word2vec,他们两者是有很大关系的,非常接近的。
ansj_seg 是java版本的分词工具,效果还行,之所以介绍它是因为,使用word2vec的前提是需要一个分词工具,下面我们来手动操作一下:
从网上找了一个小的java工程,https://github.com/YuyuZha0/word2vec
再从网上下载一个中文语料库:https://pan.baidu.com/s/1gdJJ1FP#list/path=%2FML%2F%E4%B8%AD%E6%96%87%E8%AF%AD%E6%96%99%E5%BA%93&parentPath=%2FML
再建立这么一个文件夹,把语料库拷进该文件夹
先执行FitExample 来进行训练
再执行RestoreExample 来做实验,你将得到如下结果
感觉很神奇,其实它还有其他的API,欢迎去探索。
原文地址:http://blog.51cto.com/12597095/2105085