Yandex.Mailが必要なものを理解し始めた方法

数分前、Yandex.Mailは手紙の読み書きの新しいアプローチを発表しました。 最新のメールは、現在よりもはるかに賢くなければならないと考えています。 彼女は何が書かれているかを理解し、すぐにそれに対応するのを助けなければなりません。 また、ユーザーが一緒に何かをできるようにすることをお勧めします。 プレスリリースの新機能についてもう少し読むことができます。 この投稿では、今日発表された最も重要なイノベーションの1つがどのように機能するかを説明したいと思います。



Yandex.Mailはイベントについて通知することができます



私たちは正確に何をしましたか



メールが手紙の内容に関連してあなたのために定期的な仕事をし始めたらどうしますか? たとえば、重要なイベントを忘れないようにするのに役立ちます。海への今後の出発を思い出させ、必要なリンクと有用な情報を提供します。 言語学部門の私の同僚は非常に特殊な技術を適用しており、これが電子メールの概念を変えることを願っています。



このテクノロジーにより、特別なアルゴリズムをレターのコンテンツに自動的に適用し、コンピューターから理解できる構造の形で特定の事実を抽出することができます。 そのおかげで、Yandex.Mailはあなたの手紙に関連するより多くのコンテキスト情報を伝えることができます。



たとえば、手紙にイベントへの招待状が含まれていて、開催場所が正確に示されている場合、この場所を地図上に表示し、迷子にならないようにします。



Yandex.Mailのイベントに関する通知



背後にあるテクノロジー



それで、あなたは友人から手紙を受け取りました。彼はあなたに興味深い会議や映画を呼びます。 コンピューターの観点から見ると、このテキストはバイトの集まりにすぎません。 しかし、人はテキスト内の主要なオブジェクトと画像を強調表示できます。



Yandex.Mailでのレターの処理は、その受信と保存の瞬間からも開始されます(このプロセスを「ブックマーク」と呼びます)。 スパム防御は、検証中にヒューリスティックアルゴリズムを使用し、所属するタイプを決定します。飛行機の電子チケット、ソーシャルネットワークからの手紙、人からの手紙など。



文字が割り当てられるタイプに応じて、表示時のテキスト(事実を抽出するという点ではドキュメントと呼ばれます)は、抽出のために1つまたは別のハンドラーに送信されます。 ファクトハンドラーは、単純かつ高速(単純な正規表現など)であり、非常に複雑な場合があります。



マシンが自然言語テキストを理解し、アルゴリズムのこの機能を実装できるようにする多くの方法は、情報を抽出するより一般的なタスクの一部です。 Yandex.Mailは、富田 アルゴリズムに基づいた富田パーサーを使用しイベント招待を取得します。 2012年の終わりにアクセスできるようになりました。



富田パーサー自体は、文脈自由文法を書くためのツールです。 その助けを借りて、誰でもテキストの構造化に使用する一連のテンプレートを説明できます。 パーサーは、言語学者が記述するキーワード辞書とルールに基づいて動作します。 辞書は非常に大きくなる場合があります。



レターでのイベントの認識方法



例としてパーサーの動作を考えてください。 次のテキストを含むメールが届きます:



「2013年11月21日に、ロシア科学アカデミー言語学研究所(サンクトペテルブルク)で、若手研究者向けの類型学と文法に関する第10回会議が開催されます。」



Tomiteには、どの言葉が招待状の「頂点」になり得るかについての証拠があります。 たとえば、動詞「invite」、「pass」、「take place」-これは動詞「pass」の形式です。 「トップ」には、入力する必要があるコンポーネントのセットがあります。 文を取得するには、実際の動詞に加えて、文でイベントの名前とその日付を示す必要があります。 動詞「パススルー」の場合、イベントの名前は主語でなければなりません。他の文脈では、他の構文の役割で表現できます。 たとえば、動詞「invite」では、イベントを追加(会議への招待、訪問への招待)として表現する必要があります。



日付と名前に加えて、イベントには場所と時間が含まれる場合があります。 組織と住所は、内部構造と辞書によって文法で区別されます。 たとえば、名前に「研究所、銀行、ホテル」というキーワードが含まれている場合、これらの従属語を含むキーワードは会社として抽出されます。 上記の例では、「ロシア科学アカデミー言語学研究所」が抽出されています。



