Saya terlambat ke pesta ini, tetapi saya bermain dengan konsep tc-idf (saya ingin menekankan kata 'konsep' karena saya tidak mengikuti buku apa pun untuk perhitungan yang sebenarnya; jadi mereka mungkin agak canggung, dan pasti lebih mudah dilakukan dengan paket seperti {tm: Text Mining Package}
, seperti yang disebutkan), dan saya pikir apa yang saya dapatkan mungkin terkait dengan pertanyaan ini, atau, dalam hal apa pun, ini mungkin tempat yang baik untuk mempostingnya.
SET-UP: Saya memiliki corpus dari 5
paragraf panjang yang diambil dari media cetak, text 1
melalui 5
seperti The New York Times . Diduga, itu adalah "tubuh" yang sangat kecil, perpustakaan kecil, sehingga untuk berbicara, tetapi entri dalam perpustakaan "digital" ini tidak acak: Entri pertama dan kelima berurusan dengan sepak bola (atau 'sepak bola' untuk 'klub sosial' (?) di sekitar sini), dan lebih khusus lagi tentang tim terhebat hari ini. Jadi, misalnya, text 1
dimulai dengan ...
"Selama sembilan tahun terakhir, Messi telah membawa FC Barcelona meraih gelar nasional dan internasional sambil memecahkan rekor individu dengan cara yang tampak seperti dunia lain ..."
Sangat bagus! Di sisi lain Anda pasti ingin melewatkan konten di tiga entri di antaranya. Berikut ini sebuah contoh ( text 2
):
"Dalam rentang beberapa jam di Texas, Tuan Rubio menyarankan agar Tuan Trump buang air kecil di celana panjangnya dan menggunakan imigran gelap untuk menyampaikan pesan Twitternya yang tak henti-hentinya ..."
Jadi apa yang harus dilakukan untuk menghindari "berselancar" dengan text 1
cara apa pun text 2
, sambil terus bersukacita dalam literatur tentang FC Barcelona yang maha kuasa text 5
?
TC-IDF: Saya mengisolasi kata-kata di setiap text
vektor menjadi panjang. Kemudian menghitung frekuensi setiap kata, membuat lima vektor (satu untuk masing-masing text
) di mana hanya kata-kata yang ditemui dalam yang sesuai text
yang dihitung - semua kata lain, milik yang lain text
, bernilai nol. Dalam cuplikan pertama text 1
, misalnya, vektornya akan memiliki hitungan 1 untuk kata "Messi", sedangkan "Trump" akan memiliki 0. Ini adalah bagian tc .
Bagian idf juga dihitung secara terpisah untuk masing-masing text
, dan menghasilkan 5 "vektor" (saya pikir saya memperlakukan mereka sebagai frame data), yang berisi transformasi logaritmik dari jumlah dokumen (sayangnya, hanya dari nol menjadi lima, mengingat perpustakaan kecil kami) ) mengandung kata yang diberikan seperti pada:
catatan( No. dokumen1+Tidak. Dokumen berisi kata)text
01text
tc × idftext
PERBANDINGAN: Sekarang hanya masalah melakukan dot produk di antara "vektor pentingnya kata" ini.
Bisa ditebak, produk titik text 1
dengan text 5
adalah 13.42645
, sedangkan text 1
v. text2
Hanya 2.511799
.
Kode R kikuk (tidak ada yang meniru) ada di sini .
Sekali lagi, ini adalah simulasi yang sangat sederhana, tetapi saya pikir ini sangat grafis.