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]會超除範圍
想問大大們有什麼方式可以解決嗎?