本文主要介绍一个Word2vec和Doc2vec应用示例:用Word2vec做词的相似度计算和用Doc2vec做句子的相似度计算。
该示例主要包含两部分:
1.训练Word2vec模型和Doc2vec模型;
2.用训练好的Word2vec模型和Doc2vec模型分别进行词相似度计算和句子相似度计算。
本例中采用的数据是13万多本中文科技图书的一级目录标题,将图书目录标题按行存储,每行是一个标题,用中文分词工具HanLP进行分词。分词结果如下如所示:
将分词的结果传入Word2vec模型和Doc2vec模型训练词的word2vec和目录标题的doc2vec。Word2vec模型和Doc2vec模型训练使用的Java版本实现的,可以从我的GitHub上获取(Java版本Word2vec和doc2vec)。
训练好Word2vec模型和Doc2vec模型之后,就可以将模型加载进内存中,然后对输入的词语计算跟它最相近的TOP10个词(按降序排序),对输入的标题计算跟它最相近的TOP10个标题(按降序排序)。
相似度计算公式采用的是余弦相似度ÿ