2017-08-11 34 views
1

要創建文檔項矩陣,我有文本文件result.txt作爲輸入。我想算這樣的話發生:如何在python中創建文檔項頻率矩陣

Counter({'STTP': 6, 'AVENUES': 4, 'ENGINEERING': 4, 'MINING': 4, 'THE': 4, 'SCOE': 4, 'HERE': 4, 'DATA': 4, 'TOOLS': 4, 'PROGRAMMING': 3, 'TEMPERATURE': 3}) 

,但得到的結果是這樣:

"degree,the,mituski,programming,national,it,high,sakal,engineering,paper,college,signed 
1,4,2,3,1,2,1,1,4,1,1,1" 

這裏是我使用的代碼:

tdm = textmining.TermDocumentMatrix() 

files = glob.glob("result.txt") 

for f in files: 

    content = open(f).read() 

    content = content.replace('\n', ' \n') 

    tdm.add_doc(content) 

    tdm.write_csv('matrix1.csv', cutoff=1) 
+2

的代碼沒有顯示使用Counter'的'。 – stamaimer

回答

0

結果是一個正確格式的csv文件。第一行是標題(單詞),第二行是單詞的計數。

您顯示的東西看起來像一個dict傳遞給class構造函數。

Python Textmining Package

Instead of writing out the matrix you can also access its rows directly.

# Let's print them to the screen. 
for row in tdm.rows(cutoff=1): 
    print row 

所以對於你的問題得到一個dict,你可以去通過:

result_rows = list(tdm.rows(cutoff=1)) 
result_dict = {} 

for i in range(len(result_rows[0])): 
    result_dict[result_rows[0][i]] = result_rows[1][i] 
+0

得到這個錯誤:對於我在範圍內(len(result_rows [0])): TypeError:'發電機'對象沒有屬性'__getitem__'我想在csv文件中輸出 – aneeket

+0

你是csv文件實際上是一個有效的csv。你在Counter中顯示的例子看起來像是一個字典。我更新了我的答案並修正了錯誤,因爲我不知道tdm.rows是一個生成器,而不是一個列表。 – Igle

+0

謝謝@Igle – aneeket