Ho un file di testo contenente i tweet e mi viene richiesto di contare il numero di volte in cui una parola viene menzionata nel tweet Ad esempio, il file contiene:

Apple iPhone X is going to worth a fortune The iPhone X is Apple"s latest flagship iPhone. How will it pit against it"s competitors? 

E diciamo che voglio contare quante volte la parola iPhone è menzionata nel file. Quindi ecco quello che ho provato.

cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l 

certamente funziona ma sono confuso riguardo al comando “wc” in unix. Qual è la differenza se provo qualcosa del tipo:

cut -f 1 Tweet_Data | grep -c "iPhone" 

dove viene utilizzato -c? Entrambi producono risultati diversi in un file di grandi dimensioni pieno di tweet e io “sono confuso su come funziona. Qual è il metodo corretto per contare loccorrenza?

Commenti

Risposta

Dato tale requisito, vorrei usa un grep GNU (per -o opzione ), quindi passalo wc per contare il numero totale di occorrenze:

$ grep -o -i iphone Tweet_Data | wc -l 3 

Semplice grep -c nei dati conterà il numero di righe che corrispondono, non il numero totale di parole che corrispondono. Lutilizzo dellopzione -o dice a grep di visualizzare ogni corrispondenza sulla propria riga, indipendentemente da quante volte la corrispondenza è stata trovata nella riga originale.

wc -l dice allutilità wc di contare il numero di righe. Dopo che grep ha inserito ogni corrispondenza nella propria riga, questo è il numero totale di occorrenze della parola nellinput.


Se GNU grep non è disponibile (o desiderato), è possibile trasformare il inserisci tr in modo che ogni parola si trovi su una riga separata, quindi utilizza grep -c per contare:

$ tr "[:space:]" "[\n*]" < Tweet_Data | grep -i -c iphone 3 

Risposta

Il metodo più semplice è

grep -wc "your_text" FileName 

per te lo sarà,

grep -wc "iPhone" Tweet_Data 

Commenti

  • Risposta molto chiara se tu corrispondono a una parola come ' cool ' farai solo corrispondere cool e NON ccooll, quindi tieni presente che gli spazi intorno alla parola sono importanti.
  • Il risultato non sarà corretto se la parola ricorre più di una volta in una riga.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *