JP6805720B2 - データ検索プログラム、データ検索装置およびデータ検索方法 - Google Patents

データ検索プログラム、データ検索装置およびデータ検索方法 Download PDF

Info

Publication number
JP6805720B2
JP6805720B2 JP2016207216A JP2016207216A JP6805720B2 JP 6805720 B2 JP6805720 B2 JP 6805720B2 JP 2016207216 A JP2016207216 A JP 2016207216A JP 2016207216 A JP2016207216 A JP 2016207216A JP 6805720 B2 JP6805720 B2 JP 6805720B2
Authority
JP
Japan
Prior art keywords
search
character
bitmap
word
character string
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
JP2016207216A
Other languages
English (en)
Other versions
JP2018067264A (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 JP2016207216A priority Critical patent/JP6805720B2/ja
Priority to US15/680,247 priority patent/US10922343B2/en
Priority to EP17188113.9A priority patent/EP3312740B1/en
Publication of JP2018067264A publication Critical patent/JP2018067264A/ja
Application granted granted Critical
Publication of JP6805720B2 publication Critical patent/JP6805720B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures

Description

本発明は、データ検索プログラムなどに関する。
英文字による文書では、空白やカンマ、ピリオードなどの区切りにより単語が表記されるため、検索に用いられるインデックスは、単語単位で生成される。一方、CJK文字による文書では、文字の区切りが表記されないため、単語単位にインデックスを生成しようとすると、字句解析による単語抽出のコストや精度が課題となる。
そこで、検索対象の文書に出現する文字や文字列につき、nグラム文字に対応付けてインデックスを生成する場合に加え、文字と、その出現位置を対応づけたインデックスを生成する技術が知られている(例えば、特許文献1参照)。かかる技術では、情報処理装置は、検索条件を入力し、入力した検索条件に含まれる日本語の各文字の位置に関する日本語文字位置情報をインデックスとして生成する。また、情報処理装置は、検索条件に含まれる日本語以外の言語の単語の位置を示す単語位置情報をインデックスとして生成する。そして、情報処理装置は、作成されたインデックスに基づいて、検索条件に該当する文書データを検索する。
特開平10−283368号公報 特開平11−85459号公報
しかしながら、従来の検索技術では、文書データから検索条件が示す文字列を高速に検索することができないという問題がある。
例えば、従来の検索技術では、情報処理装置は、文字ごとに生成されたインデックスを用いて、文字に対応づけられた位置に関する情報から個別の文字の検索を高速に行うことができる。しかしながら、通常、検索条件に該当する文字列(検索文字列)は、連続する文字の列である。そうすると、情報処理装置が、検索文字列に含まれる文字の順序を含めて検索するには、検索文字列を構成する各文字の位置が連続しているかについて、改めて検証する必要がある。したがって、従来の検索技術では、文書データから検索文字列を高速に検索することができない。
1つの側面では、文書データから検索条件が示す文字列を高速に検索することを目的とする。
第1の案では、データ検索プログラムは、コンピュータに、対象テキストデータに対する検索文字列を受け付け、前記対象テキストデータに出現する文字または単語それぞれについての前記対象テキストデータにおける出現位置をビットマップデータとして対応づけたインデックス情報と、前記検索文字列を構成する各文字または各単語の前記検索文字列における出現順序に対応づけて生成される検索ビットマップデータとの論理演算により、前記検索文字列を検索する、処理を実行させる。
1つの態様によれば、文書データから検索条件が示す文字列を高速に検索することができる。
図1は、実施例に係る符号化処理の流れの一例を示す図(1)である。 図2は、実施例に係る符号化処理の流れの一例を示す図(2)である。 図3は、実施例に係る検索処理の流れの一例を示す図である。 図4は、実施例に係る符号化ファイルの構成例を示す図である。 図5は、実施例に係る情報処理装置の構成の一例を示す機能ブロック図である。 図6は、実施例に係る符号化処理のフローチャートの一例を示す図である。 図7は、実施例に係る検索処理のフローチャートの一例を示す図である。 図8は、実施例に係る文字列検索処理のフローチャートの一例を示す図である。 図9は、コンピュータのハードウェア構成例を示す図である。 図10は、コンピュータで動作するプログラムの構成例を示す図である。 図11は、実施形態のシステムにおける装置の構成例を示す図である。
以下に、本願の開示するデータ検索プログラム、データ検索装置およびデータ検索方法の実施例を図面に基づいて詳細に説明する。なお、この実施例では、データ検索処理を含む装置を情報処理装置として説明する。この実施例によりこの発明が限定されるものではない。
[実施例に係る符号化処理]
図1および図2は、実施例に係る符号化処理の流れの一例を示す図である。図1に示すように、符号化処理は、符号化対象のテキストデータF1が日本語である場合に、CJK文字とCJK文字の出現位置に対応づけられたビットマップ型インデックスBIを生成するとともに、CJK文字の単位で符号化する。図2に示すように、符号化処理は、符号化対象のテキストデータF1が英語である場合に、英単語と英単語の出現位置に対応づけられたビットマップ型インデックスBIを生成するとともに、英単語の単位で符号化する。なお、実施例では、CJK文字を単に「文字」というものとする。英単語を単に「単語」というものとする。
ここでいうビットマップ型インデックスBIとは、符号化対象のテキストデータF1に含まれる文字または単語を指定するポインタと、文字または単語のテキストデータ内の各オフセット(出現位置)での存否を示すビットを連結したビット列である。すなわち、ビットマップ型インデックスBIとは、符号化対象のテキストデータF1に含まれる文字または単語について、オフセット(出現位置)ごとの存否をインデックス化したビットマップのことをいう。
一例として、図1および図2に示すように、文字または単語がテキストデータF1内のある出現位置に存在する場合には、出現位置に対応するオフセット(出現位置)の存否としてON、すなわち2進数の「1」を示す出現ビットが設定される。文字または単語がテキストデータF1内のある出現位置に存在しない場合には、出現位置に対応するオフセット(出現位置)の存否としてOFF、すなわち2進数の「0」が設定される。文字または単語を指定するポインタとしては、例えば、文字または単語を一意に表す単語IDが採用される。単語IDは、文字または単語そのものであっても良いし、文字または単語の符号であっても良い。文字または単語の符号とは、符号化されたコード(符号化コード)のことをいい、後述する静的コードに対応する。
図1および図2に示すように、ビットマップ型インデックスBIのX軸はオフセット(出現位置)を表し、Y軸は単語IDを表す。つまり、ビットマップ型インデックスBIに含まれる各ビットマップは、単語IDが示す文字または単語の、オフセット(出現位置)ごとの存否を表す。
図1に示すように、符号化対象のテキストデータF1が日本語である場合に、情報処理装置が行う符号化処理は、例えば、符号化対象のテキストデータF1を記憶領域にロードする。そして、符号化処理は、符号化対象のテキストデータF1を記憶領域から読み出し、読み出したテキストデータF1に対して字句解析を行う。ここでいう字句解析とは、符号化されていない状態のテキストデータF1を文字単位に分割することをいう。
符号化処理は、字句解析された文字を先頭から順番に取り出し、取り出した文字に対応するビットマップの、出現位置に対するビットに出現ビットを設定する。そして、符号化処理は、静的辞書S0を用いて、取り出した文字を、文字に対応する静的コードに符号化する。
ここでいう静的辞書S0とは、一般的な英語辞典、国語辞典や教科書などを基にして、文書中に出現する文字または単語の出現頻度を特定し、出現頻度のより高い文字または単語に対して、より短い符号を割り当てた辞書である。静的辞書S0には、それぞれの文字または単語に対応する符号である静的コードがあらかじめ登録されている。
例えば、図1には、符号化対象のテキストデータF1として「・・昨日と今日・・・明日や未来・・・」が表わされている。「昨」は、テキストデータF1内の10番目の位置に出現する。「日」は、テキストデータF1内の11番目の位置に出現する。「と」は、テキストデータF1内の12番目の位置に出現する。「今」は、テキストデータF1内の13番目の位置に出現する。「日」は、テキストデータF1内の14番目の位置に出現する。
符号化処理は、このテキストデータF1に対して字句解析を行う。ここでは、「昨」「日」「と」「今」「日」・・・「明」「日」「や」「未」「来」・・・が字句解析結果となる。
そして、符号化処理は、一例として、10番目の位置に出現する文字「昨」について、文字「昨」に対応するビットマップの、出現位置「10」に対するビットに出現ビット「1」を書き込む。そして、符号化処理は、静的辞書S0を用いて、文字「昨」を、文字「昨」に対応する静的コード「8xxx」に符号化し、符号化データに書き込む。
そして、符号化処理は、一例として、11番目の位置に出現する文字「日」について、文字「日」に対応するビットマップの、出現位置「11」に対するビットに出現ビット「1」を書き込む。そして、符号化処理は、静的辞書S0を用いて、文字「日」を、文字「日」に対応する静的コード「8yyy」に符号化し、符号化データに書き込む。
そして、符号化処理は、一例として、14番目の位置に出現する文字「日」について、文字「日」に対応するビットマップの、出現位置「14」に対するビットに出現ビット「1」を書き込む。そして、符号化処理は、静的辞書S0を用いて、文字「日」を、文字「日」に対応する静的コード「8yyy」に符号化し、符号化データに書き込む。
また、図2に示すように、符号化対象のテキストデータF1が英語である場合に、情報処理装置が行う符号化処理は、例えば、符号化対象のテキストデータF1を記憶領域にロードする。そして、符号化処理は、符号化対象のテキストデータF1を記憶領域から読み出し、読み出したテキストデータF1に対して字句解析を行う。ここでいう字句解析とは、符号化されていない状態のテキストデータF1を単語単位に分割することをいう。一例として、符号化処理は、終端記号(例えば、スペース)を区切りとして、テキストデータF1を単語に分割する。
符号化処理は、字句解析された単語を先頭から順番に取り出し、取り出した単語に対応するビットマップの、出現位置に対するビットに出現ビットを設定する。そして、符号化処理は、静的辞書S0を用いて、取り出した単語を、単語に対応する静的コードに符号化する。
例えば、図2には、符号化対象のテキストデータF1として「・・in front of the・・・」が表わされている。「in」は、テキストデータF1内の100番目の位置に出現する。「front」は、テキストデータF1内の101番目の位置に出現する。「of」は、テキストデータF1内の102番目の位置に出現する。「the」は、テキストデータF1内の103番目の位置に出現する。
符号化処理は、このテキストデータF1に対して字句解析を行う。ここでは、「in」「front」「of」「the」・・・が字句解析結果となる。
そして、符号化処理は、一例として、100番目の位置に出現する単語「in」について、単語「in」に対応するビットマップの、出現位置「100」に対するビットに出現ビット「1」を書き込む。そして、符号化処理は、静的辞書S0を用いて、単語「in」を、単語「in」に対応する静的コード「27」に符号化し、符号化データに書き込む。
そして、符号化処理は、一例として、101番目の位置に出現する単語「front」について、単語「front」に対応するビットマップの、出現位置「101」に対するビットに出現ビット「1」を書き込む。そして、符号化処理は、静的辞書S0を用いて、単語「front」を、単語「front」に対応する静的コード「aa」に符号化し、符号化データに書き込む。
そして、符号化処理は、一例として、102番目の位置に出現する単語「of」について、単語「of」に対応するビットマップの、出現位置「102」に対するビットに出現ビット「1」を書き込む。そして、符号化処理は、静的辞書S0を用いて、単語「of」を、単語「of」に対応する静的コード「23」に符号化し、符号化データに書き込む。
このようにして、符号化処理は、英単語について、英単語単位で符号化することで、符号化の高速化を図ることができる。また、符号化処理は、CJK文字について、単語と同様に、CJK文字単位に符号化することで、符号化の高速化を図ることができる。つまり、符号化処理は、テキストデータF1が日本語である場合には、テキストデータF1を形態素解析して符号化すると、時間を要するところ、形態素解析しないでCJK文字単位に符号化することで、符号化の高速化を図ることができる。ここでいう形態素解析とは、意味を持つ最小限の単位である文字列に分解することをいう。なお、英語と日本語の部分が混在する、英和辞典などの解説文のテキストデータに対しても、この符号化処理を適用することができる。
[実施例に係る検索処理]
図3は、実施例に係る検索処理の流れの一例を示す図である。図3に示すように、検索処理は、ビットマップ型インデックスBIに含まれるビットマップと、検索条件の文字列を構成する各文字の出現順序に対応づけて生成される検索ビットマップとの論理演算により、当該検索条件の文字列を検索する。なお、検索条件の文字列は、「検索文字列」と同義であるとする。また、以降の検索処理の説明は、図1のビットマップ型インデックスBIを参照するものとする。
図3に示すように、情報処理装置が行う検索処理は、検索文字列を受け付ける。ここでは、検索文字列は、「昨日と今日」である。
検索処理は、ビットマップ型インデックスBIを参照し、検索文字列が存在するか否かを判定する。
例えば、検索処理は、ビットマップ型インデックスBIから検索文字列に含まれる先行する文字に対応するビットマップを抽出し、抽出したビットマップを1ビットだけ左シフトする(s1)。ここでは、検索処理は、検索文字列「昨日と今日」に含まれる先行する文字「昨」に対応するビットマップをビットマップ型インデックスBIから抽出する。このビットマップの10ビット目に「1」が設定されている。検索処理は、このビットマップを1ビットだけ左シフトする。このビットマップの11ビット目に「1」が設定される。
そして、検索処理は、ビットマップ型インデックスBIから検索文字列に含まれる後続する文字に対応するビットマップを抽出し、抽出したビットマップと、先行する文字に対応する、シフトした結果のビットマップとをAND演算する(s2)。ここでは、検索処理は、検索文字列「昨日と今日」に含まれる後続する2番目の文字「日」に対応するビットマップをビットマップ型インデックスBIから抽出する。このビットマップの11,14,21ビット目に「1」が設定されている。検索処理は、先行する文字「昨」に対応する、シフトした結果のビットマップと、後続する文字「日」に対応するビットマップとをAND演算する。このAND演算した結果のビットマップb1が、検索文字列を構成する「昨日」における出現順序に対応づけて生成される検索ビットマップに対応する。そして、検索処理は、演算の結果、ビットマップb1の全てのビットが「0」であるか否かを判定する。ここでは、ビットマップb1の11ビット目が「1」として算出されるので、全てのビットが「0」であるとはいえないと判定される。すなわち、検索処理は、今回の文字と次の文字とを含む文字列「昨日」が存在すると判定する。
そして、検索処理は、検索文字列に未処理の文字が有るので、今回AND演算した結果のビットマップを1ビットだけ左シフトする(s3)。ここでは、検索処理は、文字列「昨日」に対応する演算結果を示すビットマップb1を1ビットだけ左シフトし、ビットマップb1´を生成する。このビットマップの12ビット目に「1」が設定される。
そして、検索処理は、ビットマップ型インデックスBIから検索文字列に含まれる後続する文字に対応するビットマップを抽出し、抽出したビットマップと、先行する文字列に対応する、シフトした結果のビットマップとをAND演算する(s4)。ここでは、検索処理は、検索文字列「昨日と今日」に含まれる後続する3番目の文字「と」に対応するビットマップをビットマップ型インデックスBIから抽出する。このビットマップの12ビット目に「1」が設定されている。検索処理は、先行する文字列「昨日」に対応する、シフトした結果のビットマップb1´と、後続する文字「と」に対応するビットマップとをAND演算する。このAND演算した結果のビットマップb2が、検索文字列を構成する「昨日と」における出現順序に対応づけて生成される検索ビットマップに対応する。そして、検索処理は、演算の結果、ビットマップb2の全てのビットが「0」であるか否かを判定する。ここでは、ビットマップb2の12ビット目が「1」として算出されるので、全てのビットが「0」であるとはいえないと判定される。すなわち、検索処理は、今回の文字列と次の文字とを含む文字列「昨日と」が存在すると判定する。
そして、検索処理は、検索文字列に未処理の文字が有るので、今回AND演算した結果のビットマップを1ビットだけ左シフトする(s5)。ここでは、検索処理は、文字列「昨日と」に対応する演算結果を示すビットマップb2を1ビットだけ左シフトし、ビットマップb2´を生成する。このビットマップの13ビット目に「1」が設定される。
そして、検索処理は、ビットマップ型インデックスBIから検索文字列に含まれる後続する文字に対応するビットマップを抽出し、抽出したビットマップと、先行する文字列に対応する、シフトした結果のビットマップとをAND演算する(s6)。ここでは、検索処理は、検索文字列「昨日と今日」に含まれる後続する4番目の文字「今」に対応するビットマップをビットマップ型インデックスBIから抽出する。このビットマップの13ビット目に「1」が設定されている。検索処理は、先行する文字列「昨日と」に対応する、シフトした結果のビットマップb2´と、後続する文字「今」に対応するビットマップとをAND演算する。このAND演算した結果のビットマップb3が、検索文字列を構成する「昨日と今」における出現順序に対応づけて生成される検索ビットマップに対応する。そして、検索処理は、演算の結果、ビットマップb3の全てのビットが「0」であるか否かを判定する。ここでは、ビットマップb3の13ビット目が「1」として算出されるので、全てのビットが「0」であるとはいえないと判定される。すなわち、検索処理は、今回の文字列と次の文字とを含む文字列「昨日と今」が存在すると判定する。
そして、検索処理は、検索文字列に未処理の文字が有るので、今回AND演算した結果のビットマップを1ビットだけ左シフトする(s7)。ここでは、検索処理は、文字列「昨日と今」に対応する演算結果を示すビットマップb3を1ビットだけ左シフトし、ビットマップb3´を生成する。このビットマップの14ビット目に「1」が設定される。
そして、検索処理は、ビットマップ型インデックスBIから検索文字列に含まれる後続する文字に対応するビットマップを抽出し、抽出したビットマップと、先行する文字列に対応する、シフトした結果のビットマップとをAND演算する(s8)。ここでは、検索処理は、検索文字列「昨日と今日」に含まれる後続する5番目の文字「日」に対応するビットマップをビットマップ型インデックスBIから抽出する。このビットマップの11,14,21ビット目に「1」が設定されている。検索処理は、先行する文字列「昨日と今」に対応する、シフトした結果のビットマップb3´と、後続する文字「日」に対応するビットマップとをAND演算する。このAND演算した結果のビットマップb4が、検索文字列を構成する「昨日と今日」における出現順序に対応づけて生成される検索ビットマップに対応する。そして、検索処理は、演算の結果、ビットマップb4の全てのビットが「0」であるか否かを判定する。ここでは、ビットマップの14ビット目が「1」として算出されるので、全てのビットが「0」であるとはいえないと判定される。すなわち、検索処理は、今回の文字列と次の文字とを含む文字列「昨日と今日」が存在すると判定する。
そして、検索処理は、検索文字列に未処理の文字が無いので、検索文字列が存在するか否かを判定する。ここでは、検索文字列「昨日と今日」が存在するので、検索処理は、検索文字列「昨日と今日」が存在する旨を検索結果として出力する。
このようにして、検索処理は、実体照合をしないで、ビットマップ型インデックスBIを利用し、全文検索をすることで、検索の高速化を図ることができる。また、検索処理は、検索文字列を構成する各文字の位置の連続性を考慮しながら、ビットマップ型インデックスBIを利用して全文検索をすることで、検索の高速化を図ることができる。なお、検索処理は、検索条件を文字列として説明したが、検索条件を単語列としても同様の効果を得ることができる。また、検索処理は、検索条件を文字と単語とが混在した単語列としても同様の効果を得ることが可能となる。例えば、検索処理は、文字と単語との混在ルールに基づき、検索条件の単語列を文字と単語とに分解し、ビットマップ型インデックスBIを利用し、全文検索をすれば良い。例えば、文字と単語との混在ルールとして、文字と単語とが混在していても、単語は終端記号(例えば、スペース)で区切られるという混在ルールが挙げられる。
[符号化ファイルの構成例]
図4は、実施例に係る符号化ファイルの構成例を示す図である。図4に示すように、符号化ファイルF2は、ヘッダ部と、符号化データと、トレーラ部とを有する。符号化データは、テキストデータF1の符号化された符号化コード群を記憶する。テキストデータF1が複数のファイルを含む場合には、符号化データは、例えば、ファイル1用の符号化データ、ファイル2用の符号化データなどそれぞれのファイル用の符号化データを含む。トレーラ部は、各ファイルのアドレスや全文インデックスなどを記憶する。全文インデックスは、図1および図2で示したビットマップ型インデックスBIに対応する。各ファイルのアドレスは、テキストデータF1が複数のファイルを含む場合には、複数のファイルに対応する符号化データ内のアドレスを示す。各ファイルのアドレスは、一例として、符号化データの先頭からの相対アドレスである。ヘッダ部は、例えば、符号化ファイルF2の生成に用いられた符号化アルゴリズムを識別する情報や、符号化に用いられたパラメータなどの情報を記憶し、例えば、トレーラ部に格納された各情報へのポインタなどが格納される。
[実施例に係る情報処理装置の構成]
図5は、実施例に係る情報処理装置の構成の一例を示す機能ブロック図である。図5に示すように、情報処理装置100は、符号化部110、検索部120および記憶部130を有する。
符号化部110は、図1および図2で示した符号化処理を実行する処理部である。符号化部110は、ファイルリード部111、文字/単語取得部112、インデックス生成部113、符号化処理部114およびファイルライト部115を有する。
検索部120は、図3で示した検索処理を実行する処理部である。検索部120は、検索条件受付部121、文字列/単語列検索部122および検索結果出力部123を有する。
記憶部130は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)などの不揮発性の半導体メモリ素子などの記憶装置に対応する。記憶部130は、静的辞書131およびビットマップ型インデックス132を有する。
静的辞書131は、一般的な英語辞典、国語辞典や教科書などを基にして、文書中に出現する文字または単語の出現頻度を特定し、出現頻度のより高い文字または単語に対して、より短い符号を割り当てた辞書である。静的辞書131には、それぞれの文字または単語に対応する符号である静的コードがあらかじめ登録されている。なお、静的辞書131は、静的辞書S0に対応する。
ビットマップ型インデックス132は、テキストデータF1に含まれる単語または文字について、オフセット(出現位置)ごとの存否をインデックス化したビットマップの集合である。なお、ビットマップ型インデックス132は、ビットマップ型インデックスBIに対応する。ビットマップ型インデックス132の説明は、図1および図2と同様であるので、その説明を省略する。
ファイルリード部111は、符号化対象のテキストデータF1を記憶領域に読み出す。
文字/単語取得部112は、テキストデータF1から文字または単語を取得する。例えば、文字/単語取得部112は、記憶領域に読み出したテキストデータF1に対して字句解析を行う。文字/単語取得部112は、字句解析した結果の文字または単語を、テキストデータF1の先頭から順番に取得する。文字/単語取得部112は、取得した文字または単語と、それぞれのテキストデータF1内の出現位置とを対応づけてインデックス生成部113に出力する。文字/単語取得部112は、取得した文字または単語を符号化処理部114に出力する。
インデックス生成部113は、ビットマップ型インデックス132を生成する。例えば、インデックス生成部113は、文字/単語取得部112から出力された文字について、当該文字に対応するビットマップを、ビットマップ型インデックス132から抽出する。インデックス生成部113は、抽出したビットマップに、テキストデータF1内の出現位置に対応する出現ビットを設定する。インデックス生成部113は、文字/単語取得部112から出力された単語について、当該単語に対応するビットマップを、ビットマップ型インデックス132から抽出する。インデックス生成部113は、抽出したビットマップに、テキストデータF1内の出現位置に対応する出現ビットを設定する。
符号化処理部114は、文字または単語を符号化する。例えば、符号化処理部114は、文字/単語取得部112から出力された文字を、静的辞書131に登録されている静的コードに符号化する。符号化処理部114は、文字/単語取得部112から出力された単語を、静的辞書131に登録されている静的コードに符号化する。
ファイルライト部115は、符号化処理部114によって符号化された符号化コードをファイル単位に符号化ファイルF2の符号化データに格納する。ファイルライト部115は、ビットマップ型インデックス132を符号化ファイルF2のトレーラ部に書き込む。ファイルライト部115は、符号化データ内の各ファイルのアドレスを符号化ファイルF2のトレーラ部に書き込む。
検索条件受付部121は、検索条件を受け付ける。例えば、検索条件受付部121は、検索条件として検索対象の文字列または検索対象の単語列を受け付ける。なお、検索条件受付部121は、検索条件として文字と単語とが混在した単語列を受け付けても良い。
文字列/単語列検索部122は、検索条件が検索対象の文字列である場合には、ビットマップ型インデックス132を参照し、テキストデータF1に検索対象の文字列が存在するか否かを判定する。文字列/単語列検索部122は、検索条件が検索対象の単語列である場合には、ビットマップ型インデックス132を参照し、テキストデータF1に検索対象の単語列が存在するか否かを判定する。なお、文字列/単語列検索部122は、検索条件が文字と単語とが混在した単語列である場合には、ビットマップ型インデックス132を参照し、テキストデータF1に検索対象の単語列が存在するか否かを判定する。
例えば、文字列/単語列検索部122は、検索条件が検索対象の文字列である場合には、以下の処理を行う。文字列/単語列検索部122は、検索対象の文字列に含まれる各文字に対応するビットマップを、ビットマップ型インデックス132から抽出する。文字列/単語列検索部122は、検索対象の文字列に含まれる先行する文字に対応するビットマップを1ビットだけ左シフトする。文字列/単語列検索部122は、先行する文字に対応する、シフトした結果のビットマップと、検索対象の文字列に含まれる後続する文字に対応するビットマップとをAND演算する。このAND演算した結果のビットマップが、検索対象の文字列の中の連続する先行する文字と後続する文字とにおける出現順序に対応づけて生成された検索ビットマップである。文字列/単語列検索部122は、演算の結果、全てのビットが「0」であるか否かを判定する。文字列/単語列検索部122は、全てのビットが「0」であるとはいえない場合には、先行する文字と後続する文字との文字列が存在すると判定する。そして、文字列/単語列検索部122は、検索対象の文字列に未処理の文字が有る場合には、さらに、現に処理された文字列と後続する文字とを含む文字列の検索処理を繰り返す。文字列/単語列検索部122は、検索対象の文字列に未処理の文字が無い場合には、演算処理を終了し、演算の結果、全てのビットが「0」であるとはいえない場合には、検索対象の文字列が存在すると判定する。すなわち、文字列/単語列検索部122は、検索対象の文字列が存在すると判定する。文字列/単語列検索部122は、演算の結果、全てのビットが「0」である場合には、先行する文字(または文字列)と後続する文字との文字列が存在しないと判定する。すなわち、文字列/単語列検索部122は、検索対象の文字列が存在しないと判定する。
検索結果出力部123は、検索結果を出力する。例えば、検索結果出力部123は、文字列/単語列検索部122によって検索対象が存在すると判定された場合には、検索結果として検索対象が存在する旨を出力する。検索結果出力部123は、文字列/単語列検索部122によって検索対象が存在しないと判定された場合には、検索結果として検索対象が存在しない旨を出力する。
[実施例に係る符号化処理の処理手順]
図5に示した符号化部110の処理手順について、図6を参照して説明する。図6は、実施例に係る符号化処理のフローチャートの一例を示す図である。
図6に示すように、符号化部110は、前処理を実行する(ステップS11)。例えば、符号化部110は、各種記憶領域を記憶部130に確保する。そして、符号化部110は、符号化対象のファイルを読み出し、読出用の記憶領域にテキストデータF1を格納する(ステップS12)。
そして、符号化部110は、読出用の記憶領域から文字または単語を取得する(ステップS13)。例えば、符号化部110は、読出用の記憶領域に格納されたテキストデータF1を字句解析し、字句解析した結果の文字または単語を、テキストデータF1の先頭から順番に取得する。
符号化部110は、取得対象は文字であるか否かを判定する(ステップS14)。取得対象は文字であると判定した場合には(ステップS14;Yes)、符号化部110は、取得した文字に対応するビットマップの、出現位置に対するビットに「1」を書き込む(ステップS15)。例えば、符号化部110は、取得した文字に対応するビットマップをビットマップ型インデックス132から抽出する。符号化部110は、抽出したビットマップに、テキストデータF1内の、取得した文字の出現位置に対応する出現ビットを設定する。
符号化部110は、取得した文字を、静的辞書131に登録されている静的コードに符号化する(ステップS16)。そして、符号化部110は、ステップS19に移行する。
一方、取得対象は文字でないと判定した場合には(ステップS14;No)、符号化部110は、取得対象は単語であると判定し、単語に対応するビットマップの、出現位置に対するビットに「1」を書き込む(ステップS17)。例えば、符号化部110は、取得した単語に対応するビットマップをビットマップ型インデックス132から抽出する。符号化部110は、抽出したビットマップに、テキストデータF1内の、取得した単語の出現位置に対応する出現ビットを設定する。
符号化部110は、取得した単語を、静的辞書131に登録されている静的コードに符号化する(ステップS18)。そして、符号化部110は、ステップS19に移行する。
ステップS19において、符号化部110は、ファイルの終点か否かを判定する(ステップS19)。ファイルの終点でないと判定した場合には(ステップS19;No)、符号化部110は、次の文字または単語を取得すべく、ステップS13に移行する。
一方、ファイルの終点であると判定した場合には(ステップS19;Yes)、符号化部110は、符号化処理を終了する。
[実施例に係る検索処理の処理手順]
図5に示した検索部120の処理手順について、図7を参照して説明する。図7は、実施例に係る検索処理のフローチャートの一例を示す図である。なお、検索部120の処理手順の一例として、文字列を検索条件とした場合を説明するものとする。
図7に示すように、検索部120は、検索対象の文字列を受け付けたか否かを判定する(ステップS21)。検索対象の文字列を受け付けていないと判定した場合には(ステップS21;No)、検索部120は、検索対象の文字列を受け付けるまで、判定処理を繰り返す。
一方、検索対象の文字列を受け付けたと判定した場合には(ステップS21;Yes)、検索部120は、検索対象の文字列の先頭の文字を対象文字とし、当該対象文字に対応するビットマップをビットマップ型インデックス132から抽出する(ステップS22)。
検索部120は、対象文字または文字列と次の文字とを含む文字列の検索処理を実行する(ステップS23)。なお、文字列の検索処理のフローチャートは、後述する。
文字列の検索処理を実行した結果、検索部120は、文字列が存在するか否かを判定する(ステップS24)。文字列が存在しないと判定した場合には(ステップS24;No)、検索部120は、ステップS29に移行する。
一方、文字列が存在すると判定した場合には(ステップS24;Yes)、検索部120は、検索対象の文字列に未処理の文字が有るか否かを判定する(ステップS25)。検索対象の文字列に未処理の文字が有ると判定した場合には(ステップS25;Yes)、検索部120は、未処理の文字を次の文字とする(ステップS26)。そして、検索部120は、次の文字を含む文字列を検索すべく、ステップS23に移行する。
一方、検索対象の文字列に未処理の文字が無いと判定した場合には(ステップS25;No)、検索部120は、検索対象の文字列が存在するか否かを判定する(ステップS27)。検索対象の文字列が存在すると判定した場合には(ステップS27;Yes)、検索部120は、検索対象が存在する旨を検索結果として出力する(ステップS28)。そして、検索部120は、検索処理を終了する。
一方、検索対象の文字列が存在しないと判定した場合には(ステップS27;No)、検索部120は、ステップS29に移行する。ステップS29において、検索部120は、検索対象が存在しない旨を検索結果として出力する(ステップS29)。そして、検索部120は、検索処理を終了する。
[実施例に係る文字列検索処理のフローチャート]
図8は、実施例に係る文字列検索処理のフローチャートの一例を示す図である。
図8に示すように、検索部120は、対象文字または文字列に対するビットマップを1ビットだけ左シフトする(ステップS31)。そして、検索部120は、次の文字に対するビットマップをビットマップ型インデックス132から抽出する(ステップS32)。そして、検索部120は、対象文字または文字列に対するビットマップと次の文字に対するビットマップとをAND演算する(ステップS33)。そして、検索部120は、AND演算した結果を示すビットマップを、対象文字または文字列に次の文字を加えた対象文字列に対するビットマップとする(ステップS34)。すなわち、AND演算した結果を示すビットマップが、検索対象の文字列を構成する各文字の出現順序に対応づけて生成される検索ビットマップに対応する。
検索部120は、AND演算した結果を示すビットマップの全てのビットが「0」であるか否かを判定する(ステップS35)。全てのビットが「0」であると判定した場合には(ステップS35;Yes)、検索部120は、対象文字列がテキストデータF1に存在しないと判定する(ステップS36)。そして、検索部120は、文字列検索処理を終了する。
一方、全てのビットが「0」であるとはいえないと判定した場合には(ステップS35;No)、検索部120は、対象文字列がテキストデータF1に存在すると判定する(ステップS37)。そして、検索部120は、文字列検索処理を終了する。
これにより、情報処理装置100は、対象テキストデータF1に対する検索文字列を受け付ける。情報処理装置100は、ビットマップ型インデックス132と、検索文字列を構成する各文字または各単語の当該検索文字列における出現順序に対応づけて生成される検索ビットマップデータとの論理演算により、当該検索文字列を検索する。ビットマップ型インデックス132は、対象テキストデータF1に出現する文字または単語それぞれについての当該対象テキストデータF1における出現位置をビットマップデータとして対応づける情報である。かかる構成によれば、情報処理装置100は、ビットマップ型インデックス132の文字または単語それぞれに対するビットマップデータと、検索文字列を構成する文字または単語に対応するビットマップデータとの論理演算により、高速、かつ、検索ノイズの少ない検索を行うことができる。また、情報処理装置100は、検索文字列を構成する各文字または各単語の位置の連続性を考慮しながら検索することで、検索の高速化を図ることができる。
また、情報処理装置100は、受け付けた検索文字列に文字と単語とが混在する場合には、文字と単語との混在ルールに基づき、検索文字列を分解する。情報処理装置100は、ビットマップ型インデックス132と、該分解された各文字および各単語に対応するビットマップデータとの論理演算により、検索文字列を検索する。かかる構成によれば、情報処理装置100は、検索文字列に文字と単語とが混在する場合であっても、高速、かつ、検索ノイズの少ない検索を行うことができる。
また、情報処理装置100は、対象のテキストデータF1を受け付ける。情報処理装置100は、対象のテキストデータF1に出現する文字または単語それぞれについてビットマップ型インデックス132を生成するとともに、文字の単位または単語の単位で符号化する。情報処理装置100は、符号化されたテキストデータF1に対する検索文字列を受け付けると、該生成されたビットマップ型インデックス132を用いて、検索文字列を検索する。かかる構成によれば、情報処理装置100は、ビットマップ型インデックス132を用いて検索文字列を検索することで、符号化されたテキストデータF1を復号化しなくても、検索文字列を検索することとなり、検索文字列を高速に検索できる。また、情報処理装置100は、意味を持つ最小現の単位である文字列の単位ではなく、文字の単位で符号化することで、符号化の高速化を図ることができる。
また、情報処理装置100は、ビットマップ型インデックス132に対応づけられた、検索文字列を構成する第1の文字のビットマップデータを左シフトする。情報処理装置100は、左シフトした結果を示すビットマップデータと、ビットマップ型インデックス132に対応づけられた、検索文字列を構成する第1の文字に連続する第2の文字のビットマップデータとをAND演算する。そして、情報処理装置100は、AND演算した結果を示す、連続する第1の文字と第2の文字における出現順序に対応づけて生成された検索ビットマップデータに連続する第1の文字と第2の文字の出現位置が設定されていれば、検索ビットマップデータを左シフトする。情報処理装置100は、左シフトした結果を示す検索ビットマップデータと、検索文字列を構成する第2の文字に連続する第3の文字のビットマップデータとをAND演算することにより、検索文字列を検索する。かかる構成によれば、情報処理装置100は、検索文字列を構成する連続する文字に対応する検索ビットマップデータを生成し、生成した検索ビットマップデータと、さらに連続する文字の、ビットマップ型インデックス132に対応づけられたビットマップデータとをAND演算することで、検索文字列を高速に検索できる。
[実施例に関連する他の態様]
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本発明の本旨を逸脱しない範囲の設計変更は適宜行われうる。
また、実施例では、符号化部110は、インデックス生成部113によって生成されたビットマップ型インデックス132を符号化ファイルF2のトレーラ部に格納すると説明した。しかしながら、符号化部110は、ビットマップ型インデックス132の代わりにビットマップ型インデックス132をビットマップごとにハッシュ化したハッシュ化インデックスを符号化ファイルF2のトレーラ部に格納しても良い。かかる場合には、検索部120は、符号化ファイルF2のトレーラ部に格納されたハッシュ化インデックスから、検索対象の文字列に含まれる各文字に対応するハッシュ化ビットマップを抽出し、抽出したハッシュ化ビットマップを復元する。そして、検索部120は、復元したビットマップを用いて、文字列/単語列検索部122の検索方法で検索対象の文字列を検索すれば良い。すなわち、検索部120は、ビットマップのシフトとAND演算により、全文検索を実現すれば良い。これにより、情報処理装置100は、使用できる資源が少ない場合であっても、少ない資源でテキストファイルF1を符号化し、インデックス化することができ、このインデックス化された情報を用いて、高速に検索することができる。
また、実施例に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[情報処理装置のハードウェア構成]
下記に、上述の実施形態に用いられるハードウェア及びソフトウェアについて説明する。図9は、コンピュータのハードウェア構成例を示す図である。コンピュータ1は、例えば、プロセッサ301、RAM(Random Access Memory)302、ROM(Read Only Memory)303、ドライブ装置304、記憶媒体305、入力インターフェース(I/F)306、入力デバイス307、出力インターフェース(I/F)308、出力デバイス309、通信インターフェース(I/F)310、SAN(Storage Area Network)インターフェース(I/F)311およびバス312などを含む。それぞれのハードウェアはバス312を介して接続されている。
RAM302は読み書き可能なメモリ装置であって、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などの半導体メモリ、またはRAMでなくてもフラッシュメモリなどが用いられる。ROM303は、PROM(Programmable ROM)なども含む。ドライブ装置304は、記憶媒体305に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体305は、ドライブ装置304によって書き込まれた情報を記憶する。記憶媒体305は、例えば、ハードディスク、SSD(Solid State Drive)などのフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ1は、複数種類の記憶媒体それぞれについて、ドライブ装置304及び記憶媒体305を設ける。
入力インターフェース306は、入力デバイス307と接続されており、入力デバイス307から受信した入力信号をプロセッサ301に伝達する回路である。出力インターフェース308は、出力デバイス309と接続されており、出力デバイス309に、プロセッサ301の指示に応じた出力を実行させる回路である。通信インターフェース310はネットワーク3を介した通信の制御を行なう回路である。通信インターフェース310は、例えばネットワークインターフェースカード(NIC)などである。SANインターフェース311は、ストレージエリアネットワークによりコンピュータ1と接続された記憶装置との通信の制御を行なう回路である。SANインターフェース311は、例えばホストバスアダプタ(HBA)などである。
入力デバイス307は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ1の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス309は、コンピュータ1の制御に応じて情報を出力する装置である。出力デバイス309は、例えば、ディスプレイなどの画像出力装置(表示デバイス)や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス307及び出力デバイス309として用いられる。また、入力デバイス307及び出力デバイス309は、コンピュータ1と一体になっていても良いし、コンピュータ1に含まれず、例えば、コンピュータ1に外部から接続する装置であっても良い。
例えば、プロセッサ301は、ROM303や記憶媒体305に記憶されたプログラムをRAM302に読み出し、読み出されたプログラムの手順に従って符号化部110の処理および検索部120の処理を行なう。その際にRAM302はプロセッサ301のワークエリアとして用いられる。記憶部130の機能は、ROM303および記憶媒体305がプログラムファイル(後述のアプリケーションプログラム24、ミドルウェア23およびOS22など)やデータファイル(例えば、静的辞書131、ビットマップ型インデックス132など)を記憶し、RAM302がプロセッサ301のワークエリアとして用いられることによって実現される。プロセッサ301が読み出すプログラムについては、図10を用いて説明する。
図10は、コンピュータで動作するプログラムの構成例を示す図である。コンピュータ1において、図10に示すハードウェア群(HW)21(301〜312)の制御を行なうOS(オペレーティング・システム)22が動作する。OS22に従った手順でプロセッサ301が動作して、ハードウェア群(HW)21の制御・管理が行なわれることにより、アプリケーションプログラム(AP)24やミドルウェア(MW)23に従った処理がハードウェア群(HW)21で実行される。さらに、コンピュータ1において、ミドルウェア(MW)23またはアプリケーションプログラム(AP)24が、RAM302に読み出されてプロセッサ301により実行される。
プロセッサ301が、符号化機能が呼び出された場合に、ミドルウェア23またはアプリケーションプログラム24の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS22に基づいてハードウェア群21を制御して)符号化部110の機能が実現される。プロセッサ301が、検索機能が呼び出された場合に、ミドルウェア23またはアプリケーションプログラム24の少なくとも一部に基づく処理を行なうことにより、(それらの処理をOS22に基づいてハードウェア群21を制御して)検索部120の機能が実現される。符号化機能および検索機能は、アプリケーションプログラム24自体に含まれても良いし、アプリケーションプログラム24に従って呼び出されることで実行されるミドルウェア23の一部であっても良い。
図11は、実施形態のシステムにおける装置の構成例を示す。図11のシステムは、コンピュータ1a、コンピュータ1b、基地局2およびネットワーク3を含む。コンピュータ1aは、無線または有線の少なくとも一方により、コンピュータ1bと接続されたネットワーク3に接続している。
図5に示す情報処理装置100の符号化部110と検索部120とは、図11に示すコンピュータ1aとコンピュータ1bとのいずれに含まれても良い。コンピュータ1bが符号化部110の機能を含み、コンピュータ1aが検索部120の機能を含んでも良いし、コンピュータ1aが符号化部110の機能を含み、コンピュータ1bが検索部120の機能を含んでも良い。また、コンピュータ1aとコンピュータ1bとの双方が、符号化部110の機能および検索部120の機能を備えても良い。
100 情報処理装置
110 符号化部
111 ファイルリード部
112 文字/単語取得部
113 インデックス生成部
114 符号化処理部
115 ファイルライト部
120 検索部
121 検索条件受付部
122 文字列/単語列検索部
123 検索結果出力部
130 記憶部
131 静的辞書
132 ビットマップ型インデックス

