余弦相似度,是一种通过判断两个向量的夹角来判断其相似性的数学方法。
举个栗子:
A:中国工商银行北京分部北京支行
B:中国招商银行广西分部桂林支行
我们用“余弦相似度”的办法来判断这两个句子的相似性
1、分词!
第一步要做的肯定是分词,把一个句子分成一组一组的散词,分词一般我们会用现成的语料库,比如结巴分词是吧,传说中的最好用的中文分词模块包。如果不是专业性特别强的方向,足矣,如果是专项的,比如医学、金融学、药学等专业相关,那肯定得自己构建一套自己的分词系统,不过这些网上也是一堆一堆的。怎么分词,待会咱们代码见!
2、词转向量
假设我们已经分好了词:
A:中国、工商银行、北京、分部、北京、支行
B:中国、招商银行、广西、分部、桂林、支行
这样我们就有了一个局部语料库,bags=['中国', '工商银行', '招商银行', '北京', '广西','支行','桂林', '分部'],这是个有序集合(最好是有序)
['中国', '工商银行', '招商银行', '北京', '广西','支行','桂林', '分部']
对于A而言,
向量为: [1 1 0 2 0 1 0