Apple은 이메일에서 날짜, 시간 및 주소를 어떻게 찾습니까?
iOS 전자 메일 클라이언트에서 전자 메일에 날짜, 시간 또는 위치가 포함되어 있으면 텍스트가 하이퍼 링크가되고 링크를 누르면 약속을 만들거나지도를 볼 수 있습니다. 영어 이메일뿐만 아니라 다른 언어로도 작동합니다. 이 기능을 좋아하고 그들이하는 방법을 이해하고 싶습니다.
이를 수행하는 순진한 방법은 많은 정규식을 가지고 모두 실행하는 것입니다. 그러나 나는 이것이 잘 확장되지 않으며 특정 언어 또는 날짜 형식 등에서 만 작동합니다. Apple은 엔티티 (8:00 PM, 8PM, 8:00, 0800, 20:00, 20h, 20h00, 2000 등).
애플이 어떻게 이메일 클라이언트에서 엔터티를 그렇게 빨리 추출 할 수 있는지 아십니까? 어떤 기계 학습 알고리즘을 적용하여 그러한 작업을 수행 하시겠습니까?
정보 추출 기술을 사용할 가능성이 높습니다 .
다음은 Stanford의 SUTime 도구 데모입니다.
http://nlp.stanford.edu:8080/sutime/process
문서에서 n- 그램 (연속 단어)에 대한 속성을 추출합니다.
- numberOfLetters
- numberOfSymbols
- 길이
- 이전 글
- nextWord
- nextWordNumberOfSymbols
...
그런 다음 분류 알고리즘을 사용하여 긍정적이고 부정적인 예를 제공하십시오.
Observation nLetters nSymbols length prevWord nextWord isPartOfDate
"Feb." 3 1 4 "Wed" "29th" TRUE
"DEC" 3 0 3 "company" "went" FALSE
...
당신은 각각의 50 가지 예를 피할 수 있지만 더 많은 메리를 얻을 수 있습니다. 그런 다음 알고리즘은 해당 예제를 기반으로 학습하여 이전에는 보지 못한 미래 예제에 적용 할 수 있습니다.
다음과 같은 규칙을 배울 수 있습니다
- 이전 단어가 문자 일 뿐이고 마침표 일 경우
- 현재 단어는 "2 월", "3 월", "the"에 있습니다 ...
- 다음 단어는 "12 번째", any_number ...에 있습니다.
- 그때는 데이트 야
다음은 주제에 관한 Google 엔지니어 의 훌륭한 비디오 입니다.
그것은 애플이 실제로 아주 오래 전에라는 기술을 개발 한 기술 Apple Data Detectors
입니다. 자세한 내용은 여기를 참조하십시오.
http://www.miramontes.com/writing/add-cacm/
기본적으로 텍스트를 구문 분석하고 특정 데이터 조각을 나타내는 패턴을 감지 한 다음 OS 컨텍스트 작업을 적용합니다. 깔끔합니다.
이를 임시 표현식 식별 및 구문 분석이라고합니다. 시작하기위한 Google 검색은 다음과 같습니다.
https://www.google.com/#hl=ko&safe=off&sclient=psy-ab&q=timebank+timeml+timex
https://www.google.com/#hl=ko&safe=off&sclient=psy-ab&q=temporal+expression+tagger
퍼즐의 한 부분은 NSDataDetector
수업 일 수 있습니다 . 전화 번호와 같은 일부 표준 유형을 인식하는 데 사용됩니다.
한 번은 pyparsing을 사용하여 파서를 작성했습니다. 정말 간단합니다. 모든 다른 방법을 올바르게 사용해야하지만 그다지 많지는 않습니다. 단지 몇 시간이 걸렸고 꽤 빨랐습니다.
Apple은 컴퓨터 데이터의 구조에 대한 조치를 수행하기위한 시스템 및 방법에 대한 특허를 보유하고 있으며, 이 특허 사과 에 관한 이야기는 다음 과 같습니다.
참고 URL : https://stackoverflow.com/questions/9294926/how-does-apple-find-dates-times-and-addresses-in-emails
'Programing' 카테고리의 다른 글
반응 기본에서 버튼 비활성화 (0) | 2020.07.03 |
---|---|
하나의 라이너를 파일 앞에 추가 (0) | 2020.07.03 |
ASP.Net Web API GET에 여러 매개 변수를 어떻게 전달해야합니까? (0) | 2020.07.03 |
i- 프레임을 통한 YouTube 비디오 내장 z- 인덱스를 무시 하시겠습니까? (0) | 2020.07.03 |
일부 프로젝트가 여러 솔루션에 포함 된 경우 모든 솔루션에 대한 공통 너겟 패키지 폴더 설정 (0) | 2020.07.02 |