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 分析而創建的,但目前它為我提供了報告中最重要單詞的值。但是,我只需要關鍵字 ["digital","hardware","innovation","software","analytics","data","digitalisation","technology"] 的 TFIDF 值,有沒有辦法我可以指定只查找這些術語的 tfidf 值嗎?
我對編程非常陌生,幾乎沒有經驗,我正在為我的論文做這個。
任何幫助是極大的贊賞。
uj5u.com熱心網友回復:
您已定義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"].
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475288.html
標籤:机器学习 nlp 关键词 tf-idf tfidfvectorizer
