python中文相似度_基于TF-IDF、余弦相似度算法实现文本相似度算法的Python应用

7c07ac85-a2b0-4d05-8ef6-c4bdf71fc8ac

基于TF-IDF算法、余弦相似度算法实现相似文本推荐——文本相似度算法,主要应用于文本聚类、相似文本推荐等场景。

设计说明

使用jieba切词,设置自定义字典

使用TF-IDF算法,找出文章的关键词;

每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(待优化:为了避免文章长度的差异,可以使用相对词频,);

生成两篇文章各自的词频向量;

计算两个向量的余弦相似度,值越大就表示越相似。

实现说明

1)初始化

需要对原始文档做些简单的处理,在预处理结果文件中每一行记录一个文档,文档ID与文档内容通过一定分隔符分割(比如以:::间隔),写入txt文档,当然并非一定如此处理,此处可以根据实际使用,调整代码实现。

我选取了五则新闻,其中1,2,3为房地产板块新闻,4,5为NBA板块新闻。

dd649e40c60e4c01bd7619759d82bb38

原始文本预处理

其余初始化内容详见代码注释。

class DocumentSimilarity:

def __init__(self):

#停词字典路径

self.stopword = 'Cstopword.dic'

#原始文档路径,每一行一个文档,文档ID与文档内容以:::间隔

self.DocumentFilePath = 'Document.txt'

#切词结果存放路径

self.CutWordFilePath = 'CutWordNews.txt'

#每个文档选取关键词个数

self.KeyWordsNum = 10

#推荐相似文档个数

self.DocumentSimilarityNum = 6

#切词结果,格式为{文档ID:切词结果,……}

self.CutWordDict = {}

#文档关键词字典,格式为{文档ID:{关键词:TF-IDF值,……},……}

self.DocumentKeywords = {}

#文档词频字典,格式为{文档ID:{切词:词频,……},……}

self.WordsFrequenc

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值