Memiliki banyak dokumen teks (dalam bahasa alami, tidak terstruktur), apa cara yang memungkinkan untuk membuat anotasi dengan beberapa meta-data semantik? Misalnya, pertimbangkan dokumen pendek:
I saw the company's manager last day.
Untuk dapat mengekstraksi informasi darinya, harus dianotasi dengan data tambahan agar tidak ambigu. Proses menemukan meta-data tersebut tidak dipertanyakan, jadi anggap itu dilakukan secara manual. Pertanyaannya adalah bagaimana cara menyimpan data ini sedemikian rupa sehingga analisis lebih lanjut tentang hal itu dapat dilakukan dengan lebih mudah / efisien?
Pendekatan yang mungkin adalah dengan menggunakan tag XML (lihat di bawah), tetapi tampaknya terlalu bertele-tele, dan mungkin ada pendekatan / pedoman yang lebih baik untuk menyimpan meta-data tersebut pada dokumen teks.
<Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s
manager <Time value="2014-5-29">last day</Time>.
sumber
Jawaban:
Secara pribadi saya akan menganjurkan menggunakan sesuatu yang tidak spesifik untuk bidang NLP, dan sesuatu yang cukup umum sehingga masih dapat digunakan sebagai alat bahkan ketika Anda sudah mulai bergerak melampaui tingkat metadata ini. Saya terutama akan memilih format yang dapat digunakan terlepas dari lingkungan pengembangan dan yang dapat mempertahankan beberapa struktur dasar jika itu menjadi relevan (seperti tokenization)
Ini mungkin tampak aneh, tetapi saya akan dengan jujur menyarankan
JSON
. Ini sangat didukung, mendukung banyak struktur, dan cukup fleksibel sehingga Anda tidak harus pindah dari itu karena tidak cukup kuat. Sebagai contoh Anda, sesuatu seperti ini:Satu keuntungan besar yang Anda dapatkan dari format spesifik NLP di sini adalah
JSON
dapat diuraikan dalam lingkungan apa pun, dan karena Anda mungkin harus mengedit format Anda, JSON memberikan hasil edit sederhana yang memberi Anda jarak pendek ke format lain.Anda juga dapat secara implisit menyimpan informasi tokenisasi jika Anda ingin:
EDIT: Untuk memperjelas pemetaan metadata cukup terbuka, tapi inilah contohnya:
Semoga itu bisa membantu, beri tahu saya jika Anda memiliki pertanyaan lain.
sumber
Secara umum, Anda tidak ingin menggunakan tag XML untuk menandai dokumen dengan cara ini karena tag mungkin tumpang tindih.
Kerangka kerja UIMA , GATE , dan NLP serupa menunjukkan tag yang terpisah dari teks. Setiap tag, seperti
Person
,ACME
,John
dll disimpan sebagai posisi yang tag dimulai dan posisi yang berakhir. Jadi, untuk tagACME
, itu akan disimpan sebagai memulai posisi 11 dan berakhir di posisi 17.sumber
The alat anotasi anak nakal mungkin berguna untuk Anda sebagai per komentar saya. Saya telah mencoba banyak dari mereka dan ini adalah yang terbaik yang saya temukan. Ini memiliki antarmuka pengguna yang bagus dan dapat mendukung sejumlah jenis anotasi. Anotasi disimpan dalam file .annot yang terpisah yang berisi setiap anotasi serta lokasinya di dalam dokumen asli. Sekalipun begitu, jika Anda ingin memberi makan anotasi ke dalam classifier seperti alat NER Stanford maka Anda harus melakukan manipulasi untuk mendapatkan data ke dalam format yang akan diterima.
sumber
Untuk menggambarkan semua data yang ada itu tugas yang sangat sulit, tetapi kita dapat menggunakan model data: http://schema.org/ , di mana ada jenis struktural informasi. Eksekusi sebelumnya ditargetkan untuk mengimplementasikan teknologi MarkUp, jadi, sepertinya bisa berguna untuk tugas Anda.
sumber