[解決済み] Appleはどのように電子メールの日付、時間、アドレスを見つけるのですか?
質問
iOS のメールクライアントでは、メールに日付、時間、場所が含まれている場合、テキストがハイパーリンクになり、リンクをタップするだけで予定を作成したり地図を見たりすることが可能です。英語だけでなく、他の言語のメールにも対応しています。私はこの機能が大好きで、どのように行っているのか理解したいと思っています。
これを行う素朴な方法は、多くの正規表現を用意し、それらすべてを実行することです。しかし、これはあまりうまく拡張できず、特定の言語や日付の形式などに対してのみ機能することでしょう。Apple は、エンティティ (8:00PM, 8PM, 8:00, 0800, 20:00, 20h, 20h00, 2000 など) を抽出するために、何らかの機械学習の概念を使用しているに違いないと私は考えています。
Apple のメールクライアントで、どのようにしてエンティティをすばやく抽出することができるのか、見当はつきますか?そのようなタスクを達成するために、どのような機械学習アルゴリズムを適用しますか?
どのように解決するのですか?
彼らはおそらく 情報抽出 のテクニックを使っているのでしょう。
スタンフォード大学の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の例で済むかもしれませんが、多ければ多いほどよいでしょう。そうすれば、アルゴリズムはそれらの例に基づいて学習し、これまで見たことのない将来の例にも適用できるようになります。
次のようなルールを学習するかもしれません。
- 前の単語が文字とピリオドのみであれば
- で、現在の単語が "february", "mar.", "the" ... である場合。
- で、次の単語は "twelfth", any_number ... にある。
- は日付です。
ここでは まともなビデオ Google のエンジニアによるこのテーマに関する
関連
-
[解決済み】TensorFlowでtf.gradientsが動作する方法
-
[解決済み] Kerasにおける "Flatten "の役割とは?
-
[解決済み] コスト関数、線形回帰、シータをハードコーディングしないようにする。オクターブ
-
[解決済み】同じ問題で binary_crossentropy と categorical_crossentropy が異なる性能を示すのはなぜか?
-
[解決済み】教師あり学習と教師なし学習の違いは何ですか?[終了しました]
-
[解決済み】機械学習モデルの損失と精度の解釈の仕方【終了しました
-
[解決済み] Kerasにおける多対一および多対多のLSTMの例
-
[解決済み] Diablo 2をプレイするための人工ニューラルネットワークを視覚的に学習させる方法とは?
-
[解決済み] 期待値最大化手法の直感的な説明とは?[クローズド]
-
[解決済み] フィーチャーとラベルの違いは何ですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PyTorchのバックワード関数
-
[解決済み] エアフローとKubeflowパイプラインの違いは何ですか?
-
[解決済み] コスト関数、線形回帰、シータをハードコーディングしないようにする。オクターブ
-
[解決済み] kerasのtrain_on_batch()の使い道は?
-
[解決済み】線形回帰とロジスティック回帰の違いは何ですか?[クローズド]
-
[解決済み】同じ問題で binary_crossentropy と categorical_crossentropy が異なる性能を示すのはなぜか?
-
[解決済み】教師あり学習と教師なし学習の違いは何ですか?[終了しました]
-
[解決済み] Diablo 2をプレイするための人工ニューラルネットワークを視覚的に学習させる方法とは?
-
[解決済み] Appleはどのように電子メールの日付、時間、アドレスを見つけるのですか?
-
[解決済み] 期待値最大化手法の直感的な説明とは?[クローズド]