Claims (6)

  1. コンピュータに、
    対象テキストデータを受け付け、
    前記対象テキストデータに出現する文字または単語それぞれの位置に対応付けた、文字または単語ごとのビットマップデータをハッシュ化し、ハッシュ化した複数のビットマップデータを示すインデックス情報を生成するとともに、前記対象テキストデータを前記文字の単位または前記単語の単位で符号化し、
    符号化された前記対象テキストデータに対する検索文字列を受け付け、
    前記インデックス情報と、前記検索文字列を構成する各文字または各単語の前記検索文字列における出現順序に対応づけて生成される検索ビットマップデータとの論理演算により、前記検索文字列を検索する
    処理を実行させるデータ検索プログラム。
  2. 該受け付けた検索文字列に文字と単語とが混在する場合には、予め定められた文字と単語との混在ルールに基づき、前記検索文字列を分解し、
    前記検索する処理は、前記インデックス情報と、該分解された各文字および各単語の前記検索文字列における出現順序に対応づけて生成される検索ビットマップデータとの論理演算により、前記検索文字列を検索する
    処理を特徴とする請求項1に記載のデータ検索プログラム。
  3. 前記検索する処理は、該生成された前記インデックス情報に含まれるハッシュ化されたビットマップデータであって前記検索文字列を構成する各文字または各単語に対応するビットマップデータを復元したビットマップデータと、前記検索文字列を構成する各文字または各単語の前記検索文字列における出現順序に対応づけて生成された検索ビットマップデータとの論理演算により、前記検索文字列を検索する
    処理を実行させる請求項1に記載のデータ検索プログラム。
  4. 前記検索する処理は、
    前記インデックス情報に対応づけられた、前記検索文字列を構成する第1の文字に対応するビットマップデータを左シフトし、左シフトした結果を示すビットマップデータと、前記インデックス情報に対応づけられた、前記検索文字列を構成する前記第1の文字に連続する第2の文字に対応するビットマップデータとをAND演算し、
    AND演算した結果を示す、連続する前記第1の文字と前記第2の文字における出現順序に対応づけて生成された前記検索ビットマップデータに前記連続する前記第1の文字と前記第2の文字の出現位置が設定されていれば、前記検索ビットマップデータを左シフトし、左シフトした結果を示す前記検索ビットマップデータと、前記検索文字列を構成する前記第2の文字に連続する第3の文字に対応するビットマップデータとをAND演算することにより、前記検索文字列を検索する
    処理を特徴とする請求項1から請求項3のいずれか1つに記載のデータ検索プログラム。
  5. 対象テキストデータを受け付ける第1の受付部と、
    前記対象テキストデータに出現する文字または単語それぞれの位置に対応付けた、文字または単語ごとのビットマップデータをハッシュ化し、ハッシュ化した複数のビットマップデータを示すインデックス情報を生成するとともに、前記対象テキストデータを前記文字の単位または前記単語の単位で符号化する生成部と、
    符号化された前記対象テキストデータに対する検索文字列を受け付ける第2の受付部と、
    前記生成部によって生成されたインデックス情報と、前記第2の受付部によって受け付けられた検索文字列を構成する各文字または各単語の前記検索文字列における出現順序に対応づけて生成される検索ビットマップデータとの論理演算により、前記検索文字列を検索する検索部と、
    を有することを特徴とするデータ検索装置。
  6. コンピュータが、
    対象テキストデータを受け付け、
    前記対象テキストデータに出現する文字または単語それぞれの位置に対応付けた、文字または単語ごとのビットマップデータをハッシュ化し、ハッシュ化した複数のビットマップデータを示すインデックス情報を生成するとともに、前記対象テキストデータを前記文字の単位または前記単語の単位で符号化し、
    符号化された前記対象テキストデータに対する検索文字列を受け付け、
    前記インデックス情報と、前記検索文字列を構成する各文字または各単語の前記検索文字列における出現順序に対応づけて生成される検索ビットマップデータとの論理演算により、前記検索文字列を検索する
    各処理を実行するデータ検索方法。
