Bagaimana cara saya mengungkapkan hubungan yang halus dalam data saya?

20

"A" terkait dengan "B" dan "C". Bagaimana saya menunjukkan bahwa "B" dan "C" mungkin, dalam konteks ini, juga terkait?

Contoh:

Berikut adalah beberapa berita utama tentang drama Broadway baru-baru ini:

  1. Glengarry Glen Ross karya David Mamet, Dibintangi Al Pacino, Dibuka di Broadway
  2. Al Pacino dalam 'Glengarry Glen Ross': Apa pendapat para kritikus?
  3. Al Pacino mendapat ulasan kurang bersemangat untuk pergantian Broadway
  4. Ulasan Teater: Glengarry Glen Ross Menjual Bintang-Bintangnya Keras
  5. Glengarry Glen Ross; Hei, Siapa yang membunuh Lampu Klieg?

Masalah:

Menjalankan kecocokan fuzzy-string pada catatan-catatan ini akan membangun beberapa hubungan, tetapi tidak yang lain, meskipun pembaca manusia bisa mengambilnya dari konteks dalam kumpulan data yang jauh lebih besar.

Bagaimana cara menemukan hubungan yang menunjukkan # 3 terkait dengan # 4? Keduanya dapat dengan mudah dihubungkan ke # 1, tetapi tidak satu sama lain.

Apakah ada nama (Googlable) untuk jenis data atau struktur ini? Algoritma apa yang saya cari?

Tujuan:

Diberikan 1.000 tajuk berita, sebuah sistem yang secara otomatis menyarankan bahwa 5 item ini semuanya mungkin tentang hal yang sama.

Sejujurnya, sudah begitu lama sejak saya memprogram saya bingung bagaimana mengartikulasikan masalah ini dengan benar. (Saya tidak tahu apa yang tidak saya ketahui, jika itu masuk akal).

Ini adalah proyek pribadi dan saya menulisnya dengan Python. Terima kasih sebelumnya atas bantuan, saran, dan petunjuk!

Chuck H
sumber
1
terdengar seperti penguraian bahasa alami dan / atau beberapa teknik probabilistik lainnya diperlukan
jk.
2
Ini pertanyaan yang HEBAT!
Michael Brown
Saya pikir saya telah melihat sistem yang dapat melakukan ini diimplementasikan dalam Prolog.
FrustratedWithFormsDesigner
1
@FrustratedWithFormsDesigner Saya curiga Anda berpikir tentang penyatuan dalam pemrograman logika ..?
Izkata

Jawaban:

14

Ini disebut analisis cluster , yang pada dasarnya mengelompokkan objek ke dalam cluster dengan properti yang serupa. Ini adalah topik yang sangat besar, tetapi itu akan memberi Anda tempat untuk memulai.

Karl Bielefeldt
sumber
7

Anda memasuki dunia Semantik. Ada layanan publik yang akan mem-parsing teks dan mengeluarkan konsep-konsep utama (pencarian cepat untuk API Semantic muncul beberapa) yang akan mem-parsing dokumen bentuk bebas dan mengembalikan topik-topik utama yang dihadapi termasuk orang, tempat, benda, tanggal, dan konsep . Beberapa yang lebih baik akan kembali dalam format yang dikenal sebagai [RDF]

Jika Anda ingin membangun sistem Anda sendiri yang dapat melakukan ini, bidangnya adalah Pemrosesan Bahasa Alami dan itu adalah lubang kelinci yang sangat menarik untuk menyelam.

Michael Brown
sumber
4

Jika memungkinkan, selesaikan cerita bersama dengan tajuk utama. Headline kadang-kadang bisa menjadi "imut" dan hanya membuat referensi tangensial untuk apa yang sedang dibahas. Ini berfungsi baik dengan manusia (karena mereka memiliki konteks global ), tetapi tidak begitu baik dengan NLP.

Seperti disebutkan dalam jawaban Karl Bielefeldt, pengelompokan adalah pendekatan yang baik, tetapi Iblis ada dalam rinciannya. Anda tidak hanya harus memilih pendekatan pengelompokan yang sesuai dengan ruang masalah / pengguna Anda, Anda juga harus mencari tahu apa yang dikelompokkan.

Latar belakang saya adalah Information Retrieval (IR) dari tahun 80-an, dan kami fokus pada pencarian kesamaan dan pengelompokan berbasis centroid . Dokumen kami diwakili oleh vektor atribut tertimbang , yang pada dasarnya adalah daftar istilah dan kepentingan relatif mereka dalam dokumen. Pendekatan ini dapat bekerja (meskipun lebih baik dengan beberapa koleksi daripada yang lain), tetapi memiliki masalah dengan tajuk pendek yang lucu, karena mereka tidak memiliki istilah kosa kata kunci untuk mengikat semuanya. Tetapi jika Anda menggunakan keseluruhan dokumen, maka Anda mendapatkan daftar istilah yang jauh lebih kaya (dan mungkin rasa kepentingan yang lebih baik), dan daftar istilah itu mungkin akan membuat koneksi lebih mudah dikenali (yaitu menghitung) ketika Anda memiliki berita utama yang "imut".

Email saya ada di profil saya jika Anda ingin masuk ke masalah pembuatan vektor, dll.

Peter Rowell
sumber