Di klien email iOS, ketika email berisi tanggal, waktu atau lokasi, teks menjadi hyperlink dan dimungkinkan untuk membuat janji temu atau melihat peta hanya dengan mengetuk tautan. Ini tidak hanya berfungsi untuk email dalam bahasa Inggris, tetapi juga dalam bahasa lain. Saya suka fitur ini dan ingin memahami bagaimana mereka melakukannya.
Cara naif untuk melakukan ini adalah memiliki banyak ekspresi reguler dan menjalankan semuanya. Namun saya ini tidak akan skala dengan sangat baik dan akan bekerja hanya untuk bahasa tertentu atau format tanggal, dll. Saya pikir Apple harus menggunakan beberapa konsep pembelajaran mesin untuk mengekstraksi entitas (20:00, 20:00, 20:00, 0800, 20:00, 20j, 20j00, 2000 dll.)
Adakah ide bagaimana Apple dapat mengekstraksi entitas dengan sangat cepat di klien emailnya? Algoritma pembelajaran mesin apa yang akan Anda terapkan untuk menyelesaikan tugas tersebut?
Jawaban:
Mereka kemungkinan menggunakan Ekstraksi Informasi teknik untuk ini.
Berikut ini adalah demo alat SUTime milik Stanford:
http://nlp.stanford.edu:8080/sutime/process
Anda akan mengekstrak atribut tentang n-gram (kata-kata berurutan) dalam dokumen:
...
Dan kemudian gunakan algoritma klasifikasi, dan berikan contoh positif dan negatif:
Anda mungkin lolos dengan 50 contoh masing-masing, tetapi lebih banyak lebih meriah. Kemudian, algoritma belajar berdasarkan contoh-contoh itu, dan dapat berlaku untuk contoh di masa depan yang belum pernah dilihat sebelumnya.
Mungkin mempelajari aturan seperti
Berikut adalah video yang layak oleh seorang insinyur Google tentang masalah ini
sumber
Itu adalah teknologi yang sebenarnya dikembangkan Apple sejak dulu
Apple Data Detectors
. Anda dapat membaca lebih lanjut tentang ini di sini:http://www.miramontes.com/writing/add-cacm/
Pada dasarnya itu mem-parsing teks dan mendeteksi pola yang mewakili potongan data tertentu, kemudian menerapkan tindakan kontekstual OS untuk itu. Itu rapi.
sumber
Ini disebut identifikasi ekspresi sementara dan penguraian. Berikut beberapa pencarian Google untuk membantu Anda memulai:
https://www.google.com/#hl=id&safe=off&sclient=psy-ab&q=timebank+timeml+timex
https://www.google.com/#hl=id&safe=off&sclient=psy-ab&q=temporal+expression+tagger
sumber
Salah satu bagian dari teka-teki itu adalah
NSDataDetector
kelas. Ini digunakan untuk mengenali beberapa tipe standar seperti nomor telepon.sumber
NSDataDetector
kelas adalah hasil upaya Apple untuk menerapkan ini. Pertanyaannya adalah bagaimana cara kerja kelas secara internal?Saya pernah menulis parser untuk melakukan ini, menggunakan pyparsing. Ini benar-benar sangat sederhana, Anda hanya perlu melakukan semua cara yang berbeda dengan benar, tetapi jumlahnya tidak banyak. Hanya butuh beberapa jam dan cukup cepat.
sumber
Apple memiliki paten tentang bagaimana mereka melakukannya Sistem dan metode untuk melakukan suatu tindakan pada struktur dalam data komputer , dan inilah cerita tentang paten paten ini -paten-pada-nsdatadetektor
sumber