基于内容的协同过滤推荐算法 hashmap中文分词 TF-IDF中文分词 基于用户/项目的协同过滤推荐算法代码实现

Cindy ·
更新时间:2024-11-15
· 828 次阅读

本文主要介绍基于内容的协同过滤推荐算法的实现原理、实现过程、实现代码,本文中的基于内容是指基于文章标题、文章内容等文本,基于文本内容的推荐与根据项目的评分、收藏记录推荐不同,项目的评分、收藏记录推荐可直接将评分、收藏记录数字化,便于计算机处理,但是文本内容是文字,需要有一个将内容数字化或者向量化的过程,本文主要介绍通过hashmap算法和TF-IDF中文分词算法实现文本内容关键字的提取、数字化、向量化。

一、基于内容的协同过滤推荐算法实现原理

基于内容的协同过滤推荐算法可分为基于用户和基于项目两种,这两种的算法原理前文已经详细讲解,此处不再详述,有一点不同的是构建用户-文本内容矩阵或者文本内容-用户矩阵,即将文本内容数字化表示,文本内容可能文字很多,那么就需要提取文本内容的关键词,用关键词来代表文本,文本内容关键词的提取主要是hashmap算法和TF-IDF中文分词算法,后者更准确和使用更多。

1、hashmap算法

首先需要使用HanLP(HanLanguageProcessing)算法实现文本内容的分词,HanLP是一个自然语言处理工具,可百度百科不再详述,分词的结果是N个分词词语和该词语在文本内容中的权重,然后计算分词词语的hash值,hash值是唯一的,由一串数字组成,接着分别对分词词语的hash值加权,加权后进行合并,即将所有分词词语的加权hash值进行合并,然后是将合并的数字字符串进行降维,变成01表示的字符串,形成我们最终的simhash签名,我们使用的simhash是局部敏感哈希,这个算法的特点是只要相似的字符串只有个别的位数是有差别变化,那这样我们可以推断两个相似的文本,文本相似度的采用海明距离公式计算simhash签名值的距离,距离越小越相似。

2、TF-IDF中文分词算法

TF(Term Frequency)意思是词频,TF等于某个词在某一个文本内容中出现的次数除以该文本内容中出现最多的词的出现次数,即一个词在文中出现的次数,一个词在文章中出现很多次,那么这个词肯定有着很大的作用,但是有些一词,例如:‘的’,‘是’这样的词,这样的词显然是没有太大作用,那么就需要去掉这些高频词的干扰,这里使用IDF(Inverse Document Frequency)意思是逆文档频率,也就是权重,IDF等于文本内容总数量除以包含某个词的文档的总数量加1然后再取对数。一个词的TF与IDF的乘积得到词的TF-IDF值,这个值越大,表示词对文本内容的重要性越高,这样就可以在文本内容中提取TopN个关键词,然后根据两个文本内容中关键词的相似度作为两个文本内容的相似度。

二、代码实现

本文的实现代码为java语言开发。
下载地址:https://download.csdn.net/download/u011291472/11971769
该程序仅供学习和测试使用。

作者专业长期研究各种协同过滤推荐算法,欢迎留言、私信互相交流学习,后续会不断更新不同的协同过滤推荐算法,欢迎关注。


作者:linge511873822



idf tf-idf 协同过滤 推荐算法 hashmap 分词 算法

需要 登录 后方可回复, 如果你还没有账号请 注册新账号