相关搜索词的一种粗排方法
2017-06-16 20:19
127 查看
源自一次未完成的实验,因为日志里面查询词实在太少了。
word2vec下载地址:http://download.csdn.net/detail/hortond/8095703
解压之后执行make。
下载点评头条内容,contents.txt文件
内容进行分词,需要安装jieba分词:pip install jieba
#! /usr/bin/env python
#coding=utf-8
import jieba
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
f = open('contents.txt', 'rb')
line = f.readline()
no = 1
while line:
seg_list = jieba.cut(line, cut_all=False)
print '\t'.join(seg_list)
line = f.readline()
no += 1
f.close()
生成contents_cut.txt文件
生成
使用python gensim模块加载对应的词向量,首先pip install gensim,然后:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from gensim.models import KeyedVectors
model = KeyedVectors.load_word2vec_format("vectors.bin", binary=True, unicode_errors="ignore")
然后就可以看到对应的词向量和相似度了:
model[u"男人"]
model.similarity(u"男人",u"女人")
可以算出词向量并非单位向量,并且长度不是固定值
词向量按单位向量进行归一,然后完整查询进行分词,每个词按照idf加权向量叠加,最后再按单位向量进行归一。
为什么归一为单位向量,因为这时余弦相似度和欧几里得距离是相关的了。
最后用kd树取近邻法,取出top k,再取更进一步的特征做精排,出相关搜索的词。
word2vec下载地址:http://download.csdn.net/detail/hortond/8095703
解压之后执行make。
下载点评头条内容,contents.txt文件
内容进行分词,需要安装jieba分词:pip install jieba
#! /usr/bin/env python
#coding=utf-8
import jieba
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
f = open('contents.txt', 'rb')
line = f.readline()
no = 1
while line:
seg_list = jieba.cut(line, cut_all=False)
print '\t'.join(seg_list)
line = f.readline()
no += 1
f.close()
生成contents_cut.txt文件
生成
使用python gensim模块加载对应的词向量,首先pip install gensim,然后:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from gensim.models import KeyedVectors
model = KeyedVectors.load_word2vec_format("vectors.bin", binary=True, unicode_errors="ignore")
然后就可以看到对应的词向量和相似度了:
model[u"男人"]
model.similarity(u"男人",u"女人")
可以算出词向量并非单位向量,并且长度不是固定值
词向量按单位向量进行归一,然后完整查询进行分词,每个词按照idf加权向量叠加,最后再按单位向量进行归一。
为什么归一为单位向量,因为这时余弦相似度和欧几里得距离是相关的了。
最后用kd树取近邻法,取出top k,再取更进一步的特征做精排,出相关搜索的词。
相关文章推荐
- 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍
- u盘挂载中文乱码一种不彻底方法,xubuntu如何搜索可能解决方法
- 【厉害了FPGA】Verilog实现接收帧数据的一种方法(帧数据同步搜索检测)
- 【笔记】人工智能 一种现代方法 人工智能 一种现代方法 第6章 用搜索树对问题求解
- 索引截断搜索的一种方法
- 人工智能一种现代的方法 --第3章 通过搜索进行问题求解
- 对JavaScript的全文搜索实现相关度评分的功能的方法
- 二分搜索 一种比较完美的实现方法
- 一种高效的搜索结果多层聚类方法
- 对JavaScript的全文搜索实现相关度评分的功能的方法
- 近日探得用C++将二进制数据存储到XML文件的方法,由于在研究时,未得到网上其他同仁的帮助(网上搜索了半天没有相关资料,只有.NET的),在这里不敢独享,给别的同仁在搜索时能够搜索到相关资料,也算是绵薄之力! )
- 教你另类方法刷百度相关搜索
- 《人工智能——一种现代方法》(第二版)【第3章 用搜索法对问题求解】小结
- 一种字符串搜索方法
- 人工智能 一种现代方法 第4章 超越经典搜索
- 《计算机视觉-一种现代方法(第2版)》读书笔记六:应用之图像搜索和检索
- 一种通过GPS判断手机漫游状态实现自动搜索连接服务商的方法
- 谷歌google搜索打不开、谷歌gmail邮箱及相关服务无法登录的解决的方法
- [转载] 人工智能:一种现代方法——第3章 用搜索法对问题求解
- ElasticSearch47:初识搜索引擎_搜索相关参数梳理以及bouncing results问题解决方法