项目实训工作记录(二)赵乐乐 201800301115
1.词向量搜索
对于最基础的基于腾讯800万词向量寻找同义词,其核心在于搜索匹配,乃是输入一个同义词后,通过词向量匹配,从800万词向量库中找到正确的同义词,其比较方式为求余弦值,因为同义词之间词向量相差小,夹角小,利用余弦值来衡量夹角大小。
2.搜索过程中的问题分析
因为词向量库太大,如果挨个查询与输入词进行余弦值比较,那么需要很大的计算量,使得查询的效率很低,无法满足用户的查询要求。
3.基于效率的算法设计
3.1概要
为了提升效率,显然要改变最基础的查询方式,设计一种提升效率的查询算法。
两位小组成员进行了过滤处理,以过滤掉没有同义词的那些词向量。
我提出了聚类的想法,与另一位小组成员进行了沟通与商讨,并决定分别用代码实现,其中,我负责用Python语言完成代码工作。
3.2聚类算法的具体设计
1.使用聚类的方式将800万词向量存入数据库
2.具体工作流程如下:
2.1设置聚类阈值角度a,对应余弦值
2.2按序读词向量,每一个词向量与之前的词向量类的中心向量比较,若满足阈值条件加入该类,否则以该向量为中心向量建立新类。
3.从数据库搜索同义词
4…具体工作流程如下:
4.1搜索时以2a对应的余弦值为搜索范围,找到所有对应范围内的中心向量对应的类,并依次检索,找到满足条件b范围的所有词向量作为同义词输出。