tf-idf 余弦相似度
几个月前,我下载了几千篇计算机科学论文的元数据,以便尝试编写一个迷你推荐引擎来告诉我接下来应该读什么论文。
由于我没有任何人可以阅读每篇论文的数据,因此排除了协作过滤方法,所以我认为我可以尝试基于内容的过滤。
让我们快速检查一下基于内容过滤的Wikipedia定义 :
在基于内容的推荐器系统中,关键字用于描述项目,并且用户配置文件用于指示该用户喜欢的项目类型。
换句话说,这些算法尝试推荐与用户过去喜欢(或正在检查)的商品相似的商品。
我们将专注于算法中相似项目的查找,我们将从根据其标题计算项目的相似度开始简单。 如果我们使用论文的全文或至少使用摘要,则可能会得到更好的结果,但数据不那么可用。
我们将采用以下方法来计算任何两对论文之间的相似性:
for each paper:
generate a TF/IDF vector of the terms in the paper's title
calculate the cosine similarity of each paper's TF/IDF vector with every other paper's TF/IDF vector
使用Python scikit-learn库非常容易做到这一点,而我实际上已经完成了该过程的第一部分,同时