我正在計算大文檔中的tf-idf。我擁有的字數超過80,000。我正在嘗試在csv文件中編寫稀疏矩陣。我使用的代碼類似於此處的回答How to add a new column to a CSV file using Python?如何有效地在python中編寫csv?
輸出文件太大,超過700 MB只能處理大約30,000個字。 所以,我的問題是如何有效地寫它? 謝謝。
我正在計算大文檔中的tf-idf。我擁有的字數超過80,000。我正在嘗試在csv文件中編寫稀疏矩陣。我使用的代碼類似於此處的回答How to add a new column to a CSV file using Python?如何有效地在python中編寫csv?
輸出文件太大,超過700 MB只能處理大約30,000個字。 所以,我的問題是如何有效地寫它? 謝謝。
您可以輕鬆地通過使用gzip的模塊直接寫一個gzip文件做TFIDF的休息,:
import gzip
import csv
f=gzip.open("myfile.csv.gz", "w")
csv_w=csv.writer(f)
for row in to_write :
csv_w.writerow(row)
f.close()
不要忘記關閉文件,否則生成的csv.gz文件可能無法讀取。
你也可以做一個更Python風格:
with gzip.open("myfile.csv.gz", "w") as f :
csv_w = csv.writer(f)
...
這保證該文件將被關閉。
希望這會有所幫助。
如果你正在寫一個稀疏矩陣爲CSV,那麼對於文件大小你可以做的確實不多。壓縮能夠解決您的需求嗎?你會得到一個令人驚歎的壓縮比率,主要是逗號文件。 – 2013-03-17 18:29:27
此外,你只是試圖將信息保存到磁盤,或者你設置使用.csv格式?如果前者是真的,那麼你有更多的選擇。 – 2013-03-17 18:29:52
@David認爲你已經涵蓋了我將要做的所有要點 - 這個問題肯定需要更明確的定義 – 2013-03-17 18:31:49