iT邦幫忙

0

如何用特定條件找出TF-IDF的值和文字

from sklearn.feature_extraction.text import CountVectorizer

from sklearn.feature_extraction.text import TfidfTransformer

t1= "john cat "
t2="john dog"
t3="john cat eat fish"

i=0
#將文件中的詞語轉換為詞頻矩陣
vectorizer = CountVectorizer()
#計算個詞語出現的次數
X = vectorizer.fit_transform([t1,t2,t3])
#獲取詞袋中所有文件關鍵字
word = vectorizer.get_feature_names()
print ("word =", word )
#查看詞頻結果
print ("BOW=", X.toarray())
#類調用
transformer = TfidfTransformer()
#將詞頻矩陣X統計成TF-IDF值
tfidf = transformer.fit_transform(X)
#查看資料結構 tfidf[i][j]表示i類文件中的tf-idf權重
print ("tfidf=", tfidf.toarray())

size=tfidf.size
a=tfidf.data
b=-1
c=1
e=len(word)
for i in range(size):
if a[i]>b:
b=a[i]
if a[i]<c:
c=a[i]

d=(b+c)/2

for i in range(size):
if a[i]<d:
print(word[i])
print(a[i])

以上是程式 第一個for是找出最大最小值
第二個for是找出低於平均值的TF-IDF
我想print出來 文字+值 但是文字會被重疊
總共文字有8個但重疊以後會變成5個
但TF-IDF值會計算出8個
所以word[i]會超除範圍
想問大大們有什麼方式可以解決嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答