Jak Apple wyszukuje daty, godziny i adresy w wiadomościach e-mail?
W kliencie poczty e-mail iOS, gdy wiadomość e-mail zawiera datę, godzinę lub lokalizację, tekst staje się hiperłączem i można utworzyć spotkanie lub spojrzeć na mapę po prostu dotykając łącza. Działa nie tylko w przypadku wiadomości e-mail w języku Angielskim, ale także w innych językach. Uwielbiam tę funkcję i chciałbym zrozumieć, jak to robią.
Naiwnym sposobem na to jest posiadanie wielu wyrażeń regularnych i uruchamianie ich wszystkich. Jednak to nie będzie skalować bardzo dobrze i będzie działać dla tylko określony język lub format daty itp. Myślę, że Apple musi używać jakiejś koncepcji uczenia maszynowego do wyodrębniania Bytów (20:00, 20: 00), 8:00, 0800, 20:00, 20h, 20h00, 2000 itp.).
Jakiś pomysł, jak Apple jest w stanie tak szybko wyodrębnić podmioty w swoim kliencie poczty e-mail? Jaki algorytm uczenia maszynowego zastosowałbyś w realizacji takiego zadania?
6 answers
Prawdopodobnie używają do tego Technik ekstrakcji informacji.
Oto demo narzędzia SUTime Stanforda:Http://nlp.stanford.edu:8080/sutime/process
Wyodrębniłbyś atrybuty O n-gramach (kolejnych wyrazach) w dokumencie:
- numerofletters
- numerofsymbols
- długość
- poprzedni
- nextWord
- nextWordNumberOfSymbols
...
A następnie użyj algorytm klasyfikacji, i podawaj mu pozytywne i negatywne przykłady:
Observation nLetters nSymbols length prevWord nextWord isPartOfDate
"Feb." 3 1 4 "Wed" "29th" TRUE
"DEC" 3 0 3 "company" "went" FALSE
...
Możesz ujść na sucho z 50 przykładami, ale im więcej, tym weselej. Następnie algorytm uczy się na podstawie tych przykładów i może zastosować do przyszłych przykładów, których wcześniej nie widział.
Może nauczyć się takich zasad jak
- jeśli poprzednie słowo to tylko znaki, a może kropki...
- a obecne słowo to "Luty", " Marzec.", "the"...
- a następne słowo jest w " dwunastym", any_number ...
- wtedy jest data
Oto porządny film autorstwa inżyniera Google na ten temat
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-08 19:56:51
To technologia opracowana przez Apple bardzo dawno temu o nazwie Apple Data Detectors
. Możesz przeczytać więcej na ten temat tutaj:
Http://www.miramontes.com/writing/add-cacm/
Zasadniczo analizuje tekst i wykrywa wzorce, które reprezentują określone fragmenty danych, a następnie stosuje do niego działania kontekstowe systemu operacyjnego. Jest schludny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 12:51:10
Nazywa się to wyrażeniem czasowym identyfikacją i analizą. Oto kilka wyszukiwań Google na początek:
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-31 21:41:03
Jedną z części układanki może być klasa NSDataDetector
. Służy do rozpoznawania niektórych standardowych typów, takich jak numery telefonów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 12:50:38
Kiedyś napisałem do tego parser, używając pyparsingu. To naprawdę bardzo proste, po prostu trzeba uzyskać wszystkie różne sposoby prawo, ale nie jest tak wiele. Zajęło to tylko kilka godzin i było dość szybkie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-25 10:42:21
Apple ma patent na to, jak to zrobili System i metodę wykonywania akcji na strukturze w danych komputerowych, A oto historia na ten patent jabłka-patent-na-nsdatadetector
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-31 02:42:57