У меня есть и такая запись:
(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