イベントに関する情報を含むブロックは、ページの顕著な上部でメッセージが開かれたときにYandex.Mailインターフェイスに表示されます。 この配置では、ファクトを抽出する時間が非常に重要です。ユーザーの待ち時間を大幅に増やすことはできません。 最初の試みで十分なパフォーマンスを達成できなかったことを認めなければなりません。 ロシア語に関するパーサー自身の知識の量は、辞書とともに約1 GBを占めます。 Yandex.Mailには1秒間に約1,000文字が表示されます。それぞれの文字について、事実を強調表示し、表示のためにフロントエンドに送信する必要があります。 クライアント側でキャッシュを積極的に使用しているにもかかわらず、取得要求の数が多すぎて、合意された時間を満たすことができませんでした。



富田アルゴリズムはテキストを順番に処理します。 したがって、ドキュメント自体が大きいほど、処理に時間がかかります。 したがって、高速化するために、テキストをいくつかの部分に分割し、それぞれを個別に並列ストリームで処理します。 さらに、文の境界に沿ってテキストを分割します-これにより、重要な情報が失われる可能性が低くなります。 応答率は向上しましたが、既存のクラスターのコンピューティングリソースでは、このようなデータストリームを処理するのに十分ではありませんでした。



もちろん、ファクトの抽出に関与するマシンの数を増やすことは可能でしたが、特別な正規表現によってイベントをドキュメントに含めることができるかどうかを決定する事前フィルターを富田の前に置くことにしました。 後者の場合、完全に抽出するためにテキストを送信する必要はありません。 さらに、このような正規表現を意図的に選択したため、より多くの誤検知が発生する可能性が高くなります。 パーサーへのリクエストの数は半分になり、マシンをアンロードして他のタスクのためにリソースを解放することができました。



イベントは文字の3.5%に含まれており、毎日100万を超えるイベントから情報を抽出しています。 現在、私たちのケースには約500個のテンプレートがあり、さらに3,500個のテンプレートが準備中です。これにより、作業の精度が大幅に向上します。



電子チケットを解析する方法



イベントの抽出が開始されてからしばらくして、Yandex.Mailユーザーを支援し、各電子チケットにある情報を特別な方法で表示する方法について考えました。 たとえば、手紙に行かずに目的地を報告したり、手紙のリストで電子チケットを追加で選択したり、到着都市の天気を表示したりできます。



シンプルなテキストで構成されるチケットの場合、同じTomitパーサーを使用しましたが、予約システムと航空会社からのほとんどの手紙にはhtmlマークアップが含まれており、自然言語はほとんどありません。 富田はこのような状況ではうまく機能しないので、Yandex.Marketで優れていることが証明された技術を基礎としました。 ドキュメントのhtmlマークアップをxmlタグツリーとして使用し、さまざまな送信者のテンプレートを作成します。 ツリーを解析する前に、ドキュメントを追加で処理し、正しいxmlビューに追加します。



主に正規表現とxpathで構成されるこれらのパターンに従って、必要な情報を選択して回答を作成します。 必要な情報だけが含まれるようにツリー要素を選択できるとは限りません-約3分の1の場合、要素にはキー情報を含む文が含まれます。 そこで、私たちは再び富田を思い出し、そのような文を解析するための一連の文法を作成しました。



レターからチケットに関する基本情報を抽出した後、Yandexスケジュールでそれを指定します。これには、フライトに関する最も関連性の高い情報が常に含まれます。 この情報に基づいて、当社はチケットを他のサービスからのデータで補完します:天気、為替レート、空港リンク、電子チェックイン。



プライバシーはどうですか?



Habrの聴衆は、メールのすべての手紙が何十もの異なるスクリプトによって解析されることを他に類をみません。 スパム防御はそのように配置されています-その作業は、文字の自動分析と、メッセージをスパムに移動するかどうかの決定を行うことに限定されます。



富田さんです。 あなたが落ち着くことができるように、私たちはいくつかのレベルの保護を提供しました:テキストは機械によってのみ分析されます-人間の介入なしで。 要求に関する統計情報のみがシステムログに保存されます:実行時間、検出されたファクトの種類と数、および決定されたフィールドの数。 手紙のテキスト自体は、匿名形式で事実を抽出するために送信されます-技術的なヘッダーなしで、送信者と受信者を指定しません。



システムの初期トレーニングと文法の編集では、人間の参加が不可欠です。これは、言語学者が行う骨の折れるプロセスです。 彼のために、オープンソースのテキスト、たとえばLiveJournalやソーシャルネットワークに関するコメントを使用します。 十分な例がない場合は、従業員に、トレーニングや文法作成に適した手紙の例を送信するよう依頼します。 これが航空券で行ったことです。 さらに、航空会社のトップ30のディスパッチャを編集し、郵便局に協力してもらいました。 メールの革新がここでどのように見えるか見ることができます。



All Articles