(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022097448
(43)【公開日】2022-06-30
(54)【発明の名称】検索エンジンクエリを改善するためのコンピュータ実装方法
(51)【国際特許分類】
G06F 16/951 20190101AFI20220623BHJP
【FI】
G06F16/951
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021204837
(22)【出願日】2021-12-17
(31)【優先権主張番号】20306626.1
(32)【優先日】2020-12-18
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】宍戸 萌香
(72)【発明者】
【氏名】エム.シャビエル グレアン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA05
(57)【要約】
【課題】検索エンジンクエリを改善するためのコンピュータ実装方法を提供する。
【解決手段】検索エンジンクエリを改善するためのコンピュータ実装方法は、a.テキストコーパスを受け取るステップと、b.それぞれがテキストコーパスの一連の連続する単語であり、一連の連続する単語の数が2以上の整数nである、nグラム候補のリストを決定するステップと、c.nグラム候補のリストに基づいて、少なくとも部分的にテキストコーパスを修正するステップと、d.結果のテキストコーパスに対して機械学習埋め込みを実行するステップと、e.nグラム候補のリスト内の各要素について、要素の埋め込みおよび要素を構成する単語の埋め込みに基づいてスコアを計算するステップと、f.1つ以上のnグラム候補を、それらのそれぞれのスコアに基づいて、検索エンジンクエリアイテムリストに追加するステップとを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
検索エンジンクエリを改善するためのコンピュータ実装方法であって、
a.テキストコーパスを受け取るステップと、
b.それぞれが前記テキストコーパスの一連の連続する単語であり、前記一連の連続する単語の数が2以上の整数nである、nグラム候補(6)のリストを決定するステップと、
c.前記nグラム候補のリストに基づいて、少なくとも部分的に前記テキストコーパス(8)を修正するステップと、
d.前記結果のテキストコーパスに対して機械学習埋め込み(10)を実行するステップと、
e.前記nグラム候補のリスト内の各要素について、前記要素の前記埋め込みおよび前記要素を構成する前記単語の前記埋め込みに基づいてスコア(12)を計算するステップと、
f.1つ以上の前記nグラム候補を、それらのそれぞれのスコアに基づいて、検索エンジンクエリアイテムリストに追加するステップと
を含むコンピュータ実装方法。
【請求項2】
ステップc.は、ステップb.の前記nグラム候補のリストで前記テキストコーパスを解析するステップと、前記テキストコーパスの一連の連続する単語が、前記nグラム候補のリストの所与の要素を構成するたびに、対応する前記所与の要素に関連付けられたトークンによって前記一連の連続する単語を置き換えるステップと、を含む請求項1に記載のコンピュータ実装方法。
【請求項3】
ステップc.は、前記nグラム候補のリストの所与の要素を構成する前記テキストコーパスの一連の連続する単語を識別する際に、前記テキストコーパスの前記一連の連続する単語に連続する1つまたは複数の単語が、前記テキストコーパスの前記一連の連続する単語の最後の単語のうちの1つまたは複数を有する前記nグラム候補のリストの異なる要素を構成するかどうかを決定するステップと、そのような場合に、前記異なる要素を構成する前記一連の連続する単語を複製するステップと、前記異なる要素に関連付けられたトークンによって前記一連の連続する単語を置き換えるステップと、をさらに含む請求項2に記載のコンピュータ実装方法。
【請求項4】
ステップc.は、前記テキストコーパスの各単語が、2以上の整数nである前記一連の連続する単語の数に等しい回数現れるように前記テキストコーパスをコピーするステップと、数が2以上の整数nである一連の連続する単語によって各センテンスを分析することによって、前記テキストコーパスの各コピーを解析するステップであって、コピーの各センテンスはオフセットで解析され、前記オフセットはコピーごとに異なるステップと、を含む請求項1に記載のコンピュータ実装方法。
【請求項5】
ステップc.は、ステップb.の前記nグラム候補のリストで前記テキストコーパスを解析するステップと、前記テキストコーパスの一連の連続する単語が前記nグラム候補のリストの所与の要素を構成するたびに、前記テキストコーパスの前記一連の連続する単語に連続する1つまたは複数の単語が、前記テキストコーパスの前記一連の連続する単語の最後の単語のうちの1つまたは複数を有する前記nグラム候補のリストの異なる要素を構成するかどうか決定するステップと、そのような場合に、前記所与の要素を構成する前記一連の単語が、既に解析された前記テキストコーパスの前記一部内の対応する前記所与の要素に関連付けられた前記トークンによって既に置き換えられた回数によってパラメータ化された疑似ランダム関数を使用して、前記所与の要素を構成する前記一連の連続する単語を単一の単語トークンとしてトークン化する必要があるかどうか決定する値を計算するステップと、同じ処理を前記異なる要素を構成する前記一連の連続する単語に適用するステップと、を含む請求項1に記載のコンピュータ実装方法。
【請求項6】
ステップe.は、前記要素の前記埋め込みと前記要素を構成する前記単語の前記埋め込みとの間のコサイン距離またはユークリッド距離を計算するステップを含む、請求項1から5のいずれか1項に記載のコンピュータ実装方法。
【請求項7】
前記一連の前記連続する単語の数が2に等しく、ステップe.は、前記要素の埋め込みと前記所与の要素を構成する前記単語の前記埋め込みの合計との間の前記距離の最大値、および前記要素の前記埋め込みと前記要素を構成する前記単語のそれぞれの別個の埋め込みとの間の前記距離を計算するステップを含む、請求項1から5のいずれか1項に記載のコンピュータ実装方法。
【請求項8】
前記一連の前記連続する単語の数が3に等しく、ステップe.は、前記要素の前記埋め込みと、前記所与の要素を構成する前記単語の2つの連続する単語の前記埋め込みおよび前記要素を構成する残りの単語の前記埋め込みの合計との間の前記距離の最大値を計算するステップを含む、請求項1から5のいずれか1項に記載のコンピュータ実装方法。
【請求項9】
ステップb.は、単語間の自己相互情報量を使用するステップを含む、請求項1から8のいずれか1項に記載のコンピュータ実装方法。
【請求項10】
請求項1から9のいずれか1項に記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項11】
請求項10に記載の前記コンピュータプログラムを記録したデータ記憶媒体。
【請求項12】
メモリ(4)に結合されたプロセッサを含むコンピュータシステムであって、前記メモリ(4)は、請求項10に記載の前記コンピュータプログラムを記録したコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索エンジンクエリを改善するためのコンピュータ実装方法に関する。
【背景技術】
【0002】
検索エンジンの分野は、インターネットのクロールに限定されない。検索エンジンは、特に設計および獲得の目的で、企業の情報システムのますます重要な部分になりつつある。
【0003】
このような検索エンジンの問題の1つは、検索の精度の必要性が一般的なアプリケーションよりもはるかに重要であるということである。したがって、この精度を向上させるために、ドキュメントに関連する語彙を確立することが重要である。これらの語彙を確立する際の問題の1つは、多くの場合、最も重要な意味を持つ要素が単一の単語ではなく、フレーズとしても知られる単語のグループであるということである。
【0004】
実際、自然言語では、単語は正確な意味の単位ではない。これは、一部の単語が複数の意味を有するためであり(同音異義語)、一部の意味は複数の単語で表現されるためである。
【0005】
したがって、ドキュメント内のフレーズを検出できることが非常に重要である。もちろん、これはすべて「手作業」で行うことができる。しかし、人間の索引付けに関する大きなバイアスがある。フレーズ検出は、知識グラフ、シソーラス、分類法、オントロジーの(半)自動化された強化にも必要であり、これには、語彙、エンティティのリスト、概念、および出現形態に単語およびフレーズを提案または自動的に追加することが含まれる。
【0006】
最先端のフレーズ検出技術は、頻度主義的アプローチを使用して、偶然よりも頻繁に発生するnグラム(n-gram)を見つけることであり、nグラムは一連のn個の連続する単語であり、nは所与のテキストのセンテンスにおける最大単語数を超えることのできない整数である。
【0007】
これは通常、t検定またはカイ2乗検定などの仮説検定を使用するか、もしくは自己相互情報量(PMI)を使用して行われる。PMIは、nグラムの発生頻度にほぼ比例し、各トークンの発生頻度の積に反比例する。トークン化するという表現は、テキストの一部をより小さな単位に分割することを意味することに留意されたい。トークン化の方法は言語固有であるが、最も一般的なのは、スペースおよび句読点に基づいてテキストを分割することである。
【0008】
フレーズ内で新しい意味の単位を検出するためにそのような頻度主義的アプローチを使用することの問題は、頻度主義的アプローチが最頻出の表現および頻出する単語で構成された表現に対して機能することである。これは、頻度のより低い表現または頻度のより低い単語で構成された表現が、高いまたは低いスコアを誤って有する傾向があることを意味する。また、これらの方法は頻度バイアスの影響を受ける。言い換えれば、それらは多くの現実のコーパスには当てはまらない単語の出現の統計的分布を仮定している。たとえば、単語のグループが偶然よりも頻繁に発生することを検出するためのPMIの使用は、単語の出現が独立しており、同じように分布しているという仮説に依存している。これは一般的には当てはまらない。実世界のコーパスでは、ある種のスピーチは人為的に頻繁に行われる。たとえば、シェイクスピアのハムレットでは、「Enter Horacio」は、それが意味の単位であるためではなく、ハムレットが戯曲であるために頻出する表現である。産業用部品の分野では、「passive component」または「linear integrated circuit」とは対照的に、部品カタログの説明でよく見られるが、意味の単位はない「download part」、「request price」、「download model」という表現が考えられる。
【0009】
これは、単語が意味の単位であるという仮定に依存する、ほとんどの現代の自然言語処理技術にも当てはまる。これは、単語の埋め込み、およびドキュメントのベクトル化(たとえば、単語のバッグのベクトル化だけでなく、リカレントネットワークも使用する)の場合である。
【0010】
したがって、自動フレーズ検出には問題がある。
【0011】
本発明は、この状況を改善することを目的としている。
【発明の概要】
【0012】
本発明は、この状況を改善することを目的としている。この目的のために、出願人は、検索エンジンクエリを改善するためのコンピュータ実装方法であって、
a.テキストコーパスを受け取るステップと、
b.それぞれがテキストコーパスの一連の連続する単語であり、一連の連続する単語の数が2以上の整数nである、nグラム候補のリストを決定するステップと、
c.nグラム候補のリストに基づいて、少なくとも部分的にテキストコーパスを修正するステップと、
d.結果のテキストコーパスに対して機械学習埋め込みを実行するステップと、
e.nグラム候補のリスト内の各要素について、要素の埋め込みおよび要素を構成する単語の埋め込みに基づいてスコアを計算するステップと、
f.1つ以上のnグラム候補を、それらのそれぞれのスコアに基づいて、検索エンジンクエリアイテムリストに追加するするステップと
を含むコンピュータ実装方法を提案する。
【0013】
この方法は、2つ以上の単語が新しい意味の単位を形成する場合、すなわち、並置されたときにテキストの意味に個別には寄与しないが、その代わりにそれらの並置は、埋め込みを使用することにより、単一の新しい意味の単位を生成する単語を考慮に入れる自動フレーズ検出を可能にするため有利である。これは、たとえば「ice cream」または「bottom line」のケースである。
【0014】
様々な実施形態では、この方法は、以下の特徴のうちの1つまたは複数を提示し得る。
【0015】
-ステップc.は、ステップb.のnグラム候補のリストでテキストコーパスを解析するステップと、テキストコーパスの一連の連続する単語が、nグラム候補のリストの所与の要素を構成するたびに、対応する所与の要素に関連付けられたトークンによって一連の連続する単語を置き換えるステップと、を含み、
-ステップc.は、nグラム候補のリストの所与の要素を構成するテキストコーパスの一連の連続する単語を識別する際に、テキストコーパスの一連の連続する単語に連続する1つまたは複数の単語が、テキストコーパスの一連の連続する単語の最後の単語のうちの1つまたは複数を有するnグラム候補のリストの異なる要素を構成するかどうかを決定するステップと、そのような場合に、異なる要素を構成する一連の連続する単語を複製するステップと、異なる要素に関連付けられたトークンによって一連の連続する単語を置き換えるステップと、をさらに含む。
【0016】
-ステップc.は、テキストコーパスの各単語が、2以上の整数nである一連の連続する単語の数に等しい回数現れるようにテキストコーパスをコピーするステップと、数が2以上の整数nである一連の連続する単語によって各センテンスを分析することによって、テキストコーパスの各コピーを解析するステップであって、コピーの各センテンスはオフセットで解析され、オフセットはコピーごとに異なるステップと、を含み、
-ステップc.は、ステップb.のnグラム候補のリストでテキストコーパスを解析するステップと、テキストコーパスの一連の連続する単語がnグラム候補のリストの所与の要素を構成するたびに、テキストコーパスの一連の連続する単語に連続する1つまたは複数の単語が、テキストコーパスの一連の連続する単語の最後の単語のうちの1つまたは複数を有するnグラム候補のリストの異なる要素を構成するかどうか決定するステップと、そのような場合に、所与の要素を構成する一連の単語が、既に解析されたテキストコーパスの一部内の対応する所与の要素に関連付けられたトークンによって既に置き換えられた回数によってパラメータ化された疑似ランダム関数を使用して、所与の要素を構成する一連の連続する単語を単一の単語トークンとしてトークン化する必要があるかどうか決定する値を計算するステップと、同じ処理を異なる要素を構成する一連の連続する単語に適用するステップと、を含み、
-ステップe.は、要素の埋め込みと要素を構成する単語の埋め込みとの間のコサイン距離またはユークリッド距離を計算するステップを含み、
-一連の連続する単語の数が2に等しく、ステップe.は、要素の埋め込みと所与の要素を構成する単語の埋め込みの合計との間の距離の最大値、および要素の埋め込みと要素を構成する単語のそれぞれの別個の埋め込みとの間の距離を計算するステップを含み、
-一連の連続する単語の数が3に等しく、ステップe.は、要素の埋め込みと、所与の要素を構成する単語の2つの連続する単語の埋め込みおよび要素を構成する残りの単語の埋め込みの合計との間の距離の最大値を計算するステップを含み、
-ステップb.は、単語間の自己相互情報量を使用するステップを含む。
【0017】
本発明はまた、本発明の方法を実行するための命令を含むコンピュータプログラム、このコンピュータプログラムを記録したデータ記憶媒体、および請求項10のこのコンピュータプログラムを記録したメモリに結合されたプロセッサを含むコンピュータシステムに関する。
【0018】
本発明の他の特徴および利点は、本発明の例示的な実施形態を示し、以下の図面の説明に容易に現れるであろう。
【図面の簡単な説明】
【0019】
【
図1】
図1は、本発明によるシステムの一般的な概略図である。
【
図2】
図2は、「fast food」という表現のケースと、その単語のセットの言い換えに対する比較を示す図である。
【発明を実施するための形態】
【0020】
図面と以下の説明は、ポジティブで明確に定義された機能の大部分を構成している。結果として、それらは本発明を理解するのに有用であるだけでなく、必要が生じた場合にその定義に寄与するために使用することもできる。
【0021】
説明は、著作権によって保護されたまたは保護可能な要素を参照または使用する場合がある。出願人は、必要な法的出版物に限定されている限り、これらの要素の複製に異議を唱えないが、これは権利の放棄またはいかなる形式のライセンスとしても解釈されるべきではない。
【0022】
図1は、本発明によるシステムの一般的な概略図を示している。システム2は、メモリ4、候補検出ユニット6、コーパス修正ユニット8、埋め込みユニット10、および検出されたフレーズのリスト14を返すスコアリングユニット12を備える。
【0023】
メモリ4は、フレーズ検出が求められるテキストコーパスデータ、ならびに本発明を実行する過程で生成され得る任意の一時的なデータを格納する。メモリ4はまた、それが決定された後、検出されたフレーズのリスト14を格納し得る。
【0024】
本明細書で説明する例では、メモリ4は、任意の適切な方法で、すなわち、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリ、プロセッサに埋め込まれたメモリ、クラウド内でアクセス可能な遠隔ストレージなどの手段によって実現され得る。
【0025】
本明細書で説明する例では、候補検出ユニット6、コーパス修正ユニット8、埋め込みユニット10、およびスコアリングユニット12は、1つまたは複数のプロセッサ上で実行されるコンピュータプログラムである。このようなプロセッサには、CPU、GPU、CPUおよび/またはGPUグリッド、リモート計算グリッド、特別に構成されたFPGA、特別に構成されたASIC、SOCまたはNOCなどの特殊チップ、AI専用チップなどの自動計算を実行するために知られている任意の手段が含まれる。
【0026】
候補検出ユニット6は、フレーズ検出がメモリ4から求められるテキストコーパスを受信し、結果として得られたnグラム候補は、コーパス修正ユニット8に供給される。コーパス修正ユニット8は、テキストコーパスに含まれる単語の埋め込みを準備するために、また、nグラム候補間の可能な重複を考慮に入れるために、テキストコーパスを修正する。その後、埋め込みユニット10は、修正されたテキストコーパスに対して機械学習埋め込みを実行し、修正されたテキストコーパスの固有の単語ごとに埋め込みを返す。最後に、スコアリングユニット12は、それらの間の埋め込みを比較して、nグラム候補が実際に新しい意味を構成するかどうか、またはそれらがそれらを構成する単語の単純な並置であるかどうかを決定する。
【0027】
本発明の概念を例示するために、
図2は、その単語のセットの言い換えではない「fast food」という表現のケースを示している。「fast food」は、速い食べ物とは意味的に異なる。
図2の矢印は、「fast」、「food」、および「fast food」のそれぞれの表現に対して計算される埋め込みに関連している。
【0028】
以下に示すように、本発明は、word2vecなどの機械学習単語埋め込み技術の使用に依存し、これによれば、2つの単語の意味の並置がそれらのそれぞれの意味の合計である場合、この並置の埋め込みはほぼ並置内の単語の埋め込みの合計に等しい。「fast food」のケースでは、速い食べ物を指定していないため、「fast」および「food」の埋め込みの合計は「fast food」の埋め込みとは異なる。
【0029】
以下では、埋め込みユニット10は、単一の単語表現に進む。したがって、候補検出ユニット6およびコーパス修正ユニット8を使用して、nグラム候補が単一の単語形式である修正されたテキストコーパスを提供する必要がある。
【0030】
nグラム候補を決定するために、候補検出ユニット6は、テキストコーパスに対して以下の操作のうちの1つまたは複数を適用し得る。
-テキストコーパスをセンテンスに分割して、複数のセンテンスと重複するnグラムを回避し、
-テキストコーパスを名詞チャンクと動詞チャンクに分割し、
-任意選択で、ストップワードでテキストを分割する。これは、近似的または不正確な文法のテキストには役立つが、検出漏れ(false negatives)を生じさせる可能性がある。また、「概念実証」または「大規模」などのストップワードを含むフレーズは、結果として検出されない。明確にするために、「ストップワード」は、冠詞(the、a)および前置詞(of、in at)などの非常に一般的な単語のセットであり、通常、テキストコーパスの意味にはあまり寄与しない。さらに任意選択で、テキストコーパスを品詞、つまり名詞、動詞、および形容詞などの文法グループでさらにフィルタリングすることができ、これらのグループには、用途に応じて単語が分割される。
【0031】
その後、候補検出ユニット6は、許容閾値を使用して、残りの各テキストチャンクに対して、PMIなどの最先端のコロケーション検出方法を使用し得る。たとえば、テキストコーパス内のすべての可能なnグラムの中から、単語間の自己相互情報量が最も高いnグラムを選択し得る。可能なすべてのnグラムが保持されるわけではないが、候補検出ユニット6は、検出されたフレーズのリスト14で取得されると予想されるよりも多くのnグラム、たとえば10、100、または1000倍を選択するように配置し得る。これにより、一時的に誤検出(false positives)が許可され、検出漏れが回避される。本発明のコンテキストにおいて、誤検出は、nグラムを構成する単語の意味の追加とは異なる意味を持たないnグラムであり、一方、検出漏れは、特定の意味を持つ潜在的な単語のセットとして検出されないnグラムである。誤検出は、埋め込みユニット10およびスコアリングユニット12の組み合わせ作業によって破棄される。明確にするために、「nグラムを構成する単語」という表現は、一緒にされた単語がそのnグラムを構成することを意味することを理解されたい。例として、nグラムが「New York City」である場合、このnグラムを構成する単語は「New」、「York」、および「City」である。PMIの他に、t検定、カイ2乗検定、頻度などの仮説検定も使用し得る。
【0032】
候補検出ユニット6によってnグラム候補が識別された後、埋め込みユニット10によってnグラム候補が単一の単語として見られるように、テキストコーパスを修正する必要がある。これは、基本的に2つのアクションを実行するコーパス修正ユニット8によって実行される。
-テキストコーパス内のnグラム候補を、単一の単語トークンに変換する。これは、たとえば、空白でトークンを単純に分割すること、およびnグラム候補のトークン間で空白をアンダースコアなどの特殊文字に置き換えることによって実行することができる。
-任意選択で、テキストコーパスの一部またはすべてを複製して、nグラム候補の重複を考慮する。
【0033】
nグラム候補の重複の概念を説明するために、「New York City」という表現を例にとってみる。この表現には、次のもっともらしい2-グラムの「New York」および「York City」、ならびに3-グラムの「New York City」が含まれている。コーパス修正ユニット8が率直に機能する場合、この表現は常に「New York」および「city」にトークン化されるが、これは必ずしも必要ではない。
【0034】
言い換えると、nグラムの重複が存在する場合、表現を複製しないと一部のnグラムが失われ、それは完全に消えるか、または正確な埋め込みを生成するのに十分な頻度で現れなくなる。同時に、これらの表現を体系的に複製すると、コーパスの一部を人為的に繰り返すことによって埋め込みにバイアスがかかる。
【0035】
出願人は、誘発されたバイアスを制限しながら、nグラムの重複を考慮に入れるため、表現を複製するために使用できるいくつかの方法を特定した。
【0036】
第1の方法によれば、全文コーパスが複製され、各センテンスはn(後で求められるnグラムの整数)に等しいサイズの単語のグループによって解析される。ただし、コーパスの別個の各バージョンでは、センテンスはnに関するオフセットで解析され、単一の単語トークンとして検出されたnグラムを保持することにより、解析されたテキストをトークン化する。
【0037】
たとえば、nが2に等しく、テキストコーパスが「I will use anti lock brake systems」である場合、テキストコーパスの第1のバージョンは「I will」「use anti」「lock break」「systems」として解析され、一方、テキストコーパスの第2のバージョンは、「will use」「anti lock」「brake system」として解析される。nグラム候補の「anti lock」、「lock brake」、および「brake systems」が与えられると、テキストコーパスの第1のバージョンは「I、will、use、anti、lock_brake、systems」としてトークン化される。第2のバージョンは、「will、use、anti_lock、brake_systems」としてトークン化される。
【0038】
もちろん、0からnマイナス1の範囲のオフセットを使用して、他のnの値でも同じことが行われる。
【0039】
この方法は、導入するのが非常に簡単で、バイアスを大幅に制限するため、非常に有利である。ただし、テキストコーパスの残りの単語は複製されるが、重複nグラムは複製されないため、重複は不利であると主張することができる。
【0040】
第2の方法によれば、コーパス修正ユニット8は、nグラム頻度のパレート曲線を平坦化し得る。この第2の方法では、不必要に頻出する単語を、それらが構成するnグラムに再分配する。また、まれな重複するnグラムを含むコンテンツを複製して、トレーニングサンプル(テキストのチャンク)をまれな情報(まれなnグラム)でブーストする一方で、トレーニングバイアスを制限する。
【0041】
この方法は、次のように実行され得る。
-トークンを適切に埋め込むためのターゲットの最小出現回数MINを選択し、
-テキストコーパスを解析し、各nグラム候補のすべての可能な出現をカウントする。たとえば、「New York City」という表現は、「New York」「York City」および「New York City」の出現をカウントする。このカウントが実行された後、カウントCOUNTがMIN未満のnグラム候補を破棄する。
-テキストコーパスを再度解析し、
*重複がない状態で所与のnグラム候補の出現に遭遇するたびに、それを単一の単語としてトークン化し、この所与のnグラム候補が解析中に単一の単語としてトークン化された回数を示すカウンタSELECTを増やし、そのカウントCOUNTを減らす。
*センテンスが重複するnグラム候補を含むたびに、次の方法でセンテンスを複製する。
-空のリストKEEPを設定し、
-センテンス内の重複の一部である各nグラムについて、疑似乱数関数を使用して、0と1の間の一様分布に従って数値を生成する。スコア((MIN-SELECT)/COUNT)が結果の乱数を超える場合、nグラムをリストKEEPに追加する
-リストKEEP内にnグラムがある間、リストKEEPの少なくとも1つのnグラムを単一の単語トークンとして保存することによってセンテンスをトークン化し(つまり、nグラムを複数のトークンに分割しない)、センテンスをテキストコーパスに追加し、トークン化されたセンテンス内に単一のトークンとして存在するすべてのnグラムをリストから削除する。
-結果のトークン化されたセンテンス内の単一のトークンとして追加されたnグラム候補の出現ごとに、
-カウンタSELECTを1つ増やし、
-カウントCOUNTを1つ減らす。
【0042】
この方法では、複製が、制限されたバイアスのみを作成する。テキストコーパスのごく一部が人為的に何度も複製された場合、バイアスが問題になる。逆に、この方法は、まれなnグラムを含むチャンクを複製する。nグラム頻度はおおよそパレート分布に従うため、多くのチャンクの複製はほとんど生成されない。
【0043】
上記の方法のいずれかに従ってすべてのnグラム候補をトークン化するようにテキストコーパスが修正された後、埋め込みユニット10が呼び出され、それらが元のテキストコーパスに存在する単一の単語であるか、またはコーパス修正ユニット8によって作成されたトークンであるかに関係なく、修正されたテキストコーパスのすべてのトークンの埋め込みを実行する。
【0044】
一実施形態によれば、埋め込みユニット10は、word2vecおよびfastTextなどのニューラルネットワークベースの埋め込みであり得る。Gittensらによる論文「Skip-Gram-Zipf+Uniform=Vector Additivity.」、計算言語学会第55回年次総会の議事録(Volume1:Long Papers)2017、で説明されているように、加法構成性特性はスキップ-グラムモデルで知られており、すなわち、単語のセットの言い換えの埋め込みは、各単語の埋め込みの合計に似ている。
【0045】
最後に、修正されたテキストコーパスが完全にトークン化されると、スコアリングユニット12は、埋め込みとnグラム候補のリストを呼び出し得る。
【0046】
スコアリングユニット12は、スコアリング関数を各nグラムに適用して、nグラムの埋め込みが、このnグラムを構成する単語の埋め込みの合計に近いかどうかを決定する。出願人は、nグラムの数nに部分的に依存するいくつかのスコアリング関数をテストした。
【0047】
nが2に等しいケースでは、最も簡単なアプローチは、それらの間の距離を比較することである。したがって、
図1の例をとると、コサイン距離またはユークリッド距離などの距離は、「Fast food」の埋め込みと、それぞれ「Fast」および「Food」の埋め込みの合計との間で計算され得る。
【0048】
出願人は、ストップワードを含むnグラムを検出するときに特に役立つ可能性のある別の式を発見した。この式は、単語AおよびBで構成されるnグラムABの場合、次のように要約できる。
Score(AB)=Max(Distance(Embedding(AB)、Embedding(A)+Embedding(B))、Distance(Embedding(AB)、Embedding(A))、Distance(Embedding(AB)、Embedding(B))
nが3に等しいケースでは、「naive」式を使用し得る。つまり、単語A、B、およびCで構成されるnグラムABCの場合、
Score(ABC)=Dsitance(Embedding(A_B_C)、Embedding(A)+Embedding(B)+Embedding(C))
この式は、red_roof_inn(ホテル)、hilton_grand_vacations(ホテル)、gmbh_co_kg(会社)などの正式な名前をキャプチャでき、これは、トリグラムの意味が、トリグラムを構成する個々の単語とはまったく異なるためである。
【0049】
nが2に等しいケースの第2の式の背後にある考え方も拡張し得る。
Score(ABC)=Max(Distance(Embedding(A_B_C)、Embedding(A_B)+Embedding(C));Distance(Embedding(A_B_C)、Embedding(A)+Embedding(B_C)))
この式は、個々の単語のセット(ユニグラムおよびバイグラム)が同様のコンテキストで使用されるため、上記のトリグラムをより重要性の低いフレーズとして扱う。たとえば、Hiltonおよびgrand_vacationsはホテルも参照しているため、Hilton_grand_vacationsはその個々の単語のセットの言い換えと見なされる。
【0050】
一方、この式は、たとえば、full_length_mirrorおよびsafety_deposit_boxをキャプチャできる。トリグラムには特定の意味があるが、トリグラムはその個々の単語(mirror、box)のオブジェクトを単に言い換えると想定しているため、ナイーブ式はそれらをキャプチャするようには適合されていない。
【0051】
nが3より大きいケースでは、3に等しいnについての式は容易に拡張される。
【0052】
すべてのnグラム候補についてスコアが計算された後、スコアリングユニット12は、最高スコアを有するnグラムを保持することによって、検出されたフレーズのリストを返し得る。
【0053】
その後、このリストは、クエリの品質を向上させるために、検索エンジンフレーズのコーパスに追加され得る。実際、ユーザが後でスコアリングユニット12によって返されたnグラムの1つを検索語として入力すると、検索エンジンはより意味のあるリターンを提供することができる。
【外国語明細書】