IOSメールクライアントでは、メールに日付、時刻、または場所が含まれる場合、テキストはハイパーリンクになり、リンクをタップするだけで予定を作成したり、地図を表示したりすることができます。英語のメールだけでなく、他の言語でも機能します。私はこの機能が大好きで、どのように機能するかを理解したいと思います。
これを行うための単純な方法は、多くの正規表現を用意し、それらすべてを実行することです。ただし、これはあまりうまくスケーリングできず、特定の言語や日付形式などでのみ動作します。Appleは、機械学習の概念を使用してエンティティを抽出する必要があると思います(8:00 PM、8PM、 8:00、0800、20:00、20h、20h00、2000など)。
Appleがその電子メールクライアントでエンティティを非常に迅速に抽出できる方法はありますか?そのようなタスクを達成するには、どの機械学習アルゴリズムを適用しますか?
おそらく Information Extraction テクニックを使用します。
スタンフォードのSUTimeツールのデモは次のとおりです。
http://nlp.stanford.edu:8080/sutime/process
ドキュメント内のn-gram(連続した単語)に関する属性を抽出します。
そして、分類アルゴリズムを使用して、正と負の例を提供します。
Observation nLetters nSymbols length prevWord nextWord isPartOfDate
"Feb." 3 1 4 "Wed" "29th" TRUE
"DEC" 3 0 3 "company" "went" FALSE
...
それぞれの50の例で逃げるかもしれませんが、もっと楽しいです。次に、アルゴリズムはそれらの例に基づいて学習し、これまでに見たことのない将来の例に適用できます。
次のようなルールを学習する場合があります
これは まともな動画 この件についてのGoogleエンジニアによるものです
それは技術ですAppleは実際に非常に長い時間前にApple Data Detectors
。詳細については、こちらをご覧ください。
http://www.miramontes.com/writing/add-cacm/
基本的に、テキストを解析し、特定のデータを表すパターンを検出し、OSコンテキストアクションを適用します。きれいです。
これは、時間表現の識別と解析と呼ばれます。開始するためのGoogle検索を次に示します。
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
パズルの一部はNSDataDetector
クラスです。電話番号などの標準タイプを認識するために使用されます。
私はかつて、pyparsingを使用してこれを行うパーサーを作成しました。それは本当に非常に簡単です、あなたはちょうどすべての異なる方法を正しくする必要がありますが、それほど多くはありません。数時間しかかからず、非常に高速でした。
Appleは、その方法について特許を取得しています コンピューターデータ内の構造に対してアクションを実行するためのシステムと方法 、そしてこの特許に関するストーリーはこちら apples-patent-on-nsdatadetector =