Подсчет слов и упорядочивание строк, содержащих это N слов

У меня есть и такая запись:

(bc9, de, viana=do=castelo)
(bc9, tomar o, aeroporto=de=pedras=rubras)
(arábia=saudita, em o, afeganistão)

И я хочу посчитать, сколько раз и что появляется больше всего, например:

bc9: 2 times. 

(bc9, de, viana=do=castelo)
(bc9, tomar o, aeroporto=de=pedras=rubras)

afeganistão: 1 times. 

(arábia=saudita, em o, afeganistão)

Слова между запятыми тоже не считаются. Вот код, он выводит некоторые соединители, которые я удалю, но после этого я подумал о повторении ввода и группировании предложений, содержащих слова, в порядке их появления.

from Tkinter import Tk
from tkFileDialog import askopenfilename
import operator

Tk().withdraw() 
filename = askopenfilename() 
file = open(filename, "r+")
wordcount = {}
saida=open('saida.txt','w')
string = 'portugal] <civ> <*> prop m s @p<   ['
for line in file:
 line = line.replace("(", "")
 line = line.replace(")", "")
 line = line.replace(",", "")
 line = line.replace("=", " ")
 line = line.replace(string, "")
 saida.write(line)
saida.close()
file.close()
file=open("saida.txt","r")
for word in file.read().split():
 if word not in wordcount:
    wordcount[word] = 1
 else:
    wordcount[word] += 1
file.close
sorted_x = sorted(wordcount.items(), key=operator.itemgetter(1), reverse=True)
saida2=open('saida2.txt','w')
for key, value in sorted_x:
 saida2.write(key+':')
 saida2.write('\t')
 saida2.write(str(value) + '\n')
 print key, value

person Gabriel Machado    schedule 13.04.2015    source источник
comment
Повезло тебе. Что вы пробовали до сих пор? Stack Overflow не является службой написания кода.   -  person MattDMo    schedule 13.04.2015
comment
извините, я уже посчитал слова и сохранил их в OrderedDict, но у меня проблемы с перебором моего входного файла   -  person Gabriel Machado    schedule 13.04.2015
comment
Затем, пожалуйста, опубликуйте свой код вместе с конкретным вопросом о том, где у вас возникли проблемы.   -  person MattDMo    schedule 13.04.2015


Ответы (1)


from collections import Counter 

zipped_entries = zip(*entries)
Counter(zipped_entries[0] + zipped_entries[2])

Предполагается, что у вас есть фиксированное количество записей (3). Должно быть достаточно кода, чтобы вы начали.

person a p    schedule 13.04.2015
comment
на самом деле обнаружил, что моя проблема заключается в его чтении, мне нужно прочитать его с (до первой запятой и со второй запятой до), какие-либо советы? - person Gabriel Machado; 13.04.2015
comment
Боюсь, я не понимаю, что вы ищете. Возможно, откройте новый вопрос с конкретными примерами того, что вы хотите, что вы пробовали и как это терпит неудачу. - person a p; 13.04.2015