-1
我有一段使用文本blob索引單詞的代碼。我當前的輸出來自每個doc的for循環(如doc1,doc2,doc3等)如何從for循環創建np數組
從每個文檔我想有一個向量的4個最重要的單詞,我希望返回其索引數字轉換爲4,1 np.array。不幸的是,我似乎無法解決這個問題。
bloblist = [doc1, doc2, doc3, doc4, doc5, doc6, doc7, doc8, doc9, doc10, doc11]
for i, blob in enumerate(bloblist):
print("Top words in doc {}".format(i + 1))
scores = {word: tfidf(word, blob, bloblist) for word in blob.words}
sorted_words = sorted(scores.items(), key=lambda x: x[1], reverse=True)
corpus = blob.words
wordIndex = list(enumerate(corpus))
for word, score in sorted_words[:4]:
arr = (corpus.index(word))
print(arr)
這將產生以下:
Top words in doc 1
5
0
1
2
Top words in doc 2
19
12
41
4
這是很酷,但我想有像這樣
Top words in doc 1
[5,0,1,2]
誰能幫助我嗎?
首先,考慮使用[計數器](https://docs.python.org/2/library/collections.html#collections.Counter )。其次,「我想有一個最重要的4個詞的向量,我希望返回它的索引號。」什麼索引號?第一次出現? –
您正在每次迭代打印arr。我想你要找的是在第二個for循環之前初始化一個名爲arr的數組,然後在每個迭代中追加到這個數組,最後在循環完成後打印。 – Oli
嗨布拉德,是的,對不起,索引部分並沒有真正的幫助。我使用textblob對每個單詞進行索引,以便每個包含每個單詞的文檔的文檔都有固定的編號。嗯,我覺得這很難解釋,但基本上我需要基於許多文檔的語料庫,然後應該能夠使用它的索引來引導每個文檔的前4個詞。 – dsloet