使用TF-IDF和余弦公式计算文本相似度
2018.03.18 21:36*字数 967 阅读 171 评论 0 赞 4
1 个想法
要计算相似度,首先将文本转换为可计算的数字。
一个比较简单的方法就是以所有文章中的单词作为坐标。 在一篇文章中,将对应单词的词频作为坐标上的值,一篇文章可以根据词频转换为词向量——用 忘掉向量和相似度:可以使用距离公式和余弦直接地。
更进一步:词频加权太简单了,TF-IDF更有代表性。 使用TF-IDF相当于考虑了单词的重要性,计算出的相似度效果是有价值的。
追问:为了更准确,需要考虑词之间相对位置的影响,这涉及到语义模型,本文不涉及。
2 加工流程
预制作过程:已经爬取了大约100条文本并存入数据库,通过访问数据库可以直接访问对应的文本。
2.1 首先将文章分词
直接使用著名的jiba分词,并使用哈尔滨工业大学的停用词表+一些手动组织的停用词来剔除无效词。
最后:将每篇文章转换为带有分隔符的单词序列(str),并将单词序列合并到列表变量中输出。
(): = []('C:\\Users\\chai\\\\哈尔滨工业大学禁用词汇列表.txt'): = + list(line)(): = []tent.find().限制(5):