进口mathimport jsonimport时间#结果保存词典结果={}#缓存缓存缓存= {}def simicos (str1 str2):\u201C\u201D字符串余弦相似度算法实现,添加缓存存储,减少了时间消耗引起的分词计算效率:param str1:字符串比较1:param str2:字符串比较2:返回:相似价值\u201D\u201C全球cacheif (str1): #或使用缓存的关键方法也可以cut_str1 =缓存(str1)其他:cut_str1 = [w w t (str1)如果\u2019t或网上的t)缓存[str1] = cut_str1if (str2): cut_str2 =缓存(str2)其他:cut_str2 = [w w t (str2)如果\u2019t或网上的t)缓存(str2) = cut_str2all_words =组(cut_str1 + cut_str2) freq_str1 = [cut_ x (x)的all_words] freq_str2 = [cut_ (x) all_words) sum_all = x的总和(map(λz, y, z * y, freq_str1, freq_str2)) sqrt_str1 =(总和(freq_str1 x * * 2)) sqrt_str2 =(总和(freq_str2 x * * 2))试题:返回sum_all \/ (sqrt_str1 * sqrt_str2)除了ZeroDivisionError: returndef计算(keyword_list):\u201D\u201C使用递归计算和分类方法优点:简单的代码,容易理解的缺点:python的默认最大递归深度是1000,之后会发生一个错误:param keyword_list:关键字列表分类:返回:\u201C没有一个\u201D\u201Cfilter_word =[] #获得第一个词作为母亲muci = keyword_(0) #用这个词分为结果[muci] = []打印(len (keyword_list)),而keyword_list: #提取下一个单词列表中的千瓦= keyword_(0)思米= simicos (muci千瓦)结果[muci] .
append(千瓦)结果[muci](\u201C总\u201D)+ = 1保持- = 1:keyword_(千瓦)如果千瓦= =最后keyword_list: #如果是最后一个total_classify + = 1打印(\u201C机密% d,保持% d % (total_classify,保持))muci = keyword_(0)保持- = 1的结果[muci] ={\u201C总\u201D:0,\u201C名单\u201D:[]}如果keyword_list:去年= keyword_list [1]: breakdef result_filter (result_dict辟探= 10):\u201C\u201D\u201C结果过滤器过滤函数会等待很多类别使用这种方法。
我们只是出来直接过滤:param result_dict:是的过滤分类结果:param辟探:相关词汇的数量大于等于该数的分类将被保存返回:过滤后的结果\u201D\u201C\u201Cretfilter ={},价值观result_ (): retfilter[项目]= valuesreturn retfilterif __name__ = = \