IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

特許7326637チャンキング実行システム、チャンキング実行方法、及びプログラム
<>
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図1
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図2
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図3
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図4
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図5
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図6
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図7
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図8
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図9
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図10
  • 特許-チャンキング実行システム、チャンキング実行方法、及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-04
(45)【発行日】2023-08-15
(54)【発明の名称】チャンキング実行システム、チャンキング実行方法、及びプログラム
(51)【国際特許分類】
   G06F 16/332 20190101AFI20230807BHJP
   G06F 16/338 20190101ALI20230807BHJP
   G06F 40/289 20200101ALI20230807BHJP
【FI】
G06F16/332
G06F16/338
G06F40/289
【請求項の数】 7
(21)【出願番号】P 2023006662
(22)【出願日】2023-01-19
(62)【分割の表示】P 2022111420の分割
【原出願日】2022-07-11
(65)【公開番号】P2023050201
(43)【公開日】2023-04-10
【審査請求日】2023-01-19
(31)【優先権主張番号】17/488,336
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】中山 祐輝
(72)【発明者】
【氏名】村上 浩司
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】米国特許出願公開第2018/0032574(US,A1)
【文献】国際公開第2018/179355(WO,A1)
【文献】米国特許出願公開第2008/0154577(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのトークンを含む検索クエリを取得する検索クエリ取得部と、
前記検索クエリに基づいて、チャンキングに関する学習モデルからの出力を取得する出
力取得部と、
前記検索クエリに基づいて、共起尺度を取得する共起尺度取得部と、
辞書データを利用したマッチングにより前記辞書データに存在すると判定された前記トークンを前記検索クエリから抜き出して、残りの前記トークンについて、前記学習モデルからの出力と、前記共起尺度と、に基づいて、前記検索クエリに関するチャンキングを実行するチャンキング実行部と、
を含むチャンキング実行システム。
【請求項2】
複数のトークンを含む検索クエリを取得する検索クエリ取得部と、
形態素解析に基づいて、前記複数のトークンを複数の形態素に分割する分割部と、
前記形態素解析により分割される前の前記複数のトークンのつながりに関する第1共起尺度を取得し、前記形態素解析により分割された形態素に基づいて、接尾語又は接頭語に関する第2共起尺度を取得する共起尺度取得部と、
辞書データを利用したマッチングにより前記辞書データに存在すると判定された前記トークンを前記検索クエリから抜き出して、残りの前記トークンについて、前記第1共起尺度に基づいて、つながりのあるトークン同士が1つのトークンとなるように、前記検索クエリに関するチャンキングを実行し、前記第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、前記チャンキングを実行するチャンキング実行部と、
を含むチャンキング実行システム。
【請求項3】
前記共起尺度取得部は、
前記複数のトークンに基づいて、過去のマッチング率が相対的に高い第1算出方法を利用した前記第1共起尺度を取得し、
前記複数のトークンのうちの前記第1共起尺度が閾値未満のトークンに基づいて、過去のマッチング率が相対的に低い第2算出方法を利用した前記第2共起尺度を取得する、
請求項2に記載のチャンキング実行システム。
【請求項4】
コンピュータが、
少なくとも1つのトークンを含む検索クエリを取得する検索クエリ取得ステップと、
前記検索クエリに基づいて、チャンキングに関する学習モデルからの出力を取得する出力取得ステップと、
前記検索クエリに基づいて、共起尺度を取得する共起尺度取得ステップと、
辞書データを利用したマッチングにより前記辞書データに存在すると判定された前記トークンを前記検索クエリから抜き出して、残りの前記トークンについて、前記学習モデルからの出力と、前記共起尺度と、に基づいて、前記検索クエリに関するチャンキングを実行するチャンキング実行ステップと、
を実行するチャンキング実行方法。
【請求項5】
コンピュータが、
複数のトークンを含む検索クエリを取得する検索クエリ取得ステップと、
形態素解析に基づいて、前記複数のトークンを複数の形態素に分割する分割ステップと、
前記形態素解析により分割される前の前記複数のトークンのつながりに関する第1共起尺度を取得し、前記形態素解析により分割された形態素に基づいて、接尾語又は接頭語に関する第2共起尺度を取得する共起尺度取得ステップと、
辞書データを利用したマッチングにより前記辞書データに存在すると判定された前記トークンを前記検索クエリから抜き出して、残りの前記トークンについて、前記第1共起尺度に基づいて、つながりのあるトークン同士が1つのトークンとなるように、前記検索クエリに関するチャンキングを実行し、前記第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、前記チャンキングを実行するチャンキング実行ステップと、
を実行するチャンキング実行方法。
【請求項6】
少なくとも1つのトークンを含む検索クエリを取得する検索クエリ取得部、
前記検索クエリに基づいて、チャンキングに関する学習モデルからの出力を取得する出力取得部、
前記検索クエリに基づいて、共起尺度を取得する共起尺度取得部、
辞書データを利用したマッチングにより前記辞書データに存在すると判定された前記トークンを前記検索クエリから抜き出して、残りの前記トークンについて、前記学習モデルからの出力と、前記共起尺度と、に基づいて、前記検索クエリに関するチャンキングを実行するチャンキング実行部、
としてコンピュータを機能させるためのプログラム。
【請求項7】
複数のトークンを含む検索クエリを取得する検索クエリ取得部、
形態素解析に基づいて、前記複数のトークンを複数の形態素に分割する分割部、
前記形態素解析により分割される前の前記複数のトークンのつながりに関する第1共起尺度を取得し、前記形態素解析により分割された形態素に基づいて、接尾語又は接頭語に関する第2共起尺度を取得する共起尺度取得部、
辞書データを利用したマッチングにより前記辞書データに存在すると判定された前記トークンを前記検索クエリから抜き出して、残りの前記トークンについて、前記第1共起尺度に基づいて、つながりのあるトークン同士が1つのトークンとなるように、前記検索クエリに関するチャンキングを実行し、前記第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、前記チャンキングを実行するチャンキング実行部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、チャンキング実行システム、チャンキング実行方法、及びプログラムに関する。
【背景技術】
【0002】
従来、ユーザが入力した検索クエリに基づいて、種々の検索を実行する技術が知られている。検索クエリは、原則として自由に入力可能なので、検索には適さない検索クエリが入力されることがある。例えば、語Aと語Bの間にスペースを入力する必要があったとしても、語Aと語Bの間にスペースが入力されないことがある。例えば、何らかの理由で、1つの語を構成する要素(文字や数字等)の間にスペースが入力されることもある。このため、検索クエリに対して適切なチャンキングを実行することが求められている。
【0003】
一般的な形態素解析、構文解析、又は句構造解析の技術を、検索クエリに対するチャンキングに利用することも考えられる。しかしながら、これらの技術は、あくまで一般的な語を前提にして作成されているので、検索クエリのように、特定の目的で入力された語に適用しても十分な精度を得ることができない可能性がある。この点、非特許文献1には、文章の中から人名や国名といった固有表現を抽出することを目的とした技術として、インターネット上の辞書データを参照可能な機械学習モデルに文章を入力して固有表現を抽出することが記載されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】[Mai+ COLING16] Khai Mai, Thai-Hoang Pham, Nguyen Minh Trung, Nguyen Tuan Duc, Danushka Bolegala, Ryohei Sasano and Satoshi Sekine: An Empirical Study on Fine-Grained Named Entity Recognition
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記技術は、ある程度の長さを有する文章を機械学習モデルに入力することを前提としているので、検索クエリに対するチャンキングには適用できない。仮に、上記技術を何らかの形で検索クエリに適用したとしても、上記技術は、そもそも検索クエリに対するチャンキングを目的として作成されたわけではなく、人名や国名が検索クエリとして入力されることも少ないので、チャンキングの精度が十分ではない。
【0006】
本開示の目的の1つは、検索クエリに対するチャンキングの精度を高めることである。
【課題を解決するための手段】
【0007】
本開示に係るチャンキング実行システムは、少なくとも1つのトークンを含む検索クエリを取得する検索クエリ取得部と、前記検索クエリに基づいて、辞書データを利用したマッチングを実行するマッチング実行部と、前記検索クエリに基づいて、チャンキングに関する学習モデルからの出力を取得する出力取得部と、前記マッチングの実行結果と、前記学習モデルからの出力と、に基づいて、前記検索クエリに関するチャンキングを実行するチャンキング実行部と、を含む。
【図面の簡単な説明】
【0008】
図1】チャンキング実行システムの全体構成の一例を示す図である。
図2】第1実施形態の概要を示す図である。
図3】第1実施形態で実現される機能の一例を示す機能ブロック図である。
図4】辞書データの一例を示す図である。
図5】学習モデルの一例を示す図である。
図6】第1実施形態で実行される処理の一例を示すフロー図である。
図7】第2実施形態の概要を示す図である。
図8】日本語で入力される検索クエリの一例を示す図である。
図9】第2実施形態で実現される機能の一例を示す機能ブロック図である。
図10】第2実施形態で実行される処理の一例を示すフロー図である。
図11】第2実施形態で実行される処理の一例を示すフロー図である。
【発明を実施するための形態】
【0009】
[1.第1実施形態]
本開示に係るチャンキング実行システムの実施形態の一例である第1実施形態を説明する。
【0010】
[1-1.チャンキング実行システムの全体構成]
図1は、チャンキング実行システムの全体構成の一例を示す図である。チャンキング実行システムSは、ネットワークNに接続可能なサーバ10及びユーザ端末20を含む。ネットワークNは、インターネット又はLAN等の任意のネットワークである。チャンキング実行システムSは、少なくとも1つのコンピュータを含めばよく、図1の例に限られない。
【0011】
サーバ10は、サーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、ハードディスク等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0012】
ユーザ端末20は、ユーザのコンピュータである。例えば、ユーザ端末20は、パーソナルコンピュータ、スマートフォン、タブレット端末、又はウェアラブル端末である。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様である。操作部24は、タッチパネル等の入力デバイスである。表示部25は、液晶ディスプレイ又は有機ELディスプレイである。
【0013】
なお、記憶部12,22に記憶されるプログラムは、ネットワークNを介して供給されてもよい。また、各コンピュータには、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方が含まれてもよい。例えば、情報記憶媒体に記憶されたプログラムが、読取部及び入出力部の少なくとも一方を介して供給されてもよい。
【0014】
[1-2.第1実施形態の概要]
図2は、第1実施形態の概要を示す図である。第1実施形態では、ウェブサイトの検索サービスにチャンキング実行システムSを適用する場合を例に挙げる。チャンキング実行システムSは、種々のサービスに適用可能である。他のサービスへの適用例は、後述する。例えば、ユーザは、ユーザ端末20のブラウザ又はアプリケーションを起動し、検索サービスのトップページP1にアクセスする。
【0015】
サーバ10は、トップページP1及び検索結果のページといった種々のページを、ユーザに提供可能である。ユーザは、入力フォームF10に任意の検索クエリを入力し、検索サービスを利用する。第1実施形態では、検索クエリが英語で入力される場合を説明するが、検索クエリは、任意の言語で入力可能である。例えば、後述の第2実施形態のように、検索クエリは、日本語で入力されてもよい。検索クエリは、中国語、スペイン語、フランス語、又はアラビア語といった他の言語で入力されてもよい。
【0016】
検索クエリは、ユーザが検索時に入力した語である。語とは、少なくとも1つの文字、少なくとも1つの数字、少なくとも1つの記号、又はこれらの組み合わせである。語は、キーワードと呼ばれることもある。第1実施形態では、語を構成する文字、数字、又は記号を、要素と記載する。例えば、要素は、英語におけるアルファベット、又は、日本語における仮名若しくは漢字である。検索クエリは、語以外の検索条件(例えば、数値範囲や属性等)を含んでもよい。ユーザが入力した検索クエリと、サーバ10に記憶されたインデックスと、が比較されることによって、検索が実行される。
【0017】
検索クエリは、少なくとも1つのトークンを含む。トークンは、検索クエリに含まれる語の単位である。トークンは、少なくとも1つの語を含む。トークンは、1つの語から構成されることもあるし、複数の語から構成されることもある。トークンが複数の語から構成される場合には、個々の語の間には、スペースがあってもよいし、アンダーバーやハイフン等の何らかの記号が配置されてもよい。
【0018】
例えば、ユーザが、架空のアパレルブランド「The South Mountain」の商品を検索するために、検索クエリ「The South Mountain」を入力したとする。この検索クエリは、語「The」、語「South」、及び語「Mountain」といった3つの語を含む。検索の精度を高めるためには、これら3つの語は、1セットで扱って初めてアパレルブランド名を意味するので、別々のトークンとして扱うのではなく、1つのトークンとして扱った方がよい。このような検索クエリは、3つの語から構成される1つのトークンを含む。
【0019】
一方、例えば、ユーザが、ハワイにある山を検索するために、検索クエリ「Hawaii mountains」を入力したとする。この検索クエリは、語「Hawaii」及び語「mountains」といった2つの語から構成される。これら2つの語は、検索クエリ「The South Mountain」とは異なり、個々の語が独立した意味を有するので、1セットで扱う必要は無く、別々のトークンとして扱った方がよい。このような検索クエリは、1つの語から構成される2つのトークンを含む。
【0020】
ただし、サーバ10は、検索クエリを受信した時点では、複数の語から構成されるトークンなのか、1つの語から構成されるトークンなのか、を特定することが難しい。このため、サーバ10は、検索クエリを受信した時点では、ひとまず、スペースによって区切られた部分をトークンとみなすものとする。例えば、検索クエリ「The South Mountain」であれば、サーバ10は、ひとまず、トークン「The」、トークン「South」、及びトークン「Mountain」といった3つのトークンが含まれるものとみなす。検索クエリ「Hawaii mountains」であれば、サーバ10は、ひとまず、トークン「Hawaii」及びトークン「mountains」といった2つのトークンが含まれるものとみなす。
【0021】
なお、サーバ10は、予め定められたルールに基づいて、検索クエリからトークンとみなす部分を特定すればよい。ひとまずトークンとみなされる部分は、スペースによって区切られた部分に限られない。例えば、サーバ10は、何らかの区切りを意味する記号に基づいて、検索クエリからトークンとみなす部分を特定してもよい。例えば、この記号は、括弧、アンダーバー、ハイフン、カンマ、又はピリオドであってもよい。更に、サーバ10は、複数のルールを組み合わせて、検索クエリからトークンとみなす部分を特定してもよい。
【0022】
図2の例では、検索クエリ「Tokyo restaurant」は、トークン「Tokyo」と、トークン「restaurant」と、を含む。検索クエリ「U.S.A. championship」は、トークン「U.S.A.」と、トークン「championship」と、を含む。これら2つの検索クエリの個々のトークンは、独立した意味を持った名詞である。このような名詞は、独立した意味を持っている以上、AND条件又はOR条件でつなげて検索しても問題ないことが多い。このため、これら2つの検索クエリは、適切な位置にスペースが挿入されており、検索時のトークンとして適切である。
【0023】
検索クエリ「Tokyorestaurant」は、スペースが存在しないので、1つのトークン「Tokyorestaurant」だけを含む。本来であれば、名詞「Tokyo」と、名詞「restaurant」と、の間にスペースが必要であるが、これらの名詞の間にはスペースが存在しない。例えば、スペースの入力を億劫に感じたユーザが文字だけを入力したり、ユーザが音声入力をしたりすると、複数のトークンに分けるべき複数の語が1つのトークンになることがある。この検索クエリは、適切な位置にスペースが挿入されていないので、検索時のトークンとして不適切である。
【0024】
検索クエリ「U.S.A. champion ship」は、1つの名詞である「championship」のうち、「champion」と「ship」の間にスペースが入力されている。このため、この検索クエリは、適切に入力された検索クエリ「U.S.A. championship」とは異なり、トークン「U.S.A.」、トークン「champion」、及びトークン「ship」を含む。ユーザが、「champion」と「ship」の間にスペースを誤入力したり、ウェブサイトや文書ファイルからコピーペーストしたりすると、1つのトークンにすべきものが複数のトークンに分けられることがある。この検索クエリも、適切な位置にスペースが挿入されていないので、検索時のトークンとして不適切である。
【0025】
そこで、第1実施形態では、適切なトークンとなるようにチャンキングが実行される。チャンキングは、ひとまずトークンとみなしたものを、適切なトークンに調整することである。第1実施形態では、チャンキングが、トークンのまとめ上げと、トークンの分割と、の両方を含む場合を説明するが、チャンキングは、トークンの結合、又は、トークンの分割の何れか一方のみを意味してもよい。
【0026】
チャンキング実行システムSは、一般的な形態素解析等のチャンキングではなく、検索サービスに特有の新規なチャンキングを実行することによって、検索クエリに対するチャンキングの精度を高めるようにしている。第1実施形態では、検索サービスに特有なチャンキングの一例として、辞書データ、共起尺度、及び学習モデルを効果的に組み合わせた方法を説明する。以降、第1実施形態の詳細を説明する。
【0027】
[1-3.第1実施形態で実現される機能]
図3は、第1実施形態で実現される機能の一例を示す機能ブロック図である。第1実施形態では、主な機能がサーバ10で実現される場合を説明する。データ記憶部100は、記憶部12を主として実現される。検索クエリ取得部101、マッチング実行部102、共起尺度取得部103、出力取得部104、チャンキング実行部105、検索処理実行部106、及び提示部107は、制御部11を主として実現される。
【0028】
[データ記憶部]
データ記憶部100は、チャンキングに必要なデータを記憶する。例えば、データ記憶部100は、検索対象データベースDB、辞書データD、及び学習モデルMを記憶する。検索対象データベースDBは、検索対象となるデータが格納されたデータベースを記憶してもよい。このデータベースには、検索クエリとの比較対象となるインデックスが格納されている。第1実施形態では、ウェブサイトが検索対象に相当するので、種々のウェブサイトから抽出された語を含むインデックスが格納される。
【0029】
図4は、辞書データDの一例を示す図である。辞書データDは、検索時のトークンとして適切な語が格納されたデータである。辞書データDに格納された語は、1つの語だけで構成されることもあるし、複数の語を含むこともある。例えば、架空のアパレルブランド「The South Mountain」を1つのトークンとしたい場合には、これら3つの語が1つの語として辞書データDに格納されている。辞書データD自体は、公知の種々の辞書データDを利用可能である。例えば、国語辞典又はインターネット百科事典のデータに基づいて、辞書データDが作成されてもよい。よく入力される検索クエリに含まれるトークンが辞書データDに格納されていてもよい。
【0030】
学習モデルMは、機械学習を利用したモデルである。機械学習自体は、公知の種々の方法を利用可能であり、例えば、教師有り学習、半教師有り学習、又は教師無し学習を利用可能である。例えば、教師有り学習の学習モデルMであれば、ある語と、この語のチャンキングの要否と、の関係を示す訓練データが学習されている。学習モデルMは、入力された語のチャンキングの要否を推定し、この推定結果を出力する。学習モデルMは、AI(Artificial Intelligence)と呼ばれることもある。第1実施形態では、学習モデルMの一例としてCharacterBERTを例に挙げるが、Transformerに基づく事前学習済みのその他の自然言語処理モデルが利用されてよく、Word2Vec等の他の手法が利用されてもよい。他にも例えば、ELECTRAと呼ばれるモデルを利用可能である。BERT及びELECTRAは、上記Transformerと呼ばれるモデルの一種である。
【0031】
図5は、学習モデルMの一例を示す図である。例えば、学習モデルMは、入力された語の分割の要否を推定し、この語を分割する必要があるか否かに関する分割要否情報を出力する。分割要否情報は、分割の要否を識別可能な情報であり、例えば、分割することを示す第1の値、又は、分割しないことを示す第2の値を示す。第1実施形態の学習モデルMは、入力された語を構成する要素(文字、数字、又は記号)の属性に基づいて、分割要否情報を出力する。
【0032】
属性は、ある1つの語における要素の位置である。第1実施形態では、属性として、属性B、属性I、属性E、属性S、及び属性Oが存在する場合を例に挙げる。属性Bは、語の開始を意味する。属性Iは、語の内部を意味する。属性Eは、語の終端を意味する。属性Sは、一文字の語であることを意味する。属性Oは、空白を意味する。学習モデルMは、これらの属性に基づいて、入力された文字列に対応する分割要否情報を出力する。
【0033】
第1実施形態では、検索クエリに含まれる個々のトークンが学習モデルMに入力される場合を説明するが、検索クエリに含まれる複数のトークンが一度に学習モデルMに入力されてもよい。学習モデルMは、入力されたトークンを分割するか否かに関する分割要否情報を出力する。図5では、トークン「Tokyorestaurant」と、トークン「championship」と、が入力された場合の学習モデルMの出力を示している。
【0034】
トークン「Tokyorestaurant」は、15個の要素(15個のアルファベット)により構成されるので、学習モデルMは、15個の属性を特定する。個々の要素の属性は、図5の通りである。学習モデルMは、最初の属性Bの要素からその後の属性Eまでの部分(1番目の「T」から5番目の「o」までの「Tokyo」)を、1つのトークンと推定する。学習モデルMは、次の属性Bの要素からその後の属性Eまでの部分(6番目の「r」から15番目の「t」までの「restaurant」)を、1つのトークンと推定する。
【0035】
学習モデルMは、入力された1つのトークン「Tokyorestaurant」に2つのトークンがあると推定したので、トークン「Tokyorestaurant」を分割することを示す分割要否情報を出力する。学習モデルMは、上記推定した個々のトークンを出力してもよい。この場合、学習モデルMは、トークン「Tokyorestaurant」の分割も実行する。学習モデルMは、トークン「Tokyorestaurant」を2つに分割し、トークン「Tokyo」と、トークン「restaurant」と、を出力してもよい。
【0036】
トークン「championship」は、12個の要素(12個のアルファベット)により構成されるので、学習モデルMは、12個の属性を特定する。個々の要素の属性は、図5の通りである。学習モデルMは、最初の属性Bの要素からその後の属性Eまでの部分(1番目の「c」から12番目の「p」までの「championship」)を、1つのトークンと推定する。学習モデルMは、入力された1つのトークン「championship」が1つのトークンであると推定したので、トークン「championship」を分割しないことを示す分割要否情報を出力する。
【0037】
以上のように、学習モデルMは、属性Bの要素からその後の属性Eの要素までの間を1つのトークンと推定する。学習モデルMは、属性Sの要素も1つのトークンと推定する。学習モデルMは、入力された1つのトークンに対して複数のトークンが推定された場合(例えば、属性Bの要素と、属性Eの要素と、ペアが複数存在する場合)、入力された1つのトークンを分割することを示す分割要否情報を出力する。学習モデルは、入力された1つのトークンに対して1つのトークンが推定された場合(例えば、属性Bの要素と、属性Eの要素と、ペアが1つだけ存在する場合)、入力された1つのトークンを分割しないことを示す分割要否情報を出力する。
【0038】
なお、学習モデルMは、入力された1つのトークンに対して複数のトークンが推定された場合、入力された1つのトークンを分割して分割結果を出力してもよい。例えば、学習モデルMは、属性Bの要素からその後の属性Eの要素までが1つのトークンとなるように、入力されたトークンを分割して出力する。学習モデルMは、属性Sの要素が1つのトークンとなるように、入力されたトークンを分割して出力する。後述のチャンキング実行部105は、学習モデルMにトークンを入力し、学習モデルMから出力された分割済みのトークンを取得することによって、チャンキングを実行してもよい。
【0039】
[検索クエリ取得部]
検索クエリ取得部101は、少なくとも1つのトークンを含む検索クエリを取得する。第1実施形態では、ユーザ端末20は、ユーザが入力した検索クエリをサーバ10に送信するので、検索クエリ取得部101は、ユーザ端末20から検索クエリを取得する。検索クエリは、データ記憶部100に予め記憶されていてもよい。この場合、検索クエリ取得部101は、データ記憶部100から検索クエリを取得する。検索クエリ取得部101は、サーバ10又はユーザ端末20以外の他のコンピュータから検索クエリを取得してもよい。
【0040】
[マッチング実行部]
マッチング実行部102は、検索クエリ取得部101により取得された検索クエリに基づいて、辞書データDを利用したマッチングを実行する。マッチングとは、検索クエリと、辞書データDに格納された語と、を比較することである。第1実施形態では、検索クエリに含まれる個々のトークンと、辞書データDに格納された語と、を比較することがマッチングに相当する場合を説明するが、検索クエリに含まれる複数のトークンと、辞書データDに格納された語と、を比較することがマッチングに相当してもよい。
【0041】
例えば、マッチング実行部102は、検索クエリに含まれる個々のトークンと、辞書データDに格納された語と、が一致するか否かを判定することによって、マッチングを実行する。即ち、マッチング実行部102は、個々のトークンと一致する語が辞書データDに存在するか否かを判定する。第1実施形態では、完全一致が判定される場合を説明するが、部分一致が判定されてもよい。部分一致は、前方一致、中間一致、又は後方一致の何れであってもよい。
【0042】
検索クエリが図2の例であり、辞書データDが図4の例だったとする。マッチング実行部102は、検索クエリ「Tokyo restaurant」のトークン「Tokyo」及びトークン「restaurant」と、辞書データDに格納された語と、が完全一致するか否かを判定することによって、マッチングを実行する。辞書データDには、語「Tokyo」と、語「restaurant」と、が格納されているので、マッチング実行部102は、検索クエリに含まれる全てのトークンが辞書データDに存在すると判定する。
【0043】
マッチング実行部102は、検索クエリ「U.S.A. championship」のトークン「U.S.A.」及びトークン「championship」と、辞書データDに格納された語と、が完全一致するか否かを判定することによって、マッチングを実行する。辞書データDには、語「U.S.A.」と、語「championship」と、が格納されているので、マッチング実行部102は、検索クエリに含まれる全てのトークンが辞書データDに存在すると判定する。
【0044】
マッチング実行部102は、検索クエリ「Tokyorestaurant」のトークン「Tokyorestaurant」と、辞書データDに格納された語と、が完全一致するか否かを判定することによって、マッチングを実行する。トークン「Tokyorestaurant」と、辞書データDの語「Tokyo」及び語「restaurant」と、は部分一致するが完全一致しないので、マッチング実行部102は、トークンが辞書データDに存在しないと判定する。
【0045】
マッチング実行部102は、検索クエリ「U.S.A. champion ship」のトークン「U.S.A.」、トークン「champion」、及びトークン「ship」と、辞書データDの語と、が完全一致するか否かを判定することによって、マッチングを実行する。辞書データDには語「U.S.A.」が格納されているので、マッチング実行部102は、トークン「U.S.A.」が辞書データDに存在すると判定する。トークン「champion」と、トークン「ship」と、は辞書データDの語「championship」に部分一致するが完全一致しないので、マッチング実行部102は、これらのトークンが辞書データDに存在しないと判定する。
【0046】
第1実施形態では、マッチング実行部102は、学習モデルMの処理が実行される前に、検索クエリに基づいて、マッチングを実行する。即ち、マッチング実行部102は、ある検索クエリのトークンが学習モデルMに入力される前に、この検索クエリに基づいて、マッチングを実行する。第1実施形態では、マッチングにより辞書データDに存在すると判定されたトークンが学習モデルMに入力されない場合を説明するが、検索クエリの全てのトークンが学習モデルMに入力されてもよい。即ち、辞書データDに存在すると判定されたトークンが学習モデルMに入力されてもよい。
【0047】
[共起尺度取得部]
共起尺度取得部103は、検索クエリ取得部101により取得された検索クエリに基づいて、共起尺度を取得する。共起尺度は、複数の語の関連性の高さに関する情報である。即ち、共起尺度は、複数の語の共起のしやすさに関する情報である。例えば、同時に登場しやすい複数の語は、共起尺度の値が高くなる。第1実施形態では、共起尺度が数値によって表現される場合を説明するが、共起尺度は、文字又は記号によって表現されてもよい。例えば、ある語と他の語の共起尺度の数値が高いほど、これらの語の関連性が高いことを意味する。共起尺度は、好ましくは、自己相互情報量(MI)である。一の実施形態において、共起尺度は、自己相互情報量に代えて、tスコアであってよく、zスコアであってよく、Log-likelihoodであってよく、ダイス係数であってよく、MI3であってよく、既知の手法に基づき定量化された共起のしやすさであってよい。Log-likelihood及びtスコア等は、仮設検定の方法を利用した共起尺度の一例である。一方で、自己相互情報量及びMI3等は、情報理論を利用した共起尺度の一例である。例えば、共起尺度は、共起頻度、共起有意性、エフェクトサイズ、又はこれらの組み合わせに基づいた計算方法であってよい。
【0048】
第1実施形態では、共起尺度取得部103は、検索クエリに複数のトークンが含まれる場合に、あるトークンと、その後のトークンと、の共起尺度を取得する。検索クエリに含まれるトークンが1つだけの場合には、トークン間の関連性が存在しないので、共起尺度取得部103は、共起尺度を取得しない。共起尺度の取得方法自体は、公知の種々の方法を利用可能である。例えば、共起尺度取得部103は、PMI(Pointwise Mutual Information)又はSOA(Strength of association)と呼ばれる方法に基づいて、共起尺度を取得してもよい。
【0049】
図2の例であれば、検索クエリ「U.S.A. champion ship」は、トークン「U.S.A.」、トークン「champion」、及びトークン「ship」を含む。共起尺度取得部103は、トークン「U.S.A.」と、トークン「champion」と、の共起尺度として、関連性が低いことを示す低い数値の共起尺度を取得する。一方、共起尺度取得部103は、トークン「champion」と、トークン「ship」と、の共起尺度として、関連性が高いことを示す数値の共起尺度を取得する。
【0050】
検索クエリ「Tokyo restaurant」及び検索クエリ「U.S.A. championship」に関し、個々のトークンの関連性が低いので、共起尺度取得部103は、各トークンの共起尺度として、関連性が低いことを示す低い数値の共起尺度を取得する。検索クエリ「Tokyorestaurant」は、トークンが1つだけのため、共起尺度は取得されない。なお、共起尺度は、トークン間の関連性ではなく、トークンに含まれる語又は要素の関連性を示してもよい。この場合、共起尺度取得部103は、ある語又は要素と、その後の語又は要素と、の共起尺度を取得すればよい。
【0051】
[出力取得部]
出力取得部104は、検索クエリ取得部101により取得された検索クエリに基づいて、チャンキングに関する学習モデルMからの出力を取得する。第1実施形態では、マッチング実行部102により辞書データDに存在すると判定されたトークンは、学習モデルMに入力されない場合を説明するが、出力取得部104は、マッチング結果に関係なく検索クエリの全てのトークンを学習モデルMに入力してもよい。他にも例えば、共起尺度が閾値以上のトークンは、学習モデルMに入力されなくてもよい。
【0052】
第1実施形態では、出力取得部104は、マッチングが実行された後の検索クエリに基づいて、学習モデルMからの出力を取得する。例えば、出力取得部104は、ある検索クエリのうち、マッチングにより辞書データDに存在しないと判定されたトークンを、学習モデルMに入力する。先述したように、第1実施形態の学習モデルMは、検索クエリに含まれる少なくとも1つのトークンを分割する否かに関する分割要否情報を出力する。学習モデルMの処理の詳細は、先述した通りである。
【0053】
[チャンキング実行部]
チャンキング実行部105は、マッチングの実行結果と、学習モデルMからの出力と、に基づいて、検索クエリに関するチャンキングを実行する。第1実施形態では、共起尺度も利用されるので、チャンキング実行部105は、マッチングの実行結果、学習モデルMからの出力、及び共起尺度に基づいて、検索クエリに関するチャンキングを実行する。検索クエリに関するチャンキングとは、検索クエリに含まれる1つのトークンを複数のトークンに分割すること、又は、検索クエリに含まれる複数のトークンを1つのトークンに結合することである。
【0054】
例えば、チャンキング実行部105は、マッチングにより辞書データDに存在すると判定されたトークンを分割又は結合しないと決定する。第1実施形態では、チャンキング実行部105は、辞書データDに存在すると判定されたトークンを検索クエリから抜き出す。チャンキング実行部105は、検索クエリからトークンを抜き出した場合、残りのトークンについて、学習モデルMの処理対象と、共起尺度取得部103の処理対象と、にする。
【0055】
辞書データDに存在しないと判定されたトークンは、学習モデルMからの出力次第で分割される。第1実施形態では、学習モデルMが分割要否情報を出力するので、チャンキング実行部105は、分割要否情報に基づいて、検索クエリに含まれるトークンを分割するか否かを決定する。例えば、チャンキング実行部105は、学習モデルMから出力された分割要否情報が分割要を示すトークンを分割すると決定する。チャンキング実行部105は、学習モデルMから出力された分割要否情報が分割不要を示すトークンを分割しないと決定する。
【0056】
例えば、辞書データDに存在しないと判定されたトークンは、共起尺度次第で結合される。チャンキング実行部105は、共起尺度が閾値以上のトークン同士を結合すると決定する。チャンキング実行部105は、共起尺度が閾値未満のトークン同士を結合しないと決定する。
【0057】
図2の例であれば、チャンキング実行部105は、検索クエリ「Tokyo restaurant」のトークン「Tokyo」及びトークン「restaurant」が辞書データDに存在することを示すマッチング結果が取得されるので、トークン「Tokyo」及びトークン「restaurant」を分割又は結合しない。
【0058】
チャンキング実行部105は、検索クエリ「U.S.A. championship」のトークン「U.S.A.」及びトークン「championship」が辞書データDに存在することを示すマッチング結果が取得されるので、トークン「U.S.A.」及びトークン「championship」を分割又は結合しない。
【0059】
チャンキング実行部105は、検索クエリ「Tokyorestaurant」のトークン「Tokyorestaurant」を分割することを示す分割要否情報が学習モデルMから出力されるので、トークン「Tokyorestaurant」を、トークン「Tokyo」と、トークン「restaurant」と、に分割する。例えば、チャンキング実行部105は、辞書データDに基づいて、これらの分割をしてもよい。辞書データDには、語「Tokyo」及び語「restaurant」が格納されているので、チャンキング実行部105は、分割要のトークン「Tokyorestaurant」と、これらの語と、が部分一致することを特定すると、これらの語に分割する。
【0060】
チャンキング実行部105は、検索クエリ「U.S.A. champion ship」のトークン「U.S.A.」、トークン「champion」、及びトークン「ship」のうち、トークン「U.S.A.」が辞書データDに存在することを示すマッチング結果が取得されるので、トークン「U.S.A.」を分割又は結合しない。チャンキング実行部105は、トークン「champion」及びトークン「ship」の共起尺度が閾値以上なので、トークン「champion」と、トークン「ship」と、を結合して1つのトークン「championship」にする。
【0061】
[検索処理実行部]
検索処理実行部106は、検索対象データベースDBと、チャンキングの実行結果と、に基づいて、検索処理を実行する。検索処理実行部106は、検索対象データベースDBに格納されたインデックスと、チャンキング実行部105によるチャンキングによって取得されたトークンと、を比較することによって、検索処理を実行する。検索処理自体は、公知の種々の方法を利用可能である。例えば、チャンキング実行部105により複数のトークンが取得された場合には、検索処理実行部106は、複数のトークンをOR条件で検索処理を実行する。図2の例であれば、検索クエリ「Tokyo restaurant」と、検索クエリ「U.S.A. championship」と、はチャンキングされないので、検索処理実行部106は、これらの検索クエリのまま検索処理を実行する。
【0062】
一方、検索クエリ「Tokyorestaurant」は、チャンキング実行部105により、トークン「Tokyo」と、トークン「restaurant」と、に分割される。このため、検索処理実行部106は、これら2つのトークンに分割されるように(間にスペースが埋め込まれるように)チャンキングされた検索クエリ「Tokyo restaurant」に基づいて、検索処理を実行する。検索クエリ「U.S.A. champion ship」は、トークン「U.S.A.」はそのままであるが、チャンキング実行部105により、トークン「champion」と、トークン「ship」と、が結合されて「champion ship」になる。このため、検索処理実行部106は、これら2つのトークンが1つに結合されるように(間にスペースが存在しないように)チャンキングされた検索クエリ「U.S.A. championship」に基づいて、検索処理を実行する。
【0063】
[提示部]
提示部107は、検索クエリを入力したユーザに、検索処理の実行結果を提示する。第1実施形態では、画像を利用して視覚的に実行結果が提示される場合を説明するが、音声を利用して聴覚的に実行結果が提示されてもよい。検索処理の実行結果は、検索でヒットしたインデックスの一覧である。例えば、提示部107は、検索処理の実行結果を含む画面の表示データ(例えば、HTMLデータ)を生成し、ユーザ端末20に送信する。
【0064】
[1-4.第1実施形態で実行される処理]
図6は、第1実施形態で実行される処理の一例を示すフロー図である。この処理は、制御部11,21が記憶部12,22に記憶されたプログラムに従って動作することによって実行される。
【0065】
ユーザ端末20は、ユーザがトップページP1のリンク等を選択するとサーバ10にアクセスし、検索サービスのトップページP1を表示部25に表示させる(S100)。ユーザ端末20は、操作部24からのユーザの操作に基づいて、入力フォームF10に対する検索クエリの入力を受け付ける(S101)。ユーザ端末20は、サーバ10に、ユーザが入力した検索クエリを送信する(S102)。
【0066】
サーバ10は、ユーザ端末20から検索クエリを受信すると(S103)、辞書データDに基づいて、マッチングを実行する(S104)。検索クエリのトークンと辞書データDに格納された語とが完全一致する場合(S104;完全一致)、サーバ10は、検索クエリから、辞書データDに格納された語と完全一致したトークンを抜き出す(S105)。検索クエリのトークンと辞書データDに格納された語とが完全一致しない場合(S104;一致しない)、S105の処理は実行されない。
【0067】
図2の例であれば、検索クエリ「Tokyo restaurant」のうち、トークン「Tokyo」と、トークン「restaurant」と、がS105の処理で抜き出される。この検索クエリには、トークンが残されていないので、S106~S110の処理の対象にはならず、S111の処理に移行する。検索クエリ「U.S.A. championship」も同様に、トークン「U.S.A.」と、トークン「championship」と、がS105の処理で抜き出される。この検索クエリは、S106~S110の処理の対象にはならず、S111の処理に移行する。
【0068】
一方、検索クエリ「Tokyorestaurant」は、S105の処理ではトークンが抜き出されない。この検索クエリは、S106の処理対象になる。検索クエリ「U.S.A. champion ship」は、トークン「U.S.A.」がS105の処理で抜き出される。この検索クエリのうち、トークン「champion」と、トークン「ship」と、がS106の処理対象になる。トークン「U.S.A.」は、S106~S110の処理の対象にはならない。
【0069】
サーバ10は、検索クエリに基づいて、共起尺度を取得し(S106)、共起尺度が閾値以上であるか否かを判定する(S107)。トークンが1つだけの場合には、S106及びS107の処理は実行されない。図2の例であれば、検索クエリ「Tokyorestaurant」は、トークンが1つのみなので、S106の処理対象にはならない。検索クエリ「U.S.A. champion ship」は、トークン「champion」と、トークン「ship」と、が残っているので、S106の処理対象になる。
【0070】
共起尺度が閾値以上であると判定された場合(S107;Y)、サーバ10は、検索クエリから、共起尺度が閾値以上になった複数のトークンを抜き出し、共起尺度が閾値以上になった複数のトークン同士が1つのトークンになるように、チャンキングを実行する(S108)。図2の例であれば、検索クエリ「U.S.A. champion ship」は、トークン「champion」と、トークン「ship」と、の共起尺度が閾値以上になるので、S107の処理で抜き出される。共起尺度が閾値以上であると判定されない場合(S107;N)、S108の処理は実行されない。
【0071】
サーバ10は、検索クエリに基づいて、学習モデルMの出力を取得する(S109)。図2の例であれば、S109では、サーバ10は、検索クエリ「Tokyorestaurant」を学習モデルMに入力すると、学習モデルMから出力された、分割することを示す分割要否情報を取得する。サーバ10は、学習モデルMからの出力に基づいて、チャンキングを実行する(S110)。S110では、サーバ10は、分割要否情報が分割要を示すトークンを、辞書データDに部分一致した語が別々のトークンに分割されるように、チャンキングを実行する。サーバ10は、分割要否情報が分割不要を示すトークンは分割しない。
【0072】
サーバ10は、チャンキングの実行結果に基づいて、検索処理を実行し(S111)、ユーザ端末20に、検索結果を送信する(S112)。ユーザ端末20は、サーバ10から検索結果のデータを受信すると、検索結果を表示部25に表示させ(S113)、本処理は終了する。
【0073】
第1実施形態のチャンキング実行システムSによれば、辞書データDを利用したマッチングの実行結果と、学習モデルMからの出力と、に基づいて、検索クエリに関するチャンキングを実行することによって、マッチング検索クエリに対するチャンキングの精度が高まる。例えば、マッチングだけを利用する場合や学習モデルMだけを利用する場合に比べると、検索クエリに含まれるトークンを適切なトークンにすることができる確率が高まり、チャンキングの精度が高まる。
【0074】
また、チャンキング実行システムSは、学習モデルMの処理が実行される前に、検索クエリに基づいて、マッチングを実行し、マッチングが実行された後の検索クエリに基づいて、学習モデルMからの出力を取得する。これにより、例えば、マッチングでは正確にはチャンキングできなかったトークンを、学習モデルMを利用してチャンキングすることができるので、検索クエリに対するチャンキングの精度が高まる。
【0075】
また、チャンキング実行システムSは、マッチングの実行結果、学習モデルMからの出力、及び共起尺度に基づいて、チャンキングを実行することによって、検索クエリに対するチャンキングの精度が効果的に高まる。例えば、マッチングだけを利用する場合、学習モデルMだけを利用する場合、又は共起尺度だけを利用する場合に比べると、検索クエリに含まれるトークンを適切なトークンにすることができる確率が高まり、チャンキングの精度が高まる。
【0076】
また、チャンキング実行システムSは、学習モデルMは、検索クエリに含まれる少なくとも1つのトークンを分割する否かに関する分割要否情報に基づいて、検索クエリに含まれるトークンを分割するか否かを決定する。これにより、例えば、辞書データDを利用して本当に分割するか否かを決定できるので、検索クエリに対するチャンキングの精度が効果的に高まる。
【0077】
また、チャンキング実行システムSは、チャンキングの実行結果に基づいて、検索処理を実行し、検索クエリを入力したユーザに、検索処理の実行結果を提示する。これにより、チャンキング済みのトークンに基づく検索処理を実行できるので、検索処理の精度が高まる。
【0078】
[2.第2実施形態]
次に、チャンキング実行システムSの別実施形態である第2実施形態を説明する。第1実施形態では、ウェブサイトの検索サービスにおいて英語の検索クエリが入力される場合を例に挙げて説明した。チャンキング実行システムSは、任意のサービスにおける任意の言語の検索クエリに適用可能であり、サービス及び言語は、第1実施形態の例に限られない。第2実施形態では、オンラインショッピングサービスにおいて日本語の検索クエリが入力される場合を例に挙げる。なお、第1実施形態と同様の点は、説明を省略する。
【0079】
[2-1.第2実施形態の概要]
図7は、第2実施形態の概要を示す図である。例えば、ユーザは、ユーザ端末20のブラウザ又はアプリケーションを起動し、オンラインショッピングサービスのトップページP2にアクセスする。第2実施形態では、サーバ10が、オンラインショッピングサービスのトップページを含む種々のページを、ユーザに提供可能であるものとする。ユーザは、入力フォームF20に任意の検索クエリを入力し、所望の商品を検索する。ユーザは、検索クエリの1つとして、ジャンル、在庫の有無、カラー、サイズ、産地、又はメーカー等の種々の属性を指定することもできる。検索クエリは、オンラインショッピングサービスの検索時に入力される。
【0080】
図8は、日本語で入力される検索クエリの一例を示す図である。第2実施形態では、図8のような日本語の検索クエリ1~5が入力されるものとする。図8では、本開示に係る米国特許出願における参考用に、検索クエリ1~5の発音及び英訳を記載する。トークン1は、検索クエリ1に含まれるトークンである。トークン2-1,2-2は、検索クエリ2に含まれるトークンである。トークン3は、検索クエリ3に含まれるトークンである。トークン4は、検索クエリ4に含まれるトークンである。トークン5-1~5-3は、検索クエリ5に含まれるトークンである。
【0081】
文字1-1~1-3は、検索クエリ1に含まれる文字である。文字2-1~2-6は、検索クエリ2,4に含まれる文字である。トークン2-1は、文字2-1~2-4から構成される。トークン2-2は、文字2-5,2-6から構成される。トークン4は、文字2-1~2-6から構成される。文字3-1~3-4は、検索クエリ3,5に含まれる文字である。トークン3は、文字3-1~3-4から構成される。トークン5-1は、文字3-1,3-2から構成される。トークン5-2は、文字3-3から構成される。トークン5-3は、文字3-4から構成される。
【0082】
トークン1は、商品の種類を示す。トークン2-1は、架空の商品のメーカーを示す。トークン2-2は、商品の種類を示す。トークン3は、架空のアニメのタイトルを示す。トークン4は、トークン2-1とトークン2-2の間にスペースが入力されなかった文字列を示す。トークン5-1は、トークン3のうちの文字3-1,3-2の部分である。トークン5-1は、名詞である。トークン5-2は、助詞である。トークン5-3は、名詞である。
【0083】
検索クエリ1は、商品の種類が適切に入力されているので、分割する必要はない。検索クエリ2は、商品のメーカーと、商品の種類と、の間にスペースが適切に配置されているので、分割又は結合する必要はない。検索クエリ3は、アニメのタイトルが適切に入力されているので、分割する必要はない。検索クエリ4は、商品のメーカーと、商品の種類と、の間にスペースが配置されておらず、これらが連続しているので、分割する必要がある。検索クエリ5は、アニメのタイトルの中に不要なスペースが配置されているので、結合する必要がある。
【0084】
第2実施形態では、検索クエリ4及び検索クエリ5が適切なトークンになるようにチャンキングが実行される。チャンキングの流れは、第1実施形態と概ね同様であるが、個々の処理の詳細が第1実施形態とは異なる。例えば、第2実施形態では、複数の辞書データDを利用したマッチングと、複数の共起尺度と、が利用されることによって、チャンキングが実行される。以降、第2実施形態の詳細を説明する。
【0085】
[2-2.第2実施形態で実現される機能]
図9は、第2実施形態で実現される機能の一例を示す機能ブロック図である。サーバ10は、第1実施形態と共通の機能を有するが、一部の機能が異なる。特定部108及び分割部109は、制御部11を主として実現される。
【0086】
[データ記憶部]
データ記憶部100は、第1実施形態と概ね同様であるが、データ記憶部100が記憶するデータの詳細が第1実施形態とは異なる。例えば、検索対象データベースDBは、オンラインショッピングモールで販売される商品に関する情報を含む。例えば、検索対象データベースDBは、商品を販売する店舗を識別可能な店舗ID、個々の商品を識別可能な商品ID、商品の検索用に抽出されたキーワードを含むインデックス、商品タイトル、商品ジャンル等の属性、商品の詳細な説明文、商品の画像、及び商品の価格といった情報が格納される。商品タイトルは、商品の簡単な説明を示す文字列である。商品タイトルは、単語の羅列であってもよい。商品タイトルや商品の詳細な説明文等は、店舗の担当者によって入力される。
【0087】
また、データ記憶部100は、複数の辞書データDを記憶する点で第1実施形態と異なる。複数の辞書データDは、第1辞書データD1、第2辞書データD2、及び第3辞書データD3を含む。第1辞書データD1、第2辞書データD2、及び第3辞書データD3のデータ構造は、第1実施形態で説明した辞書データDと同様なので、図示を省略する。以降、第1辞書データD1、第2辞書データD2、及び第3辞書データD3を区別しない時は、単に辞書データDと記載する。データ記憶部100は、2つ又は4つ以上の辞書データDを記憶してもよいし、第1実施形態のように1つの辞書データDだけを記憶してもよい。
【0088】
例えば、第1辞書データD1は、オンラインショッピングモールの管理者により作成される。第1辞書データD1に格納された語は、オンラインショッピングモールでよく入力される検索クエリに含まれるトークンである。第2辞書データD2に格納された語は、インターネット百科事典に掲載された語である。第3辞書データD3は、オンラインショッピングモールの商品ページにおける商品タイトルに基づいて作成される。
【0089】
第3辞書データD3の語は、商品タイトルがそのまま格納されていてもよいし、商品タイトルに含まれる名詞が格納されてもよい。商品タイトルから名詞を抽出する方法は、公知の形態素解析等を利用すればよい。第1実施形態では、商品ジャンルごとに、当該商品ジャンルの商品の商品タイトルに基づいて第3辞書データD3が作成される場合を説明するが、特に商品ジャンルに関係なく、第3辞書データD3が作成されてもよい。
【0090】
[検索クエリ取得部]
検索クエリ取得部101は、第1実施形態と同様である。
【0091】
[マッチング実行部]
マッチング実行部102は、複数の辞書データDを利用したマッチングを実行する。個々の辞書データDのマッチング自体は、第1実施形態で説明した通りである。第2実施形態では、マッチング実行部102は、第1マッチング実行部102A、第2マッチング実行部102B、及び第3マッチング実行部102Cを含む場合を説明するが、マッチング実行部102は、第1マッチング実行部102A及び第2マッチング実行部102Bだけを含んでもよい。他にも例えば、マッチング実行部102は、第1マッチング実行部102A及び第3マッチング実行部102Cだけを含んでもよいし、第2マッチング実行部102B及び第3マッチング実行部102Cだけを含んでもよい。
【0092】
第2実施形態では、第1マッチング実行部102A、第2マッチング実行部102B、及び第3マッチング実行部102Cの順序でマッチングが実行される場合を説明するが、これらの処理順は、任意の順序であってよい。例えば、第1マッチング実行部102A、第3マッチング実行部102C、及び第2マッチング実行部102Bの順序、第2マッチング実行部102B、第1マッチング実行部102A、及び第3マッチング実行部102Cの順序、又は他の順序でマッチングが実行されてもよい。
【0093】
例えば、検索クエリに複数のトークンが含まれる場合、第1マッチング実行部102Aは、検索クエリに含まれる複数のトークンと、第1辞書データD1と、に基づいて、第1マッチングを実行する。第1マッチングは、第1辞書データD1を利用したマッチングである。第1マッチングは、第1辞書データD1が利用される点で第1実施形態とは異なるが、第1マッチングの具体的な処理自体は、第1実施形態で説明したマッチングと同様である。第1マッチングでも、第1実施形態のマッチングで説明したように、第1辞書データD1との完全一致が要求されるものとするが、部分一致が要求されてもよい。この点は、第2マッチング及び第3マッチングも同様である。
【0094】
第2マッチング実行部102Bは、複数のトークンのうちの一部のトークンが第1辞書データD1にヒットした場合、複数のトークンのうちの第1辞書データD1にヒットしなかったトークンと、第2辞書データD2と、に基づいて、第2マッチングを実行する。検索クエリに含まれるトークンのうち、第1マッチングで完全一致しなかったトークンが第2マッチングの対象になる。第2マッチングは、第2辞書データD2が利用される点と、第1マッチングで完全一致しなかったトークンが第2マッチングの対象になる点と、で第1実施形態とは異なるが、第2マッチングの具体的な処理自体は、第1実施形態で説明したマッチングと同様である。
【0095】
第2実施形態では、第1辞書データD1は、第2辞書データD2よりも過去のマッチング率が高く、過去のマッチング率が相対的に高い第1辞書データD1に基づく第1マッチングは、過去のマッチング率が相対的に低い第2辞書データD2に基づく第2マッチングよりも先に実行される。過去のマッチング率とは、統計上の正解率である。例えば、過去に入力された適切な検索クエリに含まれるトークンをマッチングした場合のヒット率は、正解率に相当し、過去のマッチング率に相当する。
【0096】
過去のマッチング率は、チャンキング実行システムSの管理者により事前に計算されているものとする。例えば、管理者は、過去に入力された検索クエリと、この検索クエリに対応する適切なトークンと、のペアを多数準備する。管理者は、自身が操作するコンピュータに、これらのペアを辞書データDとマッチングさせて完全一致した数を集計させる。このコンピュータは、当該集計された完全一致した数をペアの総計で割ることによって、過去のマッチング率を計算する。過去のマッチング率の計算方法自体は、公知の種々の方法を利用可能であり、上記の例に限られない。
【0097】
第2実施形態では、オンラインショッピングサービスの管理者により作成された辞書データDは、一般的な百科事典により作成された辞書データDよりも過去のマッチング率が高いものとする。このため、オンラインショッピングサービスの管理者により作成された辞書データDは、第1辞書データD1として利用される。一般的な百科事典により作成された辞書データDは、第2辞書データD2として利用される。
【0098】
第3マッチング実行部102Cは、オンラインショッピングサービスにおける商品タイトルを、第3辞書データD3として利用して第3マッチングを実行する。検索クエリに含まれるトークンのうち、第1マッチング及び第2マッチングで完全一致しなかったトークンが第3マッチングの対象になる。第3マッチングは、第3辞書データD3が利用される点と、第1マッチング及び第2マッチングで完全一致しなかったトークンが第3マッチングの対象になる点と、で第1実施形態とは異なるが、第3マッチングの具体的な処理自体は、第1実施形態で説明したマッチングと同様である。
【0099】
なお、第3マッチングで利用される第3辞書データD3は、特定部108により特定された商品ジャンルに応じた第3辞書データD3であってもよい。この場合、商品ジャンルごとに、当該商品ジャンルに属する商品の商品タイトルに基づいて作成された第3辞書データD3が用意されているものとする。第3マッチング実行部102Cは、商品ジャンルに応じた第3辞書データD3に基づいて、第3マッチングを実行する。
【0100】
例えば、図8の検索クエリ3は、最近人気が出たアニメのタイトルである。このタイトルと同じ文字列が第1辞書データD1、第2辞書データD2、又は第3辞書データD3の何れかに格納されていれば、第1マッチング、第2マッチング、又は第3マッチングの何れかにより、検索クエリ3と完全一致する。このため、第1マッチング、第2マッチング、又は第3マッチングの何れかにより、検索クエリ3が適切な検索クエリとして抜き出される。
【0101】
一方、図8の検索クエリ5は、第1辞書データD1、第2辞書データD2、又は第3辞書データD3の何れかに格納されたアニメのタイトルと部分一致するが完全一致しない。このため、検索クエリ5は、第1マッチング、第2マッチング、及び第3マッチングでは抜き出されない。後述の共起尺度取得部103により得られた共起尺度により、検索クエリ5に含まれるトークン5-1~5-3が結合される。
【0102】
[共起尺度取得部]
共起尺度取得部103は、第1共起尺度取得部103A及び第2共起尺度取得部103Bを含む。第2実施形態では、第1共起尺度取得部103Aが第2共起尺度取得部103Bよりも先に処理を実行する場合を説明するが、第2共起尺度取得部103Bが第1共起尺度取得部103Aよりも先に処理を実行してもよい。
【0103】
第1共起尺度取得部103Aは、形態素解析により分割される前の複数のトークンのつながりに関する第1共起尺度を取得する。形態素解析自体は、公知の種々のツールを利用可能であり、例えば、MeCab又はJUMANと呼ばれるツールを利用可能である。日本語以外の言語の検索クエリであれば、その言語に応じた検体疎解析のツールが利用されるようにすればよい。
【0104】
形態素解析により、検索クエリに含まれるトークンが言語上の最小単位である形態素に分割される。分割部109により形態素解析が実行される場合を説明するが、形態素解析は、他の機能ブロックによって実行されてもよい。第1共起尺度取得部103Aの処理は、第1実施形態で説明した共起尺度取得部103の処理と同様であり、第1共起尺度は、第1実施形態で説明した共起尺度と同様である。
【0105】
第2共起尺度取得部103Bは、形態素解析により分割された形態素に基づいて、接尾語又は接頭語に関する第2共起尺度を取得する。例えば、後述の分割部109は、検索クエリに含まれるトークンに対し、形態素解析を実行する。検索クエリ取得部101が取得した検索クエリの全てのトークンに対して形態素解析が実行されてもよいし、検索クエリ取得部101が取得した検索クエリの一部のトークンに対して形態素解析が実行されてもよい。第2実施形態では、第3マッチングまで実行されて抜き出されなかったトークンに対して形態素解析が実行されるものとする。
【0106】
第2共起尺度は、複数の形態素同士が接尾語とその前にある形態素の関係であるか否か、又は、複数の形態素同士が接頭語とそれに続く形態素の関係であるか否かを示す情報である。第2共起尺度の取得方法自体は、公知の方法を利用可能である。例えば、接尾語及び接頭語の少なくとも一方が登録された辞書データDを利用した方法であってもよい。この場合には、辞書データDに定義された接尾語と完全一致する形態素と、その前にある形態素と、の第2共起尺度が高くなる。辞書データDに定義された接頭語と完全一致する形態素と、その後に続く形態素と、の第2共起尺度が高くなる。
【0107】
例えば、トークン1は、形態素解析により、文字1-1及び文字1-2から構成される形態素と、文字1-3だけから構成される形態素と、に分解される。文字1-3は、接尾語の1つなので、これらの語の第2共起尺度が高くなる。図8の例では記載していないが、形態素として接尾語が分解された場合には、この形態素と、続く形態素と、の第2共起尺度も高くなる。図8の他のトークンは、接尾語又は接頭語は含まれないので、第2共起尺度は、あまり高くならない。
【0108】
以降、第1共起尺度の算出方法を第1算出方法と記載し、第2共起尺度の算出方法を第2算出方法と記載する。第1算出方法は、第2算出方法よりも過去のマッチング率が高いものとする。過去のマッチング率の意味は、辞書データDで説明した通りである。第1共起尺度取得部103Aは、複数のトークンに基づいて、過去のマッチング率が相対的に高い第1算出方法を利用した第1共起尺度を取得する。第2共起尺度取得部103Bは、複数のトークンのうちの第1共起尺度が閾値未満のトークンに基づいて、過去のマッチング率が相対的に低い第2算出方法を利用した第2共起尺度を取得する。
【0109】
[出力取得部]
出力取得部104は、第1実施形態と同様である。
【0110】
[チャンキング実行部]
チャンキング実行部105は、複数の辞書データDを利用したマッチングの実行結果と、学習モデルMからの出力と、に基づいて、チャンキングを実行する。例えば、チャンキング実行部105は、第1マッチングの実行結果、第2マッチングの実行結果、及び学習モデルMからの出力に基づいて、チャンキングを実行してもよい。個々のマッチングの実行結果に基づくチャンキングの実行方法は、第1実施形態と同様であり、チャンキング実行部105は、マッチングしたトークンについては、チャンキングしないと決定する。
【0111】
例えば、チャンキング実行部105は、マッチングの実行結果、学習モデルMからの出力、第1共起尺度、及び第2共起尺度に基づいて、チャンキングを実行してもよい。個々の共起尺度に基づくチャンキングの実行方法は、第1実施形態と同様である。例えば、チャンキング実行部105は、第1共起尺度が閾値以上のトークン同士が結合して1つのトークンとなるように、チャンキングを実行する。チャンキング実行部105は、第1共起尺度に基づいて、つながりのあるトークン同士が1つのトークンとなるように、チャンキングを実行する。
【0112】
第2共起尺度は、接尾語又は接頭語に関する情報であり、チャンキング実行部105は、第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、チャンキングを実行してもよい。チャンキング実行部105は、第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、チャンキングを実行する。即ち、チャンキング実行部105は、第2共起尺度が閾値以上の形態素同士が結合して1つのトークンとなるように、チャンキングを実行する。
【0113】
チャンキング実行部105は、出力取得部104が取得した分割要否情報が分割することを示すトークンを、辞書データDを利用して分割することによって、チャンキングを実行してもよい。第2実施形態では、第1辞書データD1が利用される場合を説明するが、チャンキング実行部105は、第2辞書データD2又は第3辞書データD3を利用してトークンを分割してもよい。チャンキング実行部105は、あるトークンを分割することを分割要否情報が示す場合、このトークンと、第1辞書データD1と、が部分一致するか否かを判定する。チャンキング実行部105は、このトークンと部分一致する語が第1辞書データD1に存在する場合、このトークンが、この語から構成されるトークンと、それ以外の部分から構成されるトークンと、を含むように分割する。
【0114】
チャンキング実行部105は、マッチングの実行結果、学習モデルMからの出力、及び商品ジャンルに基づいて、チャンキングを実行してもよい。第2実施形態では、チャンキング実行部105は、特定部108が特定した商品ジャンルに対応する第3辞書データに基づいて、チャンキングを実行する。チャンキング実行部105は、商品ジャンルに対応する第3辞書データに基づく第3マッチングを第3マッチング実行部102Cに実行させ、第3マッチングの実行結果に基づいて、チャンキングを実行する。第3マッチングにより完全一致するトークンについては、チャンキングの対象にはならない。
【0115】
[検索処理実行部]
検索処理実行部106は、第1実施形態と同様である。
【0116】
[提示部]
提示部107は、第1実施形態と同様である。
【0117】
[特定部]
特定部108は、検索クエリに対応する商品ジャンルを特定する。商品ジャンルは、商品を分類するために利用される情報である。商品ジャンルは、商品カテゴリと呼ばれることもある。商品ジャンルは、商品の属性の1つである。検索クエリに対応する商品ジャンルとは、検索クエリに関連付けられた商品ジャンルである。例えば、検索クエリに商品ジャンルが含まれる場合には、検索クエリに含まれる商品ジャンルは、検索クエリに対応する商品ジャンルである。検索クエリに商品ジャンルが付帯する場合には、検索クエリに付帯した商品ジャンルは、検索クエリに対応する商品ジャンルである。
【0118】
第2実施形態では、ユーザが商品ジャンルを指定するものとする。例えば、ユーザ端末20は、ユーザがトップページP2等から指定した商品ジャンルを、検索クエリとともにサーバ10に送信する。サーバ10は、ユーザ端末20から商品ジャンル及び検索クエリを受信する。特定部108は、ユーザ端末20から受信した商品ジャンルを取得することによって、商品ジャンルを特定する。ユーザが商品ジャンルを指定しないこともあるので、この場合には、特定部108の処理は省略される。
【0119】
なお、商品ジャンルの特定方法は、上記の例に限られない。特定部108は、検索クエリに含まれるトークンに基づいて、商品ジャンルを特定してもよい。この場合、データ記憶部100には、トークンに含まれ得る文字列と、商品ジャンルと、の関係が定義されているものとする。例えば、商品ジャンル「電化製品」であれば、メーカー名や商品名といった文字列が関連付けられている。他にも例えば、商品ジャンル「被服」であれば、ブランド名やサイズといった文字列が関連付けられている。特定部108は、上記関係に定義された文字列が検索クエリに含まれる場合、当該文字列に関連付けられた商品ジャンルを取得することによって、検索クエリに対応する商品ジャンルを特定する。
【0120】
[分割部]
分割部109は、形態素解析に基づいて、検索クエリに含まれる少なくとも1つのトークンを分割する。分割部109は、先述した公知のツールに基づいて、検索クエリに含まれるトークンを形態素に分割する。形態素解析のツールについては、先述したように、公知の種々のツールを利用可能である。図8の例であれば、トークン1は、文字1-1及び文字1-2からなる形態素と、文字1-3からなる形態素と、に分割される。トークン2-1,2-2は、これ以上分割されない。トークン3は、文字3-1及び文字3-2からなる形態素、文字3-3からなる形態素、及び文字3-4からなる形態素に分割される。トークン4は、文字2-1~文字2-4からなる形態素と、文字2-5,2-6からなる形態素と、に分割される。トークン5-1~5-3は、これ以上分割されない。ただし、第2実施形態では、全てのトークンが形態素解析の対象になるとは限らないので、あくまで形態素解析の対象となったトークンに対して形態素解析が実行される。
【0121】
[2-3.第2実施形態で実行される処理]
図10及び図11は、第2実施形態で実行される処理の一例を示すフロー図である。この処理は、制御部11,21が記憶部12,22に記憶されたプログラムに従って動作することによって実行される。
【0122】
S200~S203の処理は、オンラインショッピングサービスにおける検索クエリという点でS100~S103と異なるが、他の点についてはS100~S103の処理と同様である。続くS204及びS205の処理は、第1辞書データD1が利用される点でS104及びS105の処理と異なるが、他の点については、S104及びS105の処理と同様である。検索クエリのうち、S205の処理で抜き出されなかったトークンがS206の処理対象となる。
【0123】
続くS206~S208の処理は、S106~S108の処理と同様である。検索クエリのうち、S208の処理で抜き出されなかったトークンがS209の処理対象となる。続くS209及びS210の処理は、第2辞書データD2が利用される点でS104及びS105の処理と異なるが、他の点については、S104及びS105の処理と同様である。検索クエリのうち、S210の処理で抜き出されなかったトークンがS211の処理対象となる。
【0124】
続くS211及びS212の処理は、第3辞書データD3が利用される点でS104及びS105の処理と異なるが、他の点については、S104及びS105の処理と同様である。この第3辞書データD3は、検索クエリに対応する商品カテゴリのものである。商品カテゴリは、S211の処理で特定されるものとする。検索クエリのうち、S212の処理で抜き出されなかったトークンがS213の処理対象となる。
【0125】
図11に移り、サーバ10は、S212の処理までに抜き出されなかったトークン(検索クエリに残っているトークン)に対し、形態素解析を実行して形態素に分割する(S213)。サーバ10は、S213で分割した形態素に基づいて、接尾語又は接頭語に関する第2共起尺度を取得し(S214)、第2共起尺度が閾値以上であるか否かを判定する(S215)。第2共起尺度が閾値以上であると判定された場合(S215;Y)、サーバ10は、検索クエリから、共起尺度が閾値以上になった複数の形態素同士が1つのトークンになるように、チャンキングを実行する(S216)。
【0126】
S217及びS218の処理は、S108及びS109と同様である。S217の処理で学習モデルMに入力されるのは、あくまで検索クエリ内のトークンであり、S213で分割された形態素ではない。S218では、サーバ10は、分割要否情報が分割要を示す場合、第1辞書データD1に基づいて、1つのトークンを複数に分割する。S219~S221の処理は、S110~S112と同様である。
【0127】
第2実施形態のチャンキング実行システムSによれば、複数の辞書データDを利用したマッチングを実行し、複数の辞書データDを利用したマッチングの実行結果と、学習モデルMからの出力と、に基づいて、チャンキングを実行する。これにより、例えば、単一の辞書データDだけを利用する場合に比べて、検索クエリに含まれるトークンを適切なトークンにすることができる確率が高まり、チャンキングの精度が高まる。
【0128】
また、チャンキング実行システムSは、複数のトークンのうちの一部のトークンが第1辞書データD1にヒットした場合、複数のトークンのうちの第1辞書データD1にヒットしなかったトークンと、第2辞書データD2と、に基づいて、第2マッチングを実行する。これにより、第1マッチングで第1辞書データD1に存在するトークンがあれば、第2マッチングの対象となるトークンを減らせるので、サーバ10の処理負荷が軽減する。不必要なマッチングをしないことにより、処理を高速化できる。
【0129】
また、チャンキング実行システムSでは、過去のマッチング率が相対的に高い第1辞書データDに基づく第1マッチングは、過去のマッチング率が相対的に低い第2辞書データD2に基づく第2マッチングよりも先に実行される。これにより、第2マッチングの対象となるトークンを減らせる確率を高めて、サーバ10の処理負荷を効果的に軽減し、かつ、処理をより高速化できる。
【0130】
また、チャンキング実行システムSは、第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、チャンキングを実行する。これにより、例えば、本来であれば1つのトークンとすべきものが学習モデルMによって誤って分解されてしまうことを防止し、チャンキングの精度が高まる。
【0131】
また、チャンキング実行システムSは、第1共起尺度に基づいて、つながりのあるトークン同士が1つのトークンとなるように、チャンキングを実行する。チャンキング実行システムSは、第2共起尺度に基づいて、接尾語とその前の形態素が1つのトークンとなるように、又は、接頭語とその後の形態素が1つのトークンとなるように、チャンキングを実行する。これにより、つながりのある語同士を1つのトークンにまとめることができ、チャンキングの精度が高まる。
【0132】
また、チャンキング実行システムSは、複数のトークンに基づいて、過去のマッチング率が相対的に高い第1算出方法を利用した第1共起尺度を取得する。チャンキング実行システムSは、複数のトークンのうちの第1共起尺度が閾値未満のトークンに基づいて、過去のマッチング率が相対的に低い第2算出方法を利用した第2共起尺度を取得する。これにより、第2共起尺度の取得対象となるトークンを減らせることがあり、サーバ10の処理負荷が軽減する。不必要な第2共起尺度を取得しないことにより、処理を高速化できる。
【0133】
また、チャンキング実行システムSは、分割要否情報が分割することを示すトークンを、第1辞書データD1を利用して分割し、第1辞書データD1を利用した分割の実行結果に基づいて、チャンキングを実行する。これにより、オンラインショッピングサービス特有の第1辞書データD1を利用して本当に分割するか否かを決定できるので、検索クエリに対するチャンキングの精度が効果的に高まる。例えば、学習モデルMが、オンラインショッピングサービスではなく、一般的な語分割を実行する汎用的なモデルだったとしても、オンラインショッピングサービス特有の第1辞書データD1を利用することで、より精度の高いトークンの分割を実現できる。
【0134】
また、チャンキング実行システムSは、検索クエリに対応する商品ジャンルを特定し、マッチングの実行結果、学習モデルMからの出力、及び商品ジャンルに基づいて、チャンキングを実行する。これにより、商品ジャンルを利用した適切なチャンキングを実行できるので、チャンキングの精度が効果的に高まる。例えば、商品ジャンルに応じた第3辞書データD3を第3マッチングで利用する場合には、第3マッチングで比較対象となる語を減らすことができ、サーバ10の処理負荷を軽減できる。不必要なマッチングをしないことにより、処理を高速化できる。
【0135】
また、チャンキング実行システムSは、オンラインショッピングサービスにおける商品タイトルを、第3辞書データD3として利用してマッチングを実行する。これにより、商品タイトルを流用することによって、第3辞書データD3を作成する手間を省くことができる。また、オンラインサービスにおける検索精度が高まる。
【0136】
[3.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0137】
例えば、上記説明した変形例を組み合わせてもよい。例えば、学習モデルMは、入力されたトークンの分割の要否ではなく、入力されたトークンの結合の要否を推定してもよい。学習モデルMは、入力されたトークンの分割及び結合の両方の要否を推定してもよい。例えば、共起尺度はチャンキングで利用されなくてもよい。また例えば、サーバ10で実現されるものとして説明した機能は、他のコンピュータで実現されてもよいし、複数のコンピュータで分担されてもよい。例えば、データ記憶部100に記憶されるものとしたデータは、データベースサーバに記憶されていてもよい。
【符号の説明】
【0138】
S チャンキング実行システム、10 サーバ、11,21 制御部、12,22 記憶部、13,23 通信部、20 ユーザ端末、24 操作部、25 表示部、100 データ記憶部、101 検索クエリ取得部、102 マッチング実行部、102A 第1マッチング実行部、102B 第2マッチング実行部、102C 第3マッチング実行部、103 共起尺度取得部、103A 第1共起尺度取得部、103B 第2共起尺度取得部、104 出力取得部、105 チャンキング実行部、106 検索処理実行部、107 提示部、108 特定部、109 分割部。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11