第一篇:https://blog.csdn.net/qq_34333481/article/details/84105246
第二篇:https://blog.csdn.net/qq_34333481/article/details/84235921
一个可以运行的例子
'''all_dict = dict() # 每个单词在所有文章中出现的次数。其每个键的值是一直在+1的。
temp_dict = dict()
# 记录当前这一篇文章中出现的所有单词,因为处理过程对每篇文章进行遍历,所以需要一个变量来记录当前文章的一些值。
# 即它的所有键的值为1.
'''
import math
all_dict = dict() # 在for循环外面,可看作全局变量
total = 0 # 记录文章的个数。
arcticle_list = ['张三','李四','张李'] # 看作三篇文章,每篇文章两个单词。
for article in arcticle_list:
total += 1
temp_list = list()
for word in article:
temp_list.append(word)
words = set(temp_list) # 当前文章包含的单词。
temp_dict = dict() # 在for循环里面,看作局部变量。每次循环都从0开始。
for word in words:
temp_dict[word] = 1 # 当前文章的单词转换为 单词:1 的字典。
for key in temp_dict:
# print(key)
num = all_dict.get(key, 0) # 只有这一步是需要逻辑思考一下的。如何把当前文章的单词a 和之前文章的单词a合并到一起
# 通过get()方法取出已经保存的值,然后加1,便完成了当前文章中对单词a的处理。
all_dict[key] = num + 1
print(all_dict)
print(total)
idf_dict = dict() # idf字典
for key in all_dict:
w = key
p = '%.10f' % (math.log10(total / (all_dict[key])))
idf_dict[w] = p
print(idf_dict)