赞
踩
目录
TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)算法是一种用于信息检索与文本数据挖掘的常用加权技术。它用统计学方法评估一个词对某篇文章的重要程度,常用来提取文章的关键词,算法简单高效,因此常用于信息检索的粗排阶段。
TF-IDF算法的核心思想是通过统计的方法,评估一个词对一个文件集或者语料库的重要程度。一个词的重要程度跟它在文章中出现的次数成正比,跟它在语料库出现的次数成反比。这种计算方式能有效避免常用词对关键词的影响,提高了关键词与文章之间的相关性。
-
- from sklearn.feature_extraction.text import TfidfVectorizer
- import pandas as pd
-
- date = open(r'task2_1.txt','r') #读取文件
- lines = date.readlines() #读取文件所有行,并将他们存储在名为‘lines’的列表中
-
- vectorizer = TfidfVectorizer() #创建一个 TfidfVectorizer 对象:
- tfidf = vectorizer.fit_transform(lines) #使用 TfidfVectorizer 对文本进行 TF-IDF 变换
- print('tfidf',tfidf)
-
- wordlist = vectorizer.get_feature_names_out() #获取 TF-IDF 变换后的特征词列表
- print('特征词列表wordlist:',wordlist)
-
- df = pd.DataFrame(tfidf.T.todense(),index=wordlist) #创建一个 Pandas DataFrame 来存储 TF-IDF 矩阵,索引为特征词
- print('df:',df)
-
- featurelist = df.iloc[:,1].to_list() #将一个 Pandas DataFrame(通常用于存储表格数据)中的某一列提取出来,并将其转换为一个 Python 列表。
-
- resdict = {} # 创建一个空字典 resdict,该字典将用于存储 wordlist 中的元素作为键
- for i in range(0,len(wordlist)): # 遍历wordlist 列表中的元素
- resdict[wordlist[i]] = featurelist[i]
- resdict = sorted(resdict.items(),key=lambda x: x[1],reverse=True) # 将字典转换为一个包含键-值对的列表,每个键-值对表示为一个元组。
- print(resdict)
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。