iOS のメール クライアントでは、メールに日付、時間、場所が含まれている場合、テキストがハイパーリンクになり、リンクをタップするだけで予定を作成したり、地図を表示したりできます。これは英語のメールだけでなく、他の言語のメールにも適用されます。この機能は気に入っており、どのように実現されているのか理解したいです。
これを実行する単純な方法は、多数の正規表現を用意して、それらをすべて実行することです。ただし、これはあまり拡張性がなく、特定の言語や日付形式などにしか機能しません。Apple はエンティティ (8:00PM、8PM、8:00、0800、20:00、20h、20h00、2000 など) を抽出するために何らかの機械学習の概念を使用しているに違いないと思います。
Apple がどのようにしてメール クライアントでエンティティをすばやく抽出できるのかご存知ですか? このようなタスクを達成するために、どのような機械学習アルゴリズムを適用しますか?
ベストアンサー1
彼らはおそらく情報抽出このためのテクニック。
スタンフォードのデモはこちらSUタイム道具:
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 個の例があれば済むかもしれませんが、多ければ多いほど良いです。その後、アルゴリズムはそれらの例に基づいて学習し、これまでに見たことのない将来の例に適用できます。
次のようなルールを学習するかもしれません
- 前の単語が文字とピリオドだけの場合...
- 現在の単語は「february」、「mar.」、「the」などです。
- 次の単語は「12 番目」の any_number です...
- 日付は
がここにありますまともなビデオこの件についてGoogleのエンジニアが語る