JP6838471B2 - インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法 - Google Patents

インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法 Download PDF

Info

Publication number
JP6838471B2
JP6838471B2 JP2017079012A JP2017079012A JP6838471B2 JP 6838471 B2 JP6838471 B2 JP 6838471B2 JP 2017079012 A JP2017079012 A JP 2017079012A JP 2017079012 A JP2017079012 A JP 2017079012A JP 6838471 B2 JP6838471 B2 JP 6838471B2
Authority
JP
Japan
Prior art keywords
word
sentence
information
logical value
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017079012A
Other languages
English (en)
Other versions
JP2018180890A (ja
Inventor
片岡 正弘
正弘 片岡
清司 大倉
清司 大倉
文昭 中村
文昭 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017079012A priority Critical patent/JP6838471B2/ja
Publication of JP2018180890A publication Critical patent/JP2018180890A/ja
Application granted granted Critical
Publication of JP6838471B2 publication Critical patent/JP6838471B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法に関する。
テキストデータを解析対象とするテキスト解析には、字句解析、形態素解析、構文解析、意味解析等が含まれる。字句解析は、表記に基づいて文書内の文を単語に分割する処理であり、形態素解析は、文を形態素に分割し、各形態素に対して品詞情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。
構文解析は、単語の品詞情報に基づいて自立語を含む文節を合成し、文節に含まれる自立語に基づいて文節同士の係り受け関係(修飾関係)を求める処理である。構文解析によって得られる構文情報には、例えば、各文に含まれる単語が主語(S)、述語(V)、目的語(O)、又は補語(C)のいずれであるかを示す情報が含まれる。意味解析は、係り受け関係に基づいて同義表現、多義表現の意味を求める処理、又は複数の単語の中から類語を抽出する処理である。
テキストデータから検索文字列を検索する際に、テキストデータに含まれる単語の出現位置、単語の特徴量、又は単語間の関係性を示す情報を登録したインデックスが用いられることがある(例えば、特許文献1〜特許文献3及び非特許文献1を参照)。
特開平8−69471号公報 国際公開第2009/066501号パンフレット 特開2006−227914号公報
"MarkLogicのセマンティック"、[online]、マークロジック株式会社、[平成29年1月18日検索]、インターネット<URL:http://www.marklogic.com/resources/semantics-japanese/resource_download/datasheets/>
テキストデータに含まれる単語の出現位置のみを登録したインデックスを用いて検索文字列を検索する場合、検索文字列に含まれる各単語の構文情報とは無関係に検索処理が行われる。この場合、単語の構文情報も含めた検索結果を得るために、検索文字列に含まれる各単語の構文情報と、テキストデータから検索された単語の構文情報とを比較する、検証処理を行うことが望ましい。しかし、検索処理を行った後に別途検証処理を行う場合、検索結果を得るための処理時間が増加する。
1つの側面において、本発明は、検索文字列に含まれる単語の構文情報を含めた検索処理のためのインデックス情報を提供することを目的とする。
1つの案では、インデックス生成プログラムは、以下の処理をコンピュータに実行させる。
(1)コンピュータは、複数の文を含むテキストデータから複数の単語を抽出する。
(2)コンピュータは、抽出した複数の単語それぞれより、第1論理値、第2論理値、及び第3論理値を有するインデックス情報を生成する。第1論理値は、単語を示す単語情報と、テキストデータ内におけるその単語の位置を示す位置情報とに対応付けられた、単語の存在を示す論理値である。第2論理値は、単語の構文情報と、その単語の位置を示す位置情報とに対応付けられた、単語の存在を示す論理値である。第3論理値は、単語を含む文を示す文情報と、テキストデータ内におけるその文の位置を示す位置情報とに対応付けられた、文の存在を示す論理値である。
1つの実施形態によれば、検索文字列に含まれる単語の構文情報を含めた検索処理のためのインデックス情報を提供することができる。
インデックス生成装置の機能的構成図である。 インデックス生成処理のフローチャートである。 データ検索装置の機能的構成図である。 データ検索処理のフローチャートである。 インデックス生成装置の具体例を示す機能的構成図である。 テキストデータを示す図である。 2つのインデックス情報を示す図である。 単一のインデックス情報を示す図である。 ビット列を示す図である。 圧縮ビット列を示す図である。 インデックス生成処理の具体例を示すフローチャートである。 データ検索装置の具体例を示す機能的構成図である。 データ検索処理の具体例を示すフローチャートである。 主語に対応するビット列のAND演算を示す図である。 文の範囲を示す図である。 述語に対応するビット列のAND演算を示す図である。 目的語に対応するビット列のAND演算を示す図である。 情報処理装置の構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、実施形態のインデックス生成装置の機能的構成例を示している。インデックス生成装置101は、抽出部111及び生成部112を含む。抽出部111及び生成部112は、インデックス生成処理を行ってインデックス情報を生成する。
図2は、図1のインデックス生成装置101が行うインデックス生成処理の例を示すフローチャートである。まず、抽出部111は、複数の文を含むテキストデータから複数の単語を抽出する(ステップ201)。
次に、生成部112は、抽出された複数の単語それぞれより、第1論理値、第2論理値、及び第3論理値を有するインデックス情報を生成する(ステップ202)。第1論理値は、単語を示す単語情報と、テキストデータ内におけるその単語の位置を示す位置情報とに対応付けられた、単語の存在を示す論理値である。第2論理値は、単語の構文情報と、その単語の位置を示す位置情報とに対応付けられた、単語の存在を示す論理値である。第3論理値は、単語を含む文を示す文情報と、テキストデータ内におけるその文の位置を示す位置情報とに対応付けられた、文の存在を示す論理値である。
図1のインデックス生成装置101によれば、検索文字列に含まれる単語の構文情報を含めた検索処理のためのインデックス情報を提供することができる。
図3は、実施形態のデータ検索装置の機能的構成例を示している。データ検索装置301は、記憶部311、受付部312、演算部313、及び出力部314を含む。記憶部311は、図1のインデックス生成装置101が生成したインデックス情報321を記憶し、受付部312、演算部313、及び出力部314は、インデックス情報321に基づくデータ検索処理を行う。
図4は、図3のデータ検索装置301が行うデータ検索処理の例を示すフローチャートである。まず、受付部312は、テキストデータに対する検索文字列を受け付ける(ステップ401)。
次に、演算部313は、インデックス情報321を参照し、第4論理値、第5論理値、及び第6論理値を用いて論理演算を行う(ステップ402)。第4論理値は、インデックス情報321において、検索文字列に含まれる検索単語に対応付けられた論理値である。第5論理値は、インデックス情報321において、検索単語の構文情報に対応付けられた論理値である。第6論理値は、インデックス情報321において、検索単語を含む文に対応付けられた論理値である。
次に、出力部314は、論理演算の結果に基づく検索文字列の検索結果を出力する(ステップ403)。
図3のデータ検索装置301によれば、検索文字列に含まれる単語の構文情報を含めた検索処理を行うことができる。
図5は、図1のインデックス生成装置101の具体例を示している。図5のインデックス生成装置101は、抽出部111、生成部112、記憶部501、及び解析部502を含む。記憶部501は、テキストデータ511を記憶する。テキストデータ511は、日本語、中国語、韓国語、英語、フランス語等の自然言語で記述された複数の文を含む文書又はファイルであってもよい。さらに、テキストデータ511は、複数の文書又はファイルを含んでいてもよい。
抽出部111は、テキストデータ511に対する字句解析を行って、テキストデータ511の各文に含まれる単語を抽出し、抽出した単語の出現位置を示す単語情報512を生成して、記憶部501に格納する。単語情報512は、単語を示す識別情報(単語ID)と、テキストデータ511内におけるその単語の出現位置を示す位置情報とを含む。単語IDは、テキストデータ511を圧縮する際に用いられる単語符号であってもよい。
解析部502は、テキストデータ511に対する構文解析を行って、テキストデータ511の各文に含まれる単語の構文情報513と、テキストデータ511の各文を示す文情報514とを生成し、記憶部501に格納する。
構文情報513は、単語の構文情報を示す識別情報(構文ID)と、テキストデータ511内におけるその単語の出現位置を示す位置情報とを含む。構文IDは、主語、述語、目的語、又は補語のいずれかを示す構文符号であってもよい。文情報514は、文を示す識別情報(文ID)と、テキストデータ511内における文の出現位置を示す位置情報とを含む。文IDは、文頭又は文末を示す文符号であってもよく、文の位置情報は、文頭又は文末に存在する単語の出現位置を示す位置情報であってもよい。
生成部112は、単語情報512、構文情報513、及び文情報514を用いてインデックス情報321を生成し、記憶部501に格納する。
図6は、テキストデータ511の例を示している。図6のテキストデータ511は、“Micky eats cheese every day.”という文を含んでいる。この文には、“Micky”、“eats”、“cheese”、“every”、及び“day”の5個の単語が含まれており、それぞれの単語の出現位置は、“1”〜“5”の番号によって表されている。
“Micky”は主語であり、“eats”は述語であり、“cheese”は目的語であり、“every day”は補語である。“Micky”は文頭に存在し、“day”は文末に存在する。
この場合、単語情報512は、“Micky”、“eats”、“cheese”、“every”、及び“day”それぞれを示す単語IDと、それぞれの単語の出現位置を示す番号とを含む。
構文情報513は、“Micky”、“eats”、及び“cheese”それぞれの構文情報として、主語、述語、及び目的語を示す構文IDを含み、“every”及び“day”それぞれの構文情報として、補語を示す構文IDを含む。構文情報513は、さらに、それぞれの単語の出現位置を示す番号を含む。文情報514は、文頭及び文末を示す文IDと、文頭に存在する“Micky”の出現位置を示す番号と、文末に存在する“day”の出現位置を示す番号とを含む。
なお、図6のテキストデータ511には、図示されている文以外の文も含まれており、単語情報512は、すべての文に含まれる単語の情報を含み、構文情報513は、すべての文に含まれる単語の構文情報を含む。また、文情報514は、すべての文の文頭及び文末の情報を含む。
図7は、図6のテキストデータ511が複数のファイルを表す場合のインデックス情報321の例を示している。図7のインデックス情報321は、図7(a)に示す2次元のインデックス情報と、図7(b)に示す3次元のインデックス情報とを含む。
図7(a)のインデックス情報において、X軸は、単語を含むファイルのファイルIDを表し、Y軸は、単語ID、構文ID、及び文IDを表す。図7(a)のインデックス情報は、各単語の単語IDに対応するビット列、各構文情報の構文IDに対応するビット列、文頭に対応するビット列、及び文末に対応するビット列を含む。例えば、ビット列701は、“eats”の単語IDに対応するビット列である。
図7(b)のインデックス情報において、X軸は、各ファイル内における単語の出現位置に対応するオフセットを表し、Y軸は、単語ID、構文ID、及び文IDを表し、Z軸は、ファイルIDを表す。図7(b)のインデックス情報は、Z軸上で、各ファイルのファイルIDに対応する平面内に、各単語の単語IDに対応するビット列、各構文情報の構文IDに対応するビット列、文頭に対応するビット列、及び文末に対応するビット列を含む。例えば、ビット列702は、“eats”の単語IDに対応するビット列である。
それぞれのファイルのファイルIDとオフセットとを併せてX軸上にプロットすることで、図7の2つのインデックス情報を単一の2次元のインデックス情報321に相互に変換することも可能である。
図8は、このような2次元のインデックス情報321の例を示している。X軸は、単語の出現位置に対応するオフセット及びファイルIDを表し、Y軸は、単語ID、構文ID、及び文IDを表す。図8のインデックス情報321は、各単語の単語IDに対応するビット列、各構文情報の構文IDに対応するビット列、文頭に対応するビット列、及び文末に対応するビット列を含む。さらに、ファイルIDとして、各ファイルの先頭(又は末尾)に対応するビット列を含む。例えば、ビット列801は、“eats”の単語IDに対応するビット列である。
図9は、図7又は図8のインデックス情報321に含まれる、単語ID又は構文IDに対応するビット列の例を示している。図9のビット列901は、アドレス“0”〜アドレス“43”を有するレジスタに格納されており、論理値(ビット値)“0”は、単語が存在しないことを示し、論理値“1”は、単語が存在することを示す。
アドレス“0”〜アドレス“43”は、テキストデータ511内における単語の出現位置を示す番号にそれぞれ対応付けられている。例えば、アドレス“0”〜アドレス“4”は、図6の番号“1”〜番号“5”にそれぞれ対応する。
ビット列901の長さは、44ビットに限られず、テキストデータ511内の総単語数に比例して長くなるが、テキストデータ511内に出現する同じ単語の個数は、総単語数よりもはるかに少ない。このため、ビット列901に含まれる論理値の多くは“0”であり、論理値“1”の個数は、論理値“0”の個数よりも少なくなる。
そこで、ビット列901において各論理値が格納されているアドレスを適当な除数により除算することで、ビット列901をハッシュ化することができる。ハッシュ化したビット列を格納するレジスタのビット数を超えない素数のうち最大の素数を除数として用いることで、ハッシュ化したビット列から元のビット列901を復元することも可能である。このようなハッシュ化方法としては、例えば、先願である特願2016−083243号に記載された方法を用いることができる。
例えば、アドレス“0”〜アドレス“31”を有する32ビットレジスタにビット列901を格納する場合、レジスタのビット数は32であり、そのビット数を超えない最大の素数は31であり、次に大きな素数は29である。この場合、生成部112は、各論理値が格納されているアドレスを29及び31でそれぞれ除算したときの剰余を求める。そして、生成部112は、32ビットレジスタにおいて、求めた剰余が示すアドレスに元の論理値を格納することで、ビット列901を圧縮することができる。
除数として29を用いた場合、ビット列901は圧縮ビット列902に変換される。この場合、32ビットレジスタのアドレス“0”〜アドレス“28”が使用され、アドレス“29”〜アドレス“31”は使用されない。ビット列901のアドレス“35”及びアドレス“42”に格納されていた論理値“1”は、圧縮ビット列902のアドレス“6”及びアドレス“13”にそれぞれ格納される。
また、除数として31を用いた場合、ビット列901は圧縮ビット列903に変換される。この場合、32ビットレジスタのアドレス“0”〜アドレス“30”が使用され、アドレス“31”は使用されない。ビット列901のアドレス“35”及びアドレス“42”に格納されていた論理値“1”は、圧縮ビット列903のアドレス“4”及びアドレス“11”にそれぞれ格納される。
文頭又は文末に対応するビット列も、ビット列901と同様の形式で表され、圧縮ビット列902及び圧縮ビット列903と同様の形式で圧縮することができる。この場合、論理値“0”は、文頭又は文末ではないことを示し、論理値“1”は、文頭又は文末であることを示す。したがって、論理値“1”は、対応するアドレスに文が存在することを示している。
図10は、図8のインデックス情報321に含まれるビット列をハッシュ化することで得られる、圧縮ビット列の例を示している。除数として29を用いた場合、“Micky”、“eats”、“cheese”、文頭、主語、述語、目的語、及び文末それぞれに対応するビット列は、圧縮ビット列1001〜圧縮ビット列1008に変換される。
また、除数として31を用いた場合、“Micky”、“eats”、“cheese”、文頭、主語、述語、目的語、及び文末それぞれに対応するビット列は、圧縮ビット列1011〜圧縮ビット列1018に変換される。
なお、インデックス情報321には、図10に示されていない他の単語に対応する圧縮ビット列と、他の構文情報に対応する圧縮ビット列も含まれる。また、テキストデータ511内に複数個の同じ単語が含まれている場合、その単語に対応する圧縮ビット列において、複数の出現位置それぞれに対応するアドレスに論理値“1”が格納される。
同様に、テキストデータ511内に同じ構文情報を有する複数個の単語が含まれている場合、その構文情報に対応する圧縮ビット列において、複数の出現位置それぞれに対応するアドレスに論理値“1”が格納される。さらに、文頭又は文末に対応する圧縮ビット列において、テキストデータ511内に含まれる複数の文それぞれの文頭又は文末に対応するアドレスに、論理値“1”が格納される。
図11は、図5のインデックス生成装置101が行うインデックス生成処理の具体例を示すフローチャートである。まず、抽出部111は、テキストデータ511に対する字句解析を行って、テキストデータ511から単語を抽出し、単語情報512を生成する(ステップ1101)。次に、解析部502は、テキストデータ511に対する構文解析を行って、構文情報513及び文情報514を生成する(ステップ1102)。
次に、生成部112は、単語情報512に含まれる複数の単語IDの中から1つの単語IDを選択し(ステップ1103)、その単語IDに対応する圧縮ビット列を生成する(ステップ1104)。例えば、生成部112は、選択した単語IDに対応するレジスタ領域内で、単語の出現位置に対応する1つ以上のアドレスに論理値“1”を書き込むことで、その単語IDに対応するビット列を生成する。そして、生成部112は、生成したビット列を2つの素数でハッシュ化して、2つの圧縮ビット列を生成する。
次に、生成部112は、単語情報512に含まれるすべての単語IDを選択したか否かをチェックする(ステップ1105)。未選択の単語IDが残っている場合(ステップ1105,NO)、生成部112は、ステップ1103以降の処理を繰り返す。これにより、複数の単語それぞれに対応する圧縮ビット列が生成される。
すべての単語IDを選択した場合(ステップ1105,YES)、生成部112は、構文情報513に含まれる複数の構文IDの中から1つの構文IDを選択し(ステップ1106)、選択した構文IDに対応する圧縮ビット列を生成する(ステップ1107)。例えば、生成部112は、構文IDに対応するレジスタ領域内で、その構文IDが示す構文情報を有する1つ以上の単語の出現位置に対応するアドレスに論理値“1”を書き込むことで、その構文IDに対応するビット列を生成する。そして、生成部112は、生成したビット列を2つの素数でハッシュ化して、2つの圧縮ビット列を生成する。
次に、生成部112は、構文情報513に含まれるすべての構文IDを選択したか否かをチェックする(ステップ1108)。未選択の構文IDが残っている場合(ステップ1108,NO)、生成部112は、ステップ1106以降の処理を繰り返す。これにより、例えば、主語、述語、目的語、及び補語それぞれに対応する圧縮ビット列が生成される。
すべての構文IDを選択した場合(ステップ1108,YES)、生成部112は、文情報514に含まれる複数の文IDの中から1つの文IDを選択し(ステップ1109)、選択した文IDに対応する圧縮ビット列を生成する(ステップ1110)。例えば、生成部112は、文IDに対応するレジスタ領域内で、その文IDに対応する1つ以上の単語の出現位置に対応するアドレスに論理値“1”を書き込むことで、その文IDに対応するビット列を生成する。そして、生成部112は、生成したビット列を2つの素数でハッシュ化して、2つの圧縮ビット列を生成する。
次に、生成部112は、文情報514に含まれるすべての文IDを選択したか否かをチェックする(ステップ1111)。未選択の文IDが残っている場合(ステップ1111,NO)、生成部112は、ステップ1109以降の処理を繰り返す。これにより、例えば、文頭に対応する圧縮ビット列及び文末に対応する圧縮ビット列が生成される。そして、すべての文IDを選択した場合(ステップ1111,YES)、生成部112は、処理を終了する。
例えば、非特許文献1に記載されたセマンティック検索では、人、場所、及び物の関係性を示すトリプルインデックスを用いることで、単語間の関係性を含めた検索処理が行われる。しかし、テキストデータに対して構文解析及び意味解析を行ってトリプルインデックスを生成するため、インデックス生成処理の処理時間が増加し、生成されるトリプルインデックスのサイズも大きくなる。
これに対して、図11のインデックス生成処理によれば、単語ID、構文ID、及び文IDそれぞれに対応するビット列において、単語の出現位置に対応するアドレスに論理値“1”を書き込むだけで、インデックス情報321が生成される。これにより、インデックス生成処理が高速化されるとともに、インデックス情報321のサイズが小さくなる。ビット列を圧縮することで、インデックス情報321のサイズはさらに削減される。
図12は、図3のデータ検索装置301の具体例を示している。図12のデータ検索装置301は、記憶部311、受付部312、演算部313、出力部314、抽出部1201、及び解析部1202を含む。記憶部311は、テキストデータ511から生成されたインデックス情報321を記憶する。
受付部312は、テキストデータ511に対する検索文字列1211を、ユーザ又は外部の装置から受け付けて、記憶部311に格納する。抽出部1201は、検索文字列1211に対する字句解析を行って、検索文字列1211が表す文に含まれる検索単語を抽出し、抽出した検索単語を示す単語情報1212を生成して、記憶部311に格納する。単語情報1212は、検索単語を示す単語IDを含む。
解析部1202は、検索文字列1211に対する構文解析を行って、検索文字列1211が表す文に含まれる検索単語の構文情報1213を生成し、記憶部311に格納する。構文情報1213は、検索単語の構文情報を示す構文IDを含み、構文IDは、単語情報1212に含まれる検索単語の単語IDと対応付けられる。
演算部313は、単語情報1212及び構文情報1213を用いて、インデックス情報321に含まれる複数のビット列の間の論理演算を行う。そして、演算部313は、論理演算の結果に基づいて、検索文字列1211の検索結果1214を生成し、記憶部311に格納する。出力部314は、検索結果1214を出力する。検索結果1214は、テキストデータ511内における検索文字列1211又は検索単語の出現位置を示す情報を含む。
図13は、図12のデータ検索装置301が行うデータ検索処理の具体例を示すフローチャートである。まず、受付部312は、検索文字列1211を受け付け(ステップ1301)、抽出部1201は、検索文字列1211に対する字句解析を行って、単語情報1212を生成する(ステップ1302)。そして、解析部1202は、検索文字列1211に対する構文解析を行って、構文情報1213を生成する(ステップ1303)。
例えば、“Micky eats cheese.”という文が検索文字列1211としてデータ検索装置301に入力された場合、“Micky”、“eats”、及び“cheese”それぞれの単語IDを含む単語情報1212が生成される。この場合、主語、述語、及び目的語それぞれの構文IDを含む構文情報1213が生成される。そして、“Micky”の単語IDは主語の構文IDと対応付けられ、“eats”の単語IDは述語の構文IDと対応付けられ、“cheese”の単語IDは目的語の構文IDと対応付けられる。
次に、演算部313は、インデックス情報321に含まれる構文IDに対応する圧縮ビット列の中から、主語に対応する2つの圧縮ビット列を抽出し、抽出した2つの圧縮ビット列を伸長して、主語に対応するビット列を復元する(ステップ1304)。2つの圧縮ビット列から元のビット列を復元する復元方法としては、例えば、上述した先願に記載された方法を用いることができる。
次に、演算部313は、単語情報1212及び構文情報1213を参照して、検索文字列1211における主語に対応する単語IDを特定する(ステップ1305)。そして、演算部313は、特定した単語IDに対応する2つの圧縮ビット列を伸長して、主語の単語IDに対応するビット列を復元する。
次に、演算部313は、主語に対応するビット列と主語の単語IDに対応するビット列とのAND演算を行って、検索単語の出現位置を絞り込む(ステップ1306)。このとき、演算部313は、それぞれのビット列の同じアドレスに格納された2つの論理値の論理積を求め、求めた論理積を別のビット列の同じアドレスに書き込むことで、演算結果を示すビット列を生成する。
演算結果を示すビット列において、論理値“1”は、検索文字列1211における主語に対応する検索単語が、テキストデータ511内に存在することを示している。また、論理値“1”が格納されたアドレスは、テキストデータ511内におけるその検索単語の出現位置を示している。
図14は、主語に対応するビット列のAND演算の例を示している。図14(a)は、図10の圧縮ビット列1001及び圧縮ビット列1011から復元された“Micky”のビット列の例を示しており、図14(b)は、圧縮ビット列1005及び圧縮ビット列1015から復元された主語のビット列の例を示している。
図14(a)のビット列と図14(b)のビット列とのAND演算によって、図14(c)に示すビット列が生成される。図14(c)のビット列のアドレス“0”に格納された論理値“1”は、テキストデータ511内に主語の構文情報を有する“Micky”が含まれることを示しており、アドレス“0”は、その出現位置を示している。
次に、演算部313は、インデックス情報321に含まれる文IDに対応する圧縮ビット列の中から、文頭に対応する2つの圧縮ビット列を抽出し、抽出した2つの圧縮ビット列を伸長して、文頭に対応するビット列を復元する(ステップ1307)。
次に、演算部313は、インデックス情報321に含まれる文IDに対応する圧縮ビット列の中から、文末に対応する2つの圧縮ビット列を抽出し、抽出した2つの圧縮ビット列を伸長して、文末に対応するビット列を復元する(ステップ1308)。
次に、演算部313は、文頭に対応するビット列と文末に対応するビット列との四則演算を行って、ステップ1306で生成したビット列が示す検索単語を含む文の範囲を示すビット列を生成する(ステップ1309)。
例えば、演算部313は、文頭に対応するビット列において、ステップ1306で生成したビット列における論理値“1”に最も近い論理値“1”を特定する。また、演算部313は、文末に対応するビット列において、特定した論理値“1”よりも後方に格納された論理値“1”のうち、特定した論理値“1”に最も近い論理値“1”を特定する。ここで、ビット列の先頭は、least significant bit(LSB)に対応し、ビット列の末尾は、most significant bit(MSB)に対応する。したがって、ビット列の後方は、MSBに近づく方向を意味する。
そして、演算部313は、文頭に対応するビット列において特定した論理値“1”のアドレスから、文末に対応するビット列において特定した論理値“1”のアドレスまでの範囲を、文の範囲に決定する。
次に、演算部313は、文頭に対応するビット列及び文末に対応するビット列から、文の範囲に対応する部分ビット列をそれぞれ抽出する。ここで、文頭に対応するビット列から抽出した部分ビット列を文頭部分ビット列と呼び、文末に対応するビット列から抽出した部分ビット列を文末部分ビット列と呼ぶことにする。演算部313は、文末部分ビット列を1ビットだけ後方にシフトし、シフト後の文末部分ビット列から文頭部分ビット列を減算することで、文の範囲を示すビット列を生成する。
図15は、文の範囲の例を示している。図15(a)は、図10の圧縮ビット列1004及び圧縮ビット列1014から復元された文頭のビット列の例を示しており、図15(b)は、圧縮ビット列1008及び圧縮ビット列1018から復元された文末のビット列の例を示している。
図15(a)のビット列において、アドレス“0”に格納された論理値“1”は、図14(c)のビット列のアドレス“0”に格納された論理値“1”に最も近い論理値“1”である。したがって、図15(a)のビット列からアドレス“0”が特定される。
次に、図15(b)のビット列において、アドレス“0”よりも後のアドレス“4”に格納された論理値“1”は、アドレス“0”に最も近い論理値“1”である。したがって、図15(b)のビット列からアドレス“4”が特定される。
この場合、アドレス“0”からアドレス“4”までの範囲が文の範囲に決定され、図15(a)のビット列から、アドレス“0”〜アドレス“4”の範囲に対応する文頭部分ビット列“00001”が抽出される。また、図15(b)のビット列から、同じ範囲に対応する文末部分ビット列“10000”が抽出される。
次に、文末部分ビット列“10000”を1ビットだけ後方にシフトすることで、部分ビット列“100000”が生成され、文頭部分ビット列“00001”を含む同じ範囲の部分ビット列“000001”が生成される。次に、部分ビット列“100000”から部分ビット列“000001”を減算することで、部分ビット列“011111”が生成される。そして、アドレス“0”〜アドレス“5”の範囲に部分ビット列“011111”を格納し、他のアドレスに論理値“0”を格納することで、図15(c)に示すような、文の範囲を示すビット列が生成される。
このように、文頭に対応するビット列と文末に対応するビット列とを用いて論理演算を行うことで、所望の単語を含む文の範囲を迅速に特定することができる。
次に、演算部313は、構文情報1213に含まれる主語以外の構文IDの中から1つの構文IDを選択する(ステップ1310)。そして、演算部313は、インデックス情報321に含まれる構文IDに対応する圧縮ビット列の中から、選択した構文IDに対応する2つの圧縮ビット列を抽出し、抽出した2つの圧縮ビット列を伸長して、その構文IDに対応するビット列を復元する(ステップ1311)。
次に、演算部313は、単語情報1212及び構文情報1213を参照して、検索文字列1211における、選択した構文IDに対応する単語IDを特定する(ステップ1312)。そして、演算部313は、特定した単語IDに対応する2つの圧縮ビット列を伸長して、その構文IDに対応付けられた単語IDに対応するビット列を復元する。
次に、演算部313は、文の範囲を示すビット列と、構文IDに対応するビット列と、構文IDに対応付けられた単語IDに対応するビット列とのAND演算を行って、検索単語の出現位置を絞り込む(ステップ1313)。このとき、演算部313は、それぞれのビット列の同じアドレスに格納された3つの論理値の論理積を求め、求めた論理積を別のビット列の同じアドレスに書き込むことで、演算結果を示すビット列を生成する。
演算結果を示すビット列において、論理値“1”は、検索文字列1211における、構文IDが示す構文情報を有する検索単語が、テキストデータ511内の文の範囲に存在することを示している。また、論理値“1”が格納されたアドレスは、テキストデータ511内におけるその検索単語の出現位置を示している。
次に、演算部313は、構文情報1213に含まれる主語以外のすべての構文IDを選択したか否かをチェックする(ステップ1314)。未選択の構文IDが残っている場合(ステップ1314,NO)、演算部313は、ステップ1310以降の処理を繰り返す。これにより、例えば、検索文字列1211における述語、目的語、及び補語それぞれに対応する検索単語の出現位置を示すビット列が生成される。
図16は、述語に対応するビット列のAND演算の例を示している。図16(a)は、図15(c)のビット列を示している。図16(b)は、図10の圧縮ビット列1006及び圧縮ビット列1016から復元された述語のビット列の例を示しており、図16(c)は、圧縮ビット列1002及び圧縮ビット列1012から復元された“eats”のビット列の例を示している。
図16(a)〜図16(c)の3つのビット列のAND演算によって、図16(d)に示すビット列が生成される。図16(d)のビット列のアドレス“1”に格納された論理値“1”は、図16(a)の文の範囲に述語の構文情報を有する“eats”が含まれることを示しており、アドレス“1”は、その出現位置を示している。
図17は、目的語に対応するビット列のAND演算の例を示している。図17(a)は、図15(c)のビット列を示している。図17(b)は、図10の圧縮ビット列1007及び圧縮ビット列1017から復元された目的語のビット列の例を示しており、図17(c)は、圧縮ビット列1003及び圧縮ビット列1013から復元された“cheese”のビット列の例を示している。
図17(a)〜図17(c)の3つのビット列のAND演算によって、図17(d)に示すビット列が生成される。図17(d)のビット列のアドレス“2”に格納された論理値“1”は、図17(a)の文の範囲に目的語の構文情報を有する“cheese”が含まれることを示しており、アドレス“2”は、その出現位置を示している。
このように、文の範囲を示すビット列と、構文IDに対応するビット列と、単語IDに対応するビット列とのAND演算を行うことで、所望の構文情報を有する所望の単語が文の範囲に存在するか否かを迅速に判定することができる。
主語以外のすべての構文IDを選択した場合(ステップ1314,YES)、演算部313は、ステップ1306及びステップ1313で生成したビット列に基づいて、検索結果1214を生成する(ステップ1315)。そして、出力部314は、検索結果1214を出力する。検索結果1214は、検索文字列1211における各構文情報に対応する検索単語の出現位置を含んでいる。
図13のデータ検索処理によれば、インデックス情報321に含まれる複数のビット列の間の論理演算によって、検索文字列1211に含まれる検索単語とその構文情報とを一括して検索することができる。同じ検索単語を含む検索文字列1211を用いた場合でも、構文情報に応じて異なる検索結果1214が生成されるため、検索単語と構文情報との組み合わせに応じた柔軟な検索処理が実現される。
また、テキストデータ511と検索文字列1211との照合を行う必要がなく、インデックス情報321に対する論理演算のみで検索結果1214が得られるため、データ検索処理が高速化される。
図1及び図5のインデックス生成装置101の構成は一例に過ぎず、インデックス生成装置101の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、構文情報513及び文情報514が外部の装置で生成される場合は、図5の解析部502を省略することができる。
図3及び図12のデータ検索装置301の構成は一例に過ぎず、データ検索装置301の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、構文情報1213が検索文字列1211とともに与えられる場合は、図12の解析部1202を省略することができる。データ検索装置301に、図5の抽出部111、生成部112、及び解析部502を追加して、データ検索装置301内でインデックス生成処理を行ってもよい。
図2、図4、図11、及び図13のフローチャートは一例に過ぎず、インデックス生成装置101又はデータ検索装置301の構成又は条件に応じて一部の処理を省略又は変更してもよい。
例えば、図11のインデックス生成処理において、構文情報513及び文情報514が外部の装置で生成される場合は、ステップ1102の処理を省略することができる。ステップ1104、ステップ1107、及びステップ1110において、生成部112は、生成したビット列を圧縮することなく、そのままインデックス情報321に格納してもよい。
図13のデータ検索処理において、構文情報1213が検索文字列1211とともに与えられる場合は、ステップ1303の処理を省略することができる。ステップ1304において、演算部313は、主語に対応するビット列の代わりに、別の構文情報に対応するビット列を復元してもよい。また、ステップ1305において、演算部313は、主語の単語IDに対応するビット列の代わりに、別の構文情報を有する単語の単語IDに対応するビット列を復元してもよい。
インデックス情報321に含まれるビット列が圧縮されていない場合は、ステップ1304、ステップ1305、ステップ1307、ステップ1308、ステップ1311、及びステップ1312の処理を省略することができる。
図6のテキストデータ、図7及び図8のインデックス情報、図9、図10、及び図14〜図17のビット列は一例に過ぎない。テキストデータ及び検索文字列は、インデックス生成装置101又はデータ検索装置301の用途に応じて変化し、インデックス情報及び演算結果は、テキストデータ及び検索文字列に応じて変化する。テキストデータ及び検索文字列の言語は、英語以外の言語であってもよい。構文情報は、主語、述語、目的語、及び補語以外の情報であってもよく、文情報は、文頭及び文末以外の情報であってもよい。
図18は、図1及び図5のインデックス生成装置101、又は図3及び図12のデータ検索装置301として用いられる情報処理装置(コンピュータ)の構成例を示している。図18の情報処理装置は、CPU1801、メモリ1802、入力装置1803、出力装置1804、補助記憶装置1805、媒体駆動装置1806、及びネットワーク接続装置1807を備える。これらの構成要素はバス1808により互いに接続されている。
メモリ1802は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ1802は、図3及び図12の記憶部311、又は図5の記憶部501として用いることができる。
情報処理装置がインデックス生成装置101である場合、CPU1801(プロセッサ)は、例えば、メモリ1802を利用してプログラムを実行することにより、図1及び図5の抽出部111、生成部112、及び図5の解析部502として動作する。
情報処理装置がデータ検索装置301である場合、CPU1801は、例えば、メモリ1802を利用してプログラムを実行することにより、図3及び図12の受付部312、演算部313、図12の抽出部1201、及び解析部1202として動作する。
入力装置1803は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示及び情報の入力に用いられる。入力される情報は、検索文字列1211であってもよい。
出力装置1804は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。出力装置1804は、図3及び図12の出力部314として用いることができる。処理結果は、検索結果1214であってもよい。
補助記憶装置1805は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置1805は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置1805にプログラム及びデータを格納しておき、それらをメモリ1802にロードして使用することができる。補助記憶装置1805は、図3及び図12の記憶部311、又は図5の記憶部501として用いることができる。
媒体駆動装置1806は、可搬型記録媒体1809を駆動し、その記録内容にアクセスする。可搬型記録媒体1809は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体1809は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体1809にプログラム及びデータを格納しておき、それらをメモリ1802にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ1802、補助記憶装置1805、又は可搬型記録媒体1809のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置1807は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置1807を介して受け取り、それらをメモリ1802にロードして使用することができる。
情報処理装置がインデックス生成装置101である場合、ネットワーク接続装置1807は、インデックス情報321をデータ検索装置301へ送信することができる。
情報処理装置がデータ検索装置301である場合、ネットワーク接続装置1807は、ユーザ端末から検索文字列1211を受信し、検索結果1214をユーザ端末へ送信することができる。この場合、ネットワーク接続装置1807は、出力部314として用いられる。
なお、情報処理装置が図18のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から通信ネットワーク経由で検索文字列1211を受信する場合は、入力装置1803及び出力装置1804を省略してもよい。また、可搬型記録媒体1809又は通信ネットワークを利用しない場合は、媒体駆動装置1806又はネットワーク接続装置1807を省略してもよい。
情報処理装置がスマートフォンのような通話機能を有する携帯端末である場合、マイク及びスピーカのような通話用の装置を含んでいてもよく、カメラのような撮像装置を含んでいてもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図18を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の文を含むテキストデータから複数の単語を抽出し、
前記複数の単語それぞれより、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、インデックス情報を生成する、
処理をコンピュータに実行させるためのインデックス生成プログラム。
(付記2)
前記文情報は、前記単語を含む文の文頭又は文末を示す情報であり、前記第3論理値は、前記テキストデータ内における前記文頭又は前記文末の位置を示す位置情報に対応付けられることを特徴とする付記1記載のインデックス生成プログラム。
(付記3)
前記コンピュータは、前記テキストデータに対する構文解析を行って、前記単語の構文情報を生成することを特徴とする付記1又は2記載のインデックス生成プログラム。
(付記4)
前記単語の構文情報は、主語、述語、目的語、又は補語を示すことを特徴とする付記1乃至3のいずれか1項に記載のインデックス生成プログラム。
(付記5)
複数の文を含むテキストデータに対する検索文字列を受け付け、
前記テキストデータに含まれる複数の単語それぞれより生成されたインデックス情報であって、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、前記インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索単語に対応付けられた第4論理値と、前記検索単語の構文情報に対応付けられた第5論理値と、前記検索単語を含む文に対応付けられた第6論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
処理をコンピュータに実行させるためのデータ検索プログラム。
(付記6)
前記文情報は、前記単語を含む文の文頭又は文末を示す情報であり、前記第3論理値は、前記テキストデータ内における前記文頭又は前記文末の位置を示す位置情報に対応付けられることを特徴とする付記5記載のデータ検索プログラム。
(付記7)
前記コンピュータは、前記検索文字列に対する構文解析を行って、前記検索単語の構文情報を生成することを特徴とする付記5又は6記載のデータ検索プログラム。
(付記8)
前記インデックス情報における前記単語の構文情報は、主語、述語、目的語、又は補語を示し、前記検索単語の構文情報は、主語、述語、目的語、又は補語を示すことを特徴とする付記5乃至7のいずれか1項に記載のデータ検索プログラム。
(付記9)
複数の文を含むテキストデータから複数の単語を抽出する抽出部と、
前記複数の単語それぞれより、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、インデックス情報を生成する生成部と、
備えることを特徴とするインデックス生成装置。
(付記10)
前記文情報は、前記単語を含む文の文頭又は文末を示す情報であり、前記第3論理値は、前記テキストデータ内における前記文頭又は前記文末の位置を示す位置情報に対応付けられることを特徴とする付記9記載のインデックス生成装置。
(付記11)
複数の文を含むテキストデータに含まれる複数の単語それぞれより生成されたインデックス情報であって、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、前記インデックス情報を記憶する記憶部と、
前記テキストデータに対する検索文字列を受け付ける受付部と、
前記インデックス情報において、前記検索文字列に含まれる検索単語に対応付けられた第4論理値と、前記検索単語の構文情報に対応付けられた第5論理値と、前記検索単語を含む文に対応付けられた第6論理値とを用いて、論理演算を行う演算部と、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する出力部と、
備えることを特徴とするデータ検索装置。
(付記12)
前記文情報は、前記単語を含む文の文頭又は文末を示す情報であり、前記第3論理値は、前記テキストデータ内における前記文頭又は前記文末の位置を示す位置情報に対応付けられることを特徴とする付記5記載のデータ検索装置。
(付記13)
コンピュータが、
複数の文を含むテキストデータから複数の単語を抽出し、
前記複数の単語それぞれより、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、インデックス情報を生成する、
ことを特徴とするインデックス生成方法。
(付記14)
コンピュータが、
複数の文を含むテキストデータに対する検索文字列を受け付け、
前記テキストデータに含まれる複数の単語それぞれより生成されたインデックス情報であって、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、前記インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索単語に対応付けられた第4論理値と、前記検索単語の構文情報に対応付けられた第5論理値と、前記検索単語を含む文に対応付けられた第6論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
ことを特徴とするデータ検索方法。
101 インデックス生成装置
111、1201 抽出部
112 生成部
301 データ検索装置
311、501 記憶部
312 受付部
313 演算部
314 出力部
321 インデックス情報
502、1202 解析部
511 テキストデータ
512、1212 単語情報
513、1213 構文情報
514 文情報
701、702、801、901 ビット列
902、903、1001〜1008、1011〜1018 圧縮ビット列
1211 検索文字列
1214 検索結果
1801 CPU
1802 メモリ
1803 入力装置
1804 出力装置
1805 補助記憶装置
1806 媒体駆動装置
1807 ネットワーク接続装置
1808 バス
1809 可搬型記録媒体

Claims (10)

  1. 複数の文を含むテキストデータから複数の単語を抽出し、
    前記複数の単語それぞれより、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、インデックス情報を生成する、
    処理をコンピュータに実行させるためのインデックス生成プログラム。
  2. 前記文情報は、前記単語を含む文の文頭又は文末を示す情報であり、前記第3論理値は、前記テキストデータ内における前記文頭又は前記文末の位置を示す位置情報に対応付けられることを特徴とする請求項1記載のインデックス生成プログラム。
  3. 前記コンピュータは、前記テキストデータに対する構文解析を行って、前記単語の構文情報を生成することを特徴とする請求項1又は2記載のインデックス生成プログラム。
  4. 複数の文を含むテキストデータに対する検索文字列を受け付け、
    前記テキストデータに含まれる複数の単語それぞれより生成されたインデックス情報であって、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、前記インデックス情報を参照し、
    前記インデックス情報において、前記検索文字列に含まれる検索単語に対応付けられた第4論理値と、前記検索単語の構文情報に対応付けられた第5論理値と、前記検索単語を含む文に対応付けられた第6論理値とを用いて、論理演算を行い、
    前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
    処理をコンピュータに実行させるためのデータ検索プログラム。
  5. 前記文情報は、前記単語を含む文の文頭又は文末を示す情報であり、前記第3論理値は、前記テキストデータ内における前記文頭又は前記文末の位置を示す位置情報に対応付けられることを特徴とする請求項4記載のデータ検索プログラム。
  6. 前記コンピュータは、前記検索文字列に対する構文解析を行って、前記検索単語の構文情報を生成することを特徴とする請求項4又は5記載のデータ検索プログラム。
  7. 複数の文を含むテキストデータから複数の単語を抽出する抽出部と、
    前記複数の単語それぞれより、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、インデックス情報を生成する生成部と、
    備えることを特徴とするインデックス生成装置。
  8. 複数の文を含むテキストデータに含まれる複数の単語それぞれより生成されたインデックス情報であって、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、前記インデックス情報を記憶する記憶部と、
    前記テキストデータに対する検索文字列を受け付ける受付部と、
    前記インデックス情報において、前記検索文字列に含まれる検索単語に対応付けられた第4論理値と、前記検索単語の構文情報に対応付けられた第5論理値と、前記検索単語を含む文に対応付けられた第6論理値とを用いて、論理演算を行う演算部と、
    前記論理演算の結果に基づく前記検索文字列の検索結果を出力する出力部と、
    備えることを特徴とするデータ検索装置。
  9. コンピュータが、
    複数の文を含むテキストデータから複数の単語を抽出し、
    前記複数の単語それぞれより、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、インデックス情報を生成する、
    ことを特徴とするインデックス生成方法。
  10. コンピュータが、
    複数の文を含むテキストデータに対する検索文字列を受け付け、
    前記テキストデータに含まれる複数の単語それぞれより生成されたインデックス情報であって、単語を示す単語情報と前記テキストデータ内における前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第1論理値と、前記単語の構文情報と前記単語の位置を示す位置情報とに対応付けられた、前記単語の存在を示す第2論理値と、前記複数の文のうち前記単語を含む文を示す文情報と前記テキストデータ内における前記単語を含む文の位置を示す位置情報とに対応付けられた、前記単語を含む文の存在を示す第3論理値とを有する、前記インデックス情報を参照し、
    前記インデックス情報において、前記検索文字列に含まれる検索単語に対応付けられた第4論理値と、前記検索単語の構文情報に対応付けられた第5論理値と、前記検索単語を含む文に対応付けられた第6論理値とを用いて、論理演算を行い、
    前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
    ことを特徴とするデータ検索方法。
JP2017079012A 2017-04-12 2017-04-12 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法 Active JP6838471B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017079012A JP6838471B2 (ja) 2017-04-12 2017-04-12 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017079012A JP6838471B2 (ja) 2017-04-12 2017-04-12 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法

Publications (2)

Publication Number Publication Date
JP2018180890A JP2018180890A (ja) 2018-11-15
JP6838471B2 true JP6838471B2 (ja) 2021-03-03

Family

ID=64275563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017079012A Active JP6838471B2 (ja) 2017-04-12 2017-04-12 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法

Country Status (1)

Country Link
JP (1) JP6838471B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220824B (zh) * 2020-11-25 2023-01-17 科大讯飞股份有限公司 数据检索方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP2018180890A (ja) 2018-11-15

Similar Documents

Publication Publication Date Title
JP4058057B2 (ja) 日中機械翻訳装置、日中機械翻訳方法および日中機械翻訳プログラム
US8286171B2 (en) Methods and systems to fingerprint textual information using word runs
JP6447161B2 (ja) 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法
WO2005059771A1 (ja) 対訳判断装置、方法及びプログラム
US20180143954A1 (en) Non-transitory computer-readable storage medium, encoding apparatus, and encoding method
JP6680126B2 (ja) 符号化プログラム、符号化装置、符号化方法、及び検索方法
CN111241496B (zh) 确定小程序特征向量的方法、装置和电子设备
CN112784009A (zh) 一种主题词挖掘方法、装置、电子设备及存储介质
JP6838471B2 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
JP5342760B2 (ja) 訳語学習のためのデータを作成する装置、方法、およびプログラム
JP6705352B2 (ja) 言語処理装置、言語処理方法、及び言語処理プログラム
JP6805720B2 (ja) データ検索プログラム、データ検索装置およびデータ検索方法
JP2010250449A (ja) 情報処理装置、情報処理方法
JP2014106707A (ja) 単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム
JP6805927B2 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
US11842152B2 (en) Sentence structure vectorization device, sentence structure vectorization method, and storage medium storing sentence structure vectorization program
JP2005258592A (ja) フォーマット変換装置およびファイル検索装置
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP2017151553A (ja) 機械翻訳装置、機械翻訳方法、及びプログラム
JP2001101184A (ja) 構造化文書生成方法及び装置及び構造化文書生成プログラムを格納した記憶媒体
JP2008071001A (ja) 自然言語処理装置、およびプログラム
JP5691558B2 (ja) 例文検索装置、処理方法およびプログラム
JP2008293070A (ja) 文書解析システム、および文書解析方法、並びにコンピュータ・プログラム
JP2023132977A (ja) 検索プログラム、装置、及び方法
JP6252204B2 (ja) 情報処理装置、意図解析方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210125

R150 Certificate of patent or registration of utility model

Ref document number: 6838471

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150