Di NLP, ada konsep Gazetteer
yang bisa sangat berguna untuk membuat anotasi. Sejauh yang saya mengerti:
Gazetteer terdiri dari serangkaian daftar yang berisi nama entitas seperti kota, organisasi, hari dalam seminggu, dll. Daftar ini digunakan untuk menemukan kemunculan nama-nama ini dalam teks, misalnya untuk tugas pengenalan entitas yang bernama.
Jadi pada dasarnya ini adalah pencarian. Bukankah ini semacam cheat? Jika kita menggunakan Gazetteer
untuk mendeteksi entitas bernama, maka tidak banyak yang Natural Language Processing
terjadi. Idealnya, saya ingin mendeteksi entitas bernama menggunakan NLP
teknik. Jika tidak, bagaimana ini lebih baik daripada pencocokan pola regex?
nlp
named-entity-recognition
AbtPst
sumber
sumber
Jawaban:
Gazetteer atau opsi lain untuk fitur ukuran tetap yang disengaja tampaknya merupakan pendekatan yang sangat populer dalam makalah akademis , ketika Anda memiliki masalah ukuran terbatas, misalnya APM dalam korpora tetap, atau penandaan POS atau hal lain. Saya tidak akan menganggapnya curang kecuali satu-satunya fitur yang akan Anda gunakan adalah pencocokan Gazetteer.
Namun, ketika Anda melatih segala jenis model NLP, yang tidak bergantung pada kamus saat pelatihan, Anda mungkin mendapatkan kinerja dunia nyata jauh lebih rendah daripada laporan pengujian awal Anda, kecuali jika Anda dapat memasukkan semua objek yang menarik ke dalam gazetteer (dan mengapa Anda kemudian memerlukan model itu?) karena model terlatih Anda akan bergantung pada fitur di beberapa titik dan, dalam kasus ketika fitur lain akan terlalu lemah atau tidak deskriptif, objek baru yang menarik tidak akan dikenali.
Jika Anda menggunakan Gazetteer dalam model Anda, Anda harus memastikan, bahwa fitur itu memiliki fitur penghitung untuk membiarkan model itu sendiri seimbang, sehingga kecocokan kamus yang sederhana tidak akan menjadi satu-satunya fitur kelas positif (dan yang lebih penting, gazetteer harus cocok tidak hanya dengan contoh positif, tetapi juga yang negatif).
Misalnya, anggap Anda memiliki set lengkap variasi tak terbatas dari semua nama orang, yang membuat orang umum NER tidak relevan, tetapi sekarang Anda mencoba untuk memutuskan apakah objek yang disebutkan dalam teks mampu bernyanyi. Anda akan mengandalkan fitur penyertaan ke dalam gazetteer Person Anda, yang akan memberi Anda banyak kesalahan positif; kemudian, Anda akan menambahkan fitur kata kerja-sentris dari " Apakah Subjek kata kerja bernyanyi ", dan itu mungkin akan memberi Anda positif palsu dari semua jenis objek seperti burung, perut Anda saat Anda lapar dan orang mabuk yang berpikirdia bisa bernyanyi (tapi jujur saja, dia tidak bisa) - tetapi fitur kata kerja-sentris akan menyeimbangkan dengan gazetteer orang Anda untuk menetapkan kelas positif 'Penyanyi' untuk orang dan bukan hewan atau benda lain. Padahal, itu tidak menyelesaikan kasus pemain mabuk.
sumber
Menggunakan daftar entitas memiliki beberapa kelemahan:
Anda dapat mengatasi kelemahan ini dengan mengikuti arahan @emre yang disarankan dan menggunakan daftar untuk mempelajari classifier.
Misalnya, Anda dapat menggunakan token di dekat entitas dan mempelajari aturan seperti itu "Saya tinggal di X" adalah indikator tempat dan "Saya berbicara dengan X" adalah indikator seseorang. Anda dapat memainkan permainan ini beberapa putaran dengan menambah daftar Anda dengan klik aturan dan menggunakan daftar baru untuk mempelajari lebih banyak aturan.
Harap tidak bahwa dalam pembelajaran ini Anda akan memperkenalkan berisik ke dalam data sehingga dalam banyak kasus pembelajaran harus sangat mudah.
sumber