2015-06-03 144 views
0

我有一个非常大的.csv文件(1065行x 1列)。每一行都有句子。我想从每行中的单词表(.csv文件)中选取几个重要单词,然后为每一行制作数据词频率。如何从python的每一行csv文件中提取单词?

+0

你查过或试图csv模块? https://docs.python.org/2/library/csv.html – kponz

+1

如果它只有一列是真的csv文件? –

+0

你能提供样品吗?几行文件,要查找的单词以及期望的输出。 – gl051

回答

0

我刚刚试图放下一些东西,希望这会帮助你。这可能会更有效率地完成,但它完成了这项工作。

输入文件示例

bla bla bla. bla! bla bla apple!, :banana. apple!!! 
banana bla bla, apple and banana 
peach 12345 bla bla peach and banana, peach, banana! :apple 

代码

# Your inputs 
list_words = ['apple', 'banana','peach'] 
filename = 'example.txt' 

# Set of characters to remove to tokenize the file's line 
rm = ",:;?/-!." 

# Read through the file per each line and do the math 
with open(filename,'r') as fin: 
    for count_line, line in enumerate(fin,1): 
     clean_line = filter(lambda x: not (x in rm), line) 
     # To hold the counts of each word 
     words_frequency = {key: 0 for key in list_words} 
     for w in clean_line.split(): 
      if w in list_words: 
       words_frequency[w] += 1 
     print 'Line', count_line,':', words_frequen 

输出:

Line 1 : {'apple': 2, 'peach': 0, 'banana': 1} 
Line 2 : {'apple': 1, 'peach': 0, 'banana': 2} 
Line 3 : {'apple': 1, 'peach': 3, 'banana': 2} 
+0

非常感谢您的评论... –

相关问题