Pertanyaan Bagaimana cara Apple menemukan tanggal, waktu, dan alamat dalam email?


Di klien email iOS, ketika email berisi tanggal, waktu, atau lokasi, teks menjadi hyperlink dan Anda dapat membuat janji atau melihat peta hanya dengan mengetuk tautan. Tidak hanya berfungsi untuk email dalam bahasa Inggris, tetapi dalam bahasa lain juga. Saya suka fitur ini dan ingin memahami bagaimana mereka melakukannya.

Cara naif untuk melakukan ini adalah dengan memiliki banyak ekspresi reguler dan menjalankan semuanya. Namun, saya tidak akan menskalakan dengan baik dan hanya bekerja untuk bahasa tertentu atau format tanggal, dll. Saya pikir Apple harus menggunakan beberapa konsep pembelajaran mesin untuk mengekstraksi entitas (8:00 PM, 8PM, 8:00, 0800, 20:00, 20h, 20h00, 2000 dll.).

Tahu bagaimana Apple mampu mengekstrak entitas dengan sangat cepat di klien emailnya? Algoritma pembelajaran mesin apa yang akan Anda terapkan untuk menyelesaikan tugas seperti itu?


125
2018-02-15 14:12


asal


Jawaban:


Mereka mungkin digunakan Ekstraksi Informasi teknik untuk ini.

Berikut ini adalah demo alat SUTime Stanford:

http://nlp.stanford.edu:8080/sutime/process

Anda akan mengekstrak atribut tentang n-gram (kata berurutan) dalam dokumen:

  • numberOfLetters
  • numberOfSymbols
  • panjangnya
  • previousWord
  • nextWord
  • nextWordNumberOfSymbols
    ...

Dan kemudian gunakan algoritma klasifikasi, dan berikan contoh positif dan negatif:

Observation  nLetters  nSymbols  length  prevWord  nextWord isPartOfDate  
"Feb."       3         1         4       "Wed"     "29th"   TRUE  
"DEC"        3         0         3       "company" "went"   FALSE  
...

Anda mungkin bisa lolos dengan 50 contoh masing-masing, tetapi semakin meriah. Kemudian, algoritma belajar berdasarkan contoh-contoh tersebut, dan dapat diterapkan pada contoh-contoh masa depan yang belum pernah terlihat sebelumnya.

Mungkin belajar aturan seperti

  • jika kata sebelumnya hanya karakter dan mungkin periode ...
  • dan kata saat ini ada di "februari", "mar.", "the" ...
  • dan kata berikutnya ada di "kedua belas", nomer berapa saja ...
  • saat itu adalah tanggal

Ini dia video yang layak oleh seorang insinyur Google tentang hal ini


151
2018-02-18 22:04



Itulah teknologi yang benar-benar dikembangkan oleh Apple sejak lama Apple Data Detectors. Anda dapat membaca lebih lanjut tentang ini di sini:

http://www.miramontes.com/writing/add-cacm/

Pada dasarnya ini mem-parsing teks dan mendeteksi pola yang mewakili potongan data tertentu, kemudian menerapkan tindakan kontekstual OS untuk itu. Itu rapi.


109
2018-02-25 10:10



Ini disebut ekspresi temporal identifikasi dan penguraian. Berikut ini beberapa penelusuran Google untuk Anda mulai:

https://www.google.com/#hl=en&safe=off&sclient=psy-ab&q=timebank+timeml+timex

https://www.google.com/#hl=en&safe=off&sclient=psy-ab&q=temporal+expression+tagger


18
2018-02-15 21:12



Satu bagian dari teka-teki bisa menjadi NSDataDetector kelas. Ini digunakan untuk mengenali beberapa tipe standar seperti nomor telepon.


5
2018-02-24 13:12



Saya pernah menulis parser untuk melakukan ini, menggunakan pyparsing. Ini sangat sederhana, Anda hanya perlu mendapatkan semua cara yang berbeda, tetapi tidak banyak. Hanya butuh beberapa jam dan cukup cepat.


2
2018-02-25 10:42



Apple memiliki hak paten tentang bagaimana mereka melakukannya Sistem dan metode untuk melakukan tindakan pada struktur dalam data komputer, dan inilah cerita tentang paten ini apel-paten-on-nsdatadetector


1
2017-07-31 02:42