我正在尝试编写一个将读取文档的脚本,并将每个文档的每个唯一字的总数写入csv。我能够打开并阅读每个文档(来自“doc_list”),以及生成每个单词的频率(存储在“word_frequencies”中)。我遇到的问题是将其写入csv 我需要顶部列是唯一的单词(我生成了“corpus_tokens”,其中包含任何文档中的所有单词),第一行是每个文档的名称(“doc_list”)。然后我需要填写频率(“word_frequencies”)。
有人知道怎么做吗?
谢谢。
修改
当前(极其错误的)代码:
import csv
def unigramgen(self, name):
'''
test function to generate unigram tables
::
'''
print ("check 1")
docstats = MACdoc()
prints('Opening', name + '.csv')
write_csv = csv.writer(open(name + ".csv", "w"), lineterminator='\n')
doc_name = os.listdir(os.getcwd())
col_names = ['Doc Name']
for i in docstats.corpus_types():
col_names.append(i)
print ("check 2")
write_csv.writerow(col_names + '\n')
i = 0
prints('Writing data to table...')
print ("check 3")
for document in self.document_list:
prints('Writing data for', document, '...')
name = doc_name
freqs = docstats.wordfreq[i, :]
freqs = [str(freq) for freq in freqs]
row = name + freqs
write_csv.writerow(row + '\n')
i += 1
print ("check 4")
return True
*注意:MACdoc是一个创建单词频率的类(在许多其他内容中)。它是由其他人为不同的项目创建的,但看起来效果很好。