JP2016207216A 2016-10-21 2016-10-21 データ検索プログラム、データ検索装置およびデータ検索方法 Active JP6805720B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016207216A JP6805720B2 (ja) 2016-10-21 2016-10-21 データ検索プログラム、データ検索装置およびデータ検索方法
US15/680,247 US10922343B2 (en) 2016-10-21 2017-08-18 Data search device, data search method, and recording medium
EP17188113.9A EP3312740B1 (en) 2016-10-21 2017-08-28 Data search program, data search device, and data search method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016207216A JP6805720B2 (ja) 2016-10-21 2016-10-21 データ検索プログラム、データ検索装置およびデータ検索方法

Publications (2)

Publication Number Publication Date
JP2018067264A JP2018067264A (ja) 2018-04-26
JP6805720B2 true JP6805720B2 (ja) 2020-12-23

Family

ID=59738208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016207216A Active JP6805720B2 (ja) 2016-10-21 2016-10-21 データ検索プログラム、データ検索装置およびデータ検索方法

Country Status (3)

Country Link
US (1) US10922343B2 (ja)
EP (1) EP3312740B1 (ja)
JP (1) JP6805720B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6805720B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 データ検索プログラム、データ検索装置およびデータ検索方法
JP7059516B2 (ja) * 2017-03-29 2022-04-26 富士通株式会社 符号化プログラム、符号化装置および符号化方法
CN111899311B (zh) * 2019-05-06 2023-09-26 广州腾讯科技有限公司 元素渲染方法、装置、存储介质和计算机设备

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748953A (en) * 1989-06-14 1998-05-05 Hitachi, Ltd. Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols
JPH05324730A (ja) * 1992-05-27 1993-12-07 Hitachi Ltd 文書情報検索装置
US5329598A (en) * 1992-07-10 1994-07-12 The United States Of America As Represented By The Secretary Of Commerce Method and apparatus for analyzing character strings
JP3563823B2 (ja) * 1994-06-02 2004-09-08 株式会社リコー 文書管理装置
US5745745A (en) * 1994-06-29 1998-04-28 Hitachi, Ltd. Text search method and apparatus for structured documents
JP2693914B2 (ja) * 1994-08-30 1997-12-24 北海道日本電気ソフトウェア株式会社 検索システム
JPH08314966A (ja) * 1995-05-19 1996-11-29 Toshiba Corp 文書検索装置のインデックス作成方法及び文書検索装置
JPH0936747A (ja) 1995-07-18 1997-02-07 Toshiba Corp データ圧縮方法及びデータ圧縮装置
JPH10283368A (ja) * 1997-04-10 1998-10-23 Canon Inc 情報処理装置及びその方法
JPH1185459A (ja) 1997-09-01 1999-03-30 Denso Corp 文字データ符号化方法および記録媒体
US7016910B2 (en) * 1999-12-30 2006-03-21 Decode Genetics Ehf. Indexing, rewriting and efficient querying of relations referencing semistructured data
JP3918531B2 (ja) * 2001-11-29 2007-05-23 株式会社日立製作所 類似文書検索方法およびシステム
US20050086234A1 (en) 2003-10-15 2005-04-21 Sierra Wireless, Inc., A Canadian Corporation Incremental search of keyword strings
US7698325B1 (en) * 2005-09-30 2010-04-13 Emc Corporation Index processing for legacy systems
CN101354704B (zh) 2007-07-23 2011-01-12 夏普株式会社 字形特征字典制作装置及具备该装置的文档图像处理装置
CN101354703B (zh) 2007-07-23 2010-11-17 夏普株式会社 文档图像处理装置和文档图像处理方法
US20090028777A1 (en) 2007-07-27 2009-01-29 Aruna Zhamu Environmentally benign chemical oxidation method of producing graphite intercalation compound, exfoliated graphite, and nano-scaled graphene platelets
JP2009048352A (ja) 2007-08-17 2009-03-05 Nippon Telegr & Teleph Corp <Ntt> 情報検索装置、情報検索方法および情報検索プログラム
WO2009066501A1 (ja) * 2007-11-19 2009-05-28 Nippon Telegraph And Telephone Corporation 情報検索方法及び装置及びプログラム及びコンピュータ読取可能な記録媒体
US9218380B2 (en) * 2009-12-30 2015-12-22 Telecom Italia S.P.A. Method and system for carrying out searches in a database comprising taxonomic classification of digital information contents
IL224525A (en) 2013-01-31 2017-01-31 Verint Systems Ltd A system and method for finding keywords in a communication mix with bitmaps
JP6447161B2 (ja) 2015-01-20 2019-01-09 富士通株式会社 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法
IN2015DE01753A (ja) * 2015-06-11 2015-08-28 Pradeep Varma
JP6551131B2 (ja) 2015-10-09 2019-07-31 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
JP6662169B2 (ja) 2016-04-18 2020-03-11 富士通株式会社 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置
JP6720664B2 (ja) 2016-04-18 2020-07-08 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
JP6648620B2 (ja) 2016-04-19 2020-02-14 富士通株式会社 符号化プログラム、符号化装置および符号化方法
JP6740845B2 (ja) 2016-10-07 2020-08-19 富士通株式会社 文書符号化プログラム、情報処理装置および文書符号化方法
JP6805720B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 データ検索プログラム、データ検索装置およびデータ検索方法
JP7003427B2 (ja) 2017-03-24 2022-01-20 富士通株式会社 検索プログラム、情報処理装置および検索方法
JP7059516B2 (ja) 2017-03-29 2022-04-26 富士通株式会社 符号化プログラム、符号化装置および符号化方法

Also Published As

Publication number Publication date
EP3312740B1 (en) 2019-12-18
US20180113932A1 (en) 2018-04-26
EP3312740A1 (en) 2018-04-25
US10922343B2 (en) 2021-02-16
JP2018067264A (ja) 2018-04-26

Similar Documents

Publication Publication Date Title
CN107305586B (zh) 索引生成方法、索引生成装置及搜索方法
US10360183B2 (en) Encoding device, encoding method, decoding device, decoding method, and computer-readable recording medium
US9425821B2 (en) Converting device and converting method
JP6686639B2 (ja) 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
JP6805720B2 (ja) データ検索プログラム、データ検索装置およびデータ検索方法
US10120843B2 (en) Generation of parsable data for deep parsing
US11055328B2 (en) Non-transitory computer readable medium, encode device, and encode method
EP3306823B1 (en) Encoding program, encoding apparatus and encoding method
US10997139B2 (en) Search apparatus and search method
US20190205297A1 (en) Index generating apparatus, index generating method, and computer-readable recording medium
US11323132B2 (en) Encoding method and encoding apparatus
US10942934B2 (en) Non-transitory computer-readable recording medium, encoded data searching method, and encoded data searching apparatus
JP4682627B2 (ja) 文書検索装置および方法
JP6805927B2 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
US20210357438A1 (en) Computer-readable recording medium, index creation device, index creation method, computer-readable recording medium, search device, and search method
US20160210304A1 (en) Computer-readable recording medium, information processing apparatus, and conversion process method
JP7396190B2 (ja) 抽出プログラム、抽出方法及び抽出装置
CN114968265A (zh) 反混淆安卓应用源码的方法、设备和计算机可读存储介质
US20190220502A1 (en) Validation device, validation method, and computer-readable recording medium
JP4061283B2 (ja) 字句をデータに変換する装置、方法及びプログラム
JP2005275880A (ja) 字句をデータに変換する装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201022

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: 20201104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201117

R150 Certificate of patent or registration of utility model

Ref document number: 6805720

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150