我创建了一个 TF-IDF 代码来分析年度报告,我想知道特定关键字的重要性

I created a TF-IDF code to analyze an annual report, I want to know the importance of specific keywords

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))

上面的代码是我创建的,用于对年度报告进行 TF-IDF 分析,但是目前它正在为我提供报告中最重要的单词的值。但是,我只需要关键字的 TFIDF 值 ["digital","hardware","innovation","software","analytics","data","digitalisation","technology"],有没有一种方法我可以指定只查找这些的 tfidf 值条件?

我对编程很陌生,经验很少,我正在为我的论文做这个。

非常感谢任何帮助。

您已将 tfIdf 定义为 tfIdf = tfIdfVectorizer.fit_transform(dataset)

所以 tfIdf.toarray() 将是一个二维数组,其中每一行代表一个文档,行中的每个元素代表相应单词的 TF-IDF 分数。要知道每个元素代表什么词,您可以使用 .get_feature_names() 函数来打印一个词列表。然后你可以使用这些信息来创建一个从单词到分数的映射(dict),就像这样:

wordScores = dict(zip(tfIdfVectorizer.get_feature_names(), tfIdf.toarray()[0]))

现在假设您的文档包含单词“digital”并且您想知道它的 TF-IDF 分数,您可以简单地打印 wordScores["digital"].

的值