132

iOSの電子メールクライアントでは、電子メールに日付、時刻、または場所が含まれている場合、テキストはハイパーリンクになり、リンクをタップするだけで予定を作成したり、地図を表示したりできます。英語のメールだけでなく、他の言語でも機能します。私はこの機能が大好きで、彼らがどのようにそれを行うのかを理解したいと思います。

これを行うための素朴な方法は、多くの正規表現を持ち、それらすべてを実行することです。ただし、これはあまり拡張性がなく、特定の言語や日付形式などでのみ機能します。Appleは、エンティティを抽出するために機械学習の概念を使用している必要があると思います(8:00 PM、8PM、8:00、 0800、20:00、20h、20h00、2000など)。

Appleが電子メールクライアントでエンティティをこれほど迅速に抽出できる方法について何か考えはありますか?そのようなタスクを実行するために、どの機械学習アルゴリズムを適用しますか?

4

6 に答える 6

154

彼らはおそらくこれに情報抽出技術を使用します。

以下は、スタンフォード大学の SUTime ツールのデモです。

http://nlp.stanford.edu:8080/sutime/process

ドキュメント内の n-gram (連続した単語) に関する属性を抽出します。

  • 文字数
  • シンボル数
  • 長さ
  • 前の単語
  • 次の単語
  • nextWordNumberOfSymbols
    ...

次に、分類アルゴリズムを使用して、正例と負例をフィードします。

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エンジニアによるまともなビデオです

于 2012-02-18T22:04:32.670 に答える
116

これは、Apple が実際に非常に昔に開発した技術で、Apple Data Detectors. 詳細については、こちらをご覧ください。

http://www.miramontes.com/writing/add-cacm/

基本的に、テキストを解析し、特定のデータを表すパターンを検出してから、OS コンテキスト アクションをそれに適用します。それはきちんとしています。

于 2012-02-25T10:10:10.450 に答える
21

これは、一時的な式の識別と解析と呼ばれます。開始するための 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

于 2012-02-15T21:12:26.283 に答える
7

パズルの一部はNSDataDetectorクラスかもしれません。これは、電話番号などのいくつかの標準タイプを認識するために使用されます。

于 2012-02-24T13:12:16.520 に答える
3

pyparsing を使用して、これを行うパーサーを作成したことがあります。それは本当に非常に単純です。さまざまな方法をすべて正しく行う必要があるだけですが、それほど多くはありません。数時間しかかからず、かなり高速でした。

于 2012-02-25T10:42:21.670 に答える
1

Appleは、彼らがどのようにそれを行ったかについて特許を取得しています。コンピュータデータの構造に対してアクションを実行するためのシステムと方法。これがこの特許の物語です。apples-patent-on-nsdatadetector

于 2012-07-31T02:42:57.747 に答える