2013-05-10 92 views
1

我試圖讀取一個文本文件並使用textmining包創建術語文檔矩陣。我可以創建術語文檔矩陣,我需要逐行添加每行。問題是我想一次包含整個文件。以下代碼中缺少什麼?提前感謝您的任何建議?從文本文件創建術語文檔矩陣

import textmining 

def term_document_matrix_roy_1(): 

    '''-----------------------------------------''' 
    with open("data_set.txt") as f: 
     reading_file_line = f.readlines() #entire content, return list 
     print reading_file_line #list 
     reading_file_info = [item.rstrip('\n') for item in reading_file_line] 
     print reading_file_info 
     print reading_file_info [1] #list-1 
     print reading_file_info [2] #list-2 

     '''-----------------------------------------''' 
     tdm = textmining.TermDocumentMatrix() 
     #tdm.add_doc(reading_file_info) #Giving error because of readlines 
     tdm.add_doc(reading_file_info[0])  
     tdm.add_doc(reading_file_info[1]) 
     tdm.add_doc(reading_file_info[2]) 


     for row in tdm.rows(cutoff=1): 
      print row 

示例文本文件:「data_set.txt」包含以下信息:

讓我們寫一些Python代碼

到目前爲止,這本書主要探討特設檢索的過程。

一路上我們將​​學習一些重要的機器學習技巧。

輸出將成爲術語文檔矩陣,基本上出現一個特定單詞的次數。 輸出圖像:http://postimg.org/image/eidddlkld/

enter image description here

+0

你沒有真正問過一個問題。你得到的輸出是什麼?你在期待什麼?什麼不行?什麼是錯誤信息? – 2013-05-10 11:42:08

+2

正如我在問題中提到的那樣,我從文本文件中逐行添加一個數組,但是如何添加整個文件內容。所以它從文本文件中逐行讀取並顯示術語文檔矩陣?謝謝 – J4cK 2013-05-10 12:34:37

+2

@Burhan Khalid問題現在已更新爲圖像。 – J4cK 2013-05-10 20:06:33

回答

1

@Fred感謝您的回覆。我想顯示它在圖像文件中顯示的位置。實際上我可以使用下面的代碼生成相同的結果,但我希望每行都作爲單獨的矩陣而不是一個矩陣。

with open("txt_files/input_data_set.txt") as f: 
    reading_file_info = f.read()#reading lines exact content 
    reading_file_info=f.read 
    tdm = textmining.TermDocumentMatrix() 
    tdm.add_doc(reading_file_info) 

    tdm.write_csv('txt_files/input_data_set_result.txt', cutoff=1) 
    for row in tdm.rows(cutoff=1): 
     print row 

我在試圖讀取文本文件並創建一個文檔矩陣。

2

如果我正確認識你,你現在加入您的文件的每一行作爲一個單獨的文件。要添加整個文件,您可以將這些行連接起來,並將它們一次性添加。

tdm = textmining.TermDocumentMatrix() 
#tdm.add_doc(reading_file_info) #Giving error because of readlines 
tdm.add_doc(' '.join(reading_file_info)) 

如果您正在尋找多個矩陣,你將最終獲得只有一行在每個,因爲只有一個文件,除非你有分割線在以單獨文件的另一種方式。你可能想重新考慮這是否是你真正想要的。不過,我覺得這個代碼將會爲你做它:

with open("txt_files/input_data_set.txt") as f: 
    tdms = [] 
    for line in f: 
     tdm = textmining.TermDocumentMatrix() 
     tdm.add_doc(line.strip()) 
     tdms.append(tdm) 

    for tdm in tdms: 
     for row in tdm.rows(cutoff=1): 
      print row 

我還沒有真正能夠測試這個代碼,所以輸出可能是不對的。希望它能讓你走上正軌。

相關問題