J'ai un fichier texte que j'essaie d'obtenir les mots les plus couramment utilisés avec. J'utilise Counter
, mais il semble juste retourner 1
pour chacun. J'apprenais, donc j'utilise le Simple Sabotage Field Manual pour mon fichier texte.Counter() renvoie 1 pour tous les mots. Comment obtenir le compte réel?
import re
from collections import Counter
my_file = "fieldManual.txt"
#### GLOBAL VARIABLES
lst = [] # used in unique_words
cnt = Counter()
#########
def clean_word(the_word):
#new_word = re.sub('[^a-zA-Z]', '',the_word)
new_word = re.sub('^[^a-zA-z]*|[^a-zA-Z]*$', '', the_word)
return new_word
def unique_words():
with open(my_file, encoding="utf8") as infile:
for line in infile:
words = line.split()
for word in words:
edited_word = clean_word(word)
if edited_word not in lst:
lst.append(edited_word)
cnt[edited_word] += 1
lst.sort()
word_count = Counter(lst)
return(lst)
return (cnt)
unique_words()
test = ['apple','egg','apple','banana','egg','apple']
print(Counter(lst)) # returns '1' for everything
print(cnt) # same here
Ainsi, print(Counter(test))
retours, correctement,
contre ({ 'pomme': 3, 'œuf': 2, 'banane': 1})
Mais mon les tentatives d'imprimer les mots les plus fréquents dans mes lst
retours
compteur ({ '': 1, 'A': 1, 'ACTUAL': 1, agree ': 1,' CONVENTION ': 1,' AK ': 1,' AND ': 1,' ANY ': 1,' RIEN ': 1,' AR ': 1,' TEL ': 1,' ASCII ': 1,' À propos de ': 1,' Abstract ': 1,' Accidentellement ': 1,' Act ': 1,' Actes ': 1,' Ajouter ': 1,' Supplémentaire ': 1,' Ajuster ': 1,' Avocat ' : 1, 'Après': 1, 'Agriculture': 1, ...
Après la réponse from here, j'ai essayé d'ajouter cnt.Update(edited_word)
dans le if edited_word not in lst:
, mais l'impression puis cnt
je viens d'obtenir des caractères simples:
Compteur ({'e': 2401, 'i': 1634, 't': 1470, 's': 1467, 'n': 1455, 'r': 1442, 'a': 1407, 'o ': 1244,' l ': 948,' c ': 862,' d ': 752,' u ': 651,' p ': 590,' g ': 564,' m ': 436, ...
Comment puis-je retourner la fréquence de chaque mot unique de mon fichier .txt?
[Oh ... mon ... bonté] (http://gif-finder.com/wp-content/uploads/2015/02/Steve-Carell-Facepalm.gif). Merci beaucoup de souligner que, maintenant super évident, le point. Ça va le faire! J'étais bien au-dessus de ça et je ne me suis pas reculé et je l'ai franchi à haute voix ... – BruceWayne