Saya memiliki file teks yang berisi tweet dan saya diharuskan menghitung berapa kali sebuah kata disebutkan dalam tweet. Misalnya, file tersebut berisi:
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?
Dan katakanlah saya ingin menghitung berapa kali kata iPhone disebutkan dalam file. Jadi, inilah yang saya coba.
cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l
itu pasti berfungsi tetapi saya bingung tentang perintah 'wc' di unix. Apa bedanya jika saya mencoba sesuatu seperti:
cut -f 1 Tweet_Data | grep -c "iPhone"
di mana -c digunakan sebagai gantinya? Kedua hasil ini berbeda dalam file besar penuh tweet dan saya bingung tentang cara kerjanya. Metode manakah yang merupakan cara yang benar untuk menghitung kejadian?
text-processing
grep
cut
Maks
sumber
sumber
cut -f1
memotong berdasarkan tab, yang tidak banyak membantu di sini. Apakah Anda yakin ituwc -l
benar-benar memberi Anda hitungan yang benar? Ini akan menunjukkan 2 di sini, tapi saya menghitung 3 contoh "iPhone".Jawaban:
Dengan persyaratan seperti itu, saya akan menggunakan GNU grep (untuk
-o
opsi ), lalu meneruskannyawc
untuk menghitung jumlah total kejadian:grep -c
Data polos akan menghitung jumlah baris yang cocok, bukan jumlah total kata yang cocok. Menggunakan-o
opsi memberitahu grep untuk menampilkan setiap kecocokan pada baris on-nya, tidak peduli berapa kali kecocokan pada baris tersebut.wc -l
memberitahuwc
utilitas untuk menghitung jumlah baris. Setelah grep menempatkan setiap kecocokan pada barisnya masing-masing, ini adalah jumlah total kemunculan kata dalam input.Jika GNU grep tidak tersedia (atau diinginkan), Anda bisa mengubah input dengan
tr
sehingga setiap kata pada barisnya sendiri, kemudian gunakangrep -c
untuk menghitung:sumber
Metode termudah adalah,
untukmu,
sumber