import pandas as pd
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer
import path
import re
with open(r'C:\Users\maxim\PycharmProjects\THESIS\data\santander2020_1.txt', 'r') as file:
data = file.read()
dataset = [data]
tfIdfVectorizer=TfidfVectorizer(use_idf=True, stop_words="english"
, lowercase=True,max_features=100,ngram_range=(1,3))
tfIdf = tfIdfVectorizer.fit_transform(dataset)
df = pd.DataFrame(tfIdf[0].T.todense(), index=tfIdfVectorizer.get_feature_names(), columns=["TF-IDF"])
df = df.sort_values('TF-IDF', ascending=False)
print (df.head(25))上述代码是我为对年度报告进行工作队-以色列国防军分析而创建的,但目前它给我的是报告中最重要的词语的价值。然而,我只需要TFIDF值的关键字“数字”、“硬件”、“创新”、“软件”、“分析”、“数据”、“数字化”、“技术”,我是否可以指定一种方法只查找这些术语的tfidf值?
我对编程很陌生,经验很少,我这么做是为了我的论文。
任何帮助都是非常感谢的。
发布于 2022-05-14 17:12:56
您已经将tfIdf定义为tfIdf = tfIdfVectorizer.fit_transform(dataset)。
因此,tfIdf.toarray()将是一个二维数组,其中每行引用一个文档,行中的每个元素都引用相应单词的TF分数。要知道每个元素代表的单词是什么,您可以使用.get_feature_names()函数来打印单词列表。然后,您可以使用这些信息创建从单词到分数的映射(dict),如下所示:
wordScores = dict(zip(tfIdfVectorizer.get_feature_names(), tfIdf.toarray()[0]))
现在假设您的文档包含“数字”一词,并且您想知道它的TF-以色列国防军得分,您可以简单地打印wordScores["digital"]的值。
https://stackoverflow.com/questions/72241814
复制相似问题