Sto provando ad accelerare il mio progetto per contare le frequenze delle parole. Ho più di 360 file di testo e ho bisogno di ottenere il numero totale di parole e il numero di volte in cui ogni parola da un altro elenco di parole appare. So come farlo con un singolo file di testo.Python - Trovare le frequenze delle parole dell'elenco di parole nel file di testo
>>> import nltk
>>> import os
>>> os.chdir("C:\Users\Cameron\Desktop\PDF-to-txt")
>>> filename="1976.03.txt"
>>> textfile=open(filename,"r")
>>> inputString=textfile.read()
>>> word_list=re.split('\s+',file(filename).read().lower())
>>> print 'Words in text:', len(word_list)
#spits out number of words in the textfile
>>> word_list.count('inflation')
#spits out number of times 'inflation' occurs in the textfile
>>>word_list.count('jobs')
>>>word_list.count('output')
La sua troppo noioso per ottenere le frequenze di 'inflazione', 'lavoro', 'uscita' individuale. Posso mettere queste parole in una lista e trovare la frequenza di tutte le parole nella lista allo stesso tempo? Fondamentalmente this con Python.
Esempio: Invece di questo:
>>> word_list.count('inflation')
3
>>> word_list.count('jobs')
5
>>> word_list.count('output')
1
io voglio fare questo (so che questo non è il codice vero e proprio, questo è quello che sto chiedendo aiuto su):
>>> list1='inflation', 'jobs', 'output'
>>>word_list.count(list1)
'inflation', 'jobs', 'output'
3, 5, 1
Il mio elenco di parole avrà 10-20 termini, quindi devo essere in grado di puntare semplicemente Python verso un elenco di parole per ottenere il conteggio di. Sarebbe anche bello se l'uscita è stata in grado di essere la copia + incolla in un foglio Excel con le parole come colonne e le frequenze come righe
Esempio:
inflation, jobs, output
3, 5, 1
E, infine, qualcuno può aiutare ad automatizzare questo per tutti i file di testo? Immagino che indichi Python solo verso la cartella e che possa eseguire il conteggio delle parole sopra dal nuovo elenco per ciascuno dei file di testo 360+. Sembra abbastanza facile, ma sono un po 'bloccato. Qualsiasi aiuto?
un output come questo sarebbe fantastico: Nomefile1 inflazione, posti di lavoro, in uscita 3, 5, 1
Filename2
inflation, jobs, output
7, 2, 4
Filename3
inflation, jobs, output
9, 3, 5
Grazie!
sto prendendo in giro con contatore per diverse ore ormai, e ancora non è possibile farlo. – CoS
L'esempio sopra riportato mi darà il conto di tutte le parole uniche nel mio file di testo (oltre 3000 parole uniche nel mio caso). Ho solo bisogno del conteggio per 10-20 parole specifiche nel file di testo. – CoS
Penso che funzionerà per la lista, grazie mille! Ho guardato quella pagina Counter per ore haha – CoS