NLP - Apakah Gazetteer curang?

16

Di NLP, ada konsep Gazetteeryang 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 Gazetteeruntuk mendeteksi entitas bernama, maka tidak banyak yang Natural Language Processingterjadi. Idealnya, saya ingin mendeteksi entitas bernama menggunakan NLPteknik. Jika tidak, bagaimana ini lebih baik daripada pencocokan pola regex?

AbtPst
sumber
2
Saya tidak akan menyebutnya curang ... kecuali jika Anda secara khusus dirancang untuk menggunakan solusi pencarian non-kamus. Saya juga tidak akan menyebutnya NLP tradisional, meskipun Anda tidak boleh mengabaikan jarak tempuh substansial yang bisa Anda dapatkan dari solusi sederhana untuk suatu masalah.
Kyle.
1
Anda mungkin dapat menggunakannya untuk melatih pengenal entitas yang bernama. Apa yang akan dilakukan gazetteer Anda tentang entitas yang tidak ada dalam korpusnya?
Emre
Saya berharap bahwa dengan menggunakan tag pos dan chunking kata benda dengan benar, saya tidak akan pernah membutuhkan surat kabar. Apakah itu mungkin?
AbtPst
2
Dalam industri tidak ada yang namanya curang. :-) Tetapi bagaimanapun, jika Anda menginginkan "pendekatan umum", Anda harus mulai dengan beberapa data beranotasi tangan, yaitu seed, untuk mempelajari konteks di mana NE muncul, untuk mempelajari lebih banyak NE.
Adam Bittlingmayer

Jawaban:

15

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.

chewpakabra
sumber
4

Menggunakan daftar entitas memiliki beberapa kelemahan:

  • Daftar ditutup
  • Daftar ini tidak peka konteks. Anda perlu konteks untuk membedakan antara "rumah putih" dan "rumah putih".
  • Daftar bangunan membutuhkan banyak tenaga
  • Daftar mungkin juga mengandung kesalahan.
  • Rasanya seperti selingkuh (atau di daftar tidak ada wawasan NLP digunakan).

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.

Dl
sumber