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

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

Info

Publication number
JP2018165875A
JP2018165875A JP2017062519A JP2017062519A JP2018165875A JP 2018165875 A JP2018165875 A JP 2018165875A JP 2017062519 A JP2017062519 A JP 2017062519A JP 2017062519 A JP2017062519 A JP 2017062519A JP 2018165875 A JP2018165875 A JP 2018165875A
Authority
JP
Japan
Prior art keywords
morpheme
information
search
logical value
indicating
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.)
Granted
Application number
JP2017062519A
Other languages
English (en)
Other versions
JP6805927B2 (ja
Inventor
清司 大倉
Seiji Okura
清司 大倉
片岡 正弘
Masahiro Kataoka
正弘 片岡
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 JP2017062519A priority Critical patent/JP6805927B2/ja
Priority to PCT/JP2018/001971 priority patent/WO2018179729A1/ja
Publication of JP2018165875A publication Critical patent/JP2018165875A/ja
Priority to US16/563,932 priority patent/US11487817B2/en
Application granted granted Critical
Publication of JP6805927B2 publication Critical patent/JP6805927B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; 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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供する。【解決手段】コンピュータは、文書情報から複数の形態素を抽出する(ステップ201)。そして、コンピュータは、複数の形態素それぞれについて第1論理値及び第2論理値を有する、インデックス情報を生成する(ステップ202)。第1論理値は、形態素を示す形態素情報と、文書情報内におけるその形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。第2論理値は、形態素の意味属性を示す属性情報と、その形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。【選択図】図2

Description

本発明は、インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法に関する。
近年、テキストデータの量が爆発的に増大しており、テキスト検索の重要性が増している。特に、秘書機能アプリケーションソフトウェア等のための意味処理の研究が盛んになってきており、検索文字列と類似する意味を持つ文または文書の検索がますます重要になってきている。
テキスト検索で用いられる自然文の解析には、字句解析、形態素解析、意味解析等が利用されている。字句解析は、文字列を単語に分割する処理であり、形態素解析は、文字列を形態素に分割し、各形態素に対して品詞、属性等の情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。
意味解析は、自然文の形態素解析結果を用いて、その自然文の意味構造を求める処理である。意味解析結果である意味構造を用いることで、自然文が何を意味するかを、コンピュータが扱うデータとして表現することができる。
意味構造は、形態素解析結果に含まれる複数の単語の意味をそれぞれ表す複数の意味記号と、2つの意味記号の間の接続関係を表す情報とを含む。1つの意味記号が複数の単語に対応する場合もある。意味構造は、例えば、複数の意味記号を表す複数のノードと、2つのノード間の接続関係を表すアークとからなる有向グラフにより表すことができる。意味構造の最小の部分構造は、意味最小単位と呼ばれ、2つのノードとそれらのノードの間のアークとからなる。
特開2004−206473号公報 特開2015−5027号公報 特開2016−134037号公報
検索文字列と類似する意味を持つ文または文書を検索する類似文書検索では、検索文字列の意味構造と検索対象文書の意味構造とを比較することが望ましい。しかし、検索対象文書の意味解析結果には、意味構造を表す大量の有向グラフが含まれているため、それらの有向グラフと検索文字列の意味構造を表す有向グラフとを比較するための処理時間が増加する。
テキスト検索を高速化するために、文書に含まれる単語の出現位置を登録したインデックスが用いられることもある。しかし、N個の単語を含む文書の意味構造をインデックスに登録する場合、N×Nのオーダーでインデックスのサイズが増加するため、意味構造そのものをインデックスに登録することは現実的ではない。
1つの側面において、本発明は、検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供することを目的とする。
1つの案では、インデックス生成プログラムは、以下の処理をコンピュータに実行させる。
(1)コンピュータは、文書情報から複数の形態素を抽出する。
(2)コンピュータは、複数の形態素それぞれについて第1論理値及び第2論理値を有する、インデックス情報を生成する。第1論理値は、形態素を示す形態素情報と、文書情報内におけるその形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。第2論理値は、形態素の意味属性を示す属性情報と、その形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。
1つの実施形態によれば、検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供することができる。
インデックス生成装置の機能的構成図である。 インデックス生成処理のフローチャートである。 データ検索装置の機能的構成図である。 データ検索処理のフローチャートである。 インデックス生成装置の具体例を示す機能的構成図である。 助詞を示す属性情報を含むインデックス情報を示す図である。 インデックス生成処理の第1の具体例を示すフローチャートである。 第1のビット列生成処理を示すフローチャートである。 データ検索装置の具体例を示す機能的構成図である。 データ検索処理の第1の具体例を示すフローチャートである。 OR演算を示す図である。 第1のAND演算を示す図である。 第2のAND演算を示す図である。 「ある」のビット列を示す図である。 第3のAND演算を示す図である。 検索文字列の意味構造を示す図である。 係り受け関係を示す属性情報を含むインデックス情報を示す図である。 インデックス生成処理の第2の具体例を示すフローチャートである。 第2のビット列生成処理を示すフローチャートである。 データ検索処理の第2の具体例を示すフローチャートである。 第4のAND演算を示す図である。 第5のAND演算を示す図である。 第6のAND演算を示す図である。 第7のAND演算を示す図である。 情報処理装置の構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、実施形態のインデックス生成装置の機能的構成例を示している。インデックス生成装置101は、抽出部111及び生成部112を含む。抽出部111及び生成部112は、インデックス生成処理を行ってインデックス情報を生成する。
図2は、図1のインデックス生成装置101が行うインデックス生成処理の例を示すフローチャートである。まず、抽出部111は、文書情報から複数の形態素を抽出する(ステップ201)。
次に、生成部112は、抽出された複数の形態素それぞれについて第1論理値及び第2論理値を有する、インデックス情報を生成する(ステップ202)。第1論理値は、形態素を示す形態素情報と、文書情報内におけるその形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。第2論理値は、形態素の意味属性を示す属性情報と、その形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。
図1のインデックス生成装置101によれば、検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供することができる。
図3は、実施形態のデータ検索装置の機能的構成例を示している。データ検索装置301は、記憶部311、受付部312、演算部313、及び出力部314を含む。記憶部311は、図1のインデックス生成装置101が生成したインデックス情報321を記憶し、受付部312、演算部313、及び出力部314は、インデックス情報321に基づくデータ検索処理を行う。
図4は、図3のデータ検索装置301が行うデータ検索処理の例を示すフローチャートである。まず、受付部312は、文書情報に対する検索文字列を受け付ける(ステップ401)。
次に、演算部313は、インデックス情報321を参照し、第3論理値及び第4論理値を用いて論理演算を行う(ステップ402)。第3論理値は、インデックス情報321において、検索文字列に含まれる検索形態素に対応付けられた論理値であり、第4論理値は、検索形態素の意味属性に対応付けられた論理値である。
次に、出力部314は、論理演算の結果に基づく検索文字列の検索結果を出力する(ステップ403)。
図3のデータ検索装置301によれば、検索文字列に含まれる形態素の意味を含めた検索処理を行うことができる。
図5は、図1のインデックス生成装置101の具体例を示している。図5のインデックス生成装置101は、抽出部111、生成部112、及び記憶部501を含む。記憶部501は、文書情報511を記憶する。文書情報511は、日本語、中国語、韓国語、英語、フランス語等の自然言語で記述された文書であってもよく、複数の文書を含んでいてもよい。
抽出部111は、文書情報511に対する形態素解析を行って、文書情報511の各文書に含まれる形態素を抽出し、抽出した形態素の出現位置を示す解析結果512を生成して、記憶部501に格納する。
解析結果512は、形態素の識別情報(形態素ID)と、その形態素の意味属性を示す属性情報と、文書情報511内におけるその形態素の出現位置を示す位置情報とを含む。形態素IDは、形態素を示す形態素情報の一例であり、文書情報511を圧縮する際に用いられる圧縮符号であってもよい。形態素の意味属性は、文書情報511内におけるその形態素と別の形態素との間の意味的関係を表す。
生成部112は、解析結果512を用いてインデックス情報321を生成し、記憶部501に格納する。
形態素の属性情報としては、例えば、次のような情報が用いられる。
(a)文書情報511内において第1の形態素の前または後に存在し、第1の形態素と第2の形態素との間の意味的関係を表す第3の形態素を示す形態素ID
(b)文書情報511の意味構造における第1の形態素と第2の形態素との間の係り受け関係を示す情報と、第1の形態素が係り元または係り先のいずれであるかを示す情報
文書情報511が日本語文書である場合、上記(a)の属性情報としては、例えば、解析結果512において、名詞の直後に続く助詞を示す形態素IDを用いることができる。助詞は、先行する名詞の意味的役割をある程度表しているため、助詞の情報を用いて意味的な絞込み検索を行うことが可能である。
ここで、以下の文書1〜文書3を含む文書情報511に対して、「ケーキが冷蔵庫にある。」という検索文字列を用いて類似文書検索を行う場合について説明する。

文書1:ケーキが冷蔵庫の外にある。
文書2:ケーキは冷蔵庫にある。
文書3:冷蔵庫のケーキにクリームが置いてある。

この場合、検索文字列は、「ケーキ」、「が」、「冷蔵庫」、「に」、及び「ある」の5つの形態素に分割される。「ケーキ」及び「冷蔵庫」は名詞であり、「が」及び「に」は助詞であり、「ある」は動詞である。
このうち、「ケーキ」、「冷蔵庫」、及び「ある」の3つの形態素を用いて、“「ケーキ」AND「冷蔵庫」AND「ある」”という検索キーを生成することができる。この検索キーは、文書が「ケーキ」、「冷蔵庫」、及び「ある」を含むことを示す。この検索キーを用いて文書情報511を検索すると、文書1〜文書3のすべてが検索結果に含まれる。しかし、文書1は、ケーキが冷蔵庫にはないことを意味するため、検索結果として適切ではない。
そこで、名詞だけでなく、名詞の直後に続く助詞も検索キーに含めることで、検索結果を絞り込むことを考える。検索文字列において、「ケーキ」に続く助詞は「が」であり、「冷蔵庫」に続く助詞は「に」である。この場合、次のような検索キーを生成することができる。

検索キー:「ケーキ」AND「冷蔵庫」AND「ある」AND「ケーキの助詞=(がorはorも)」AND「冷蔵庫の助詞=(に)」

「ケーキの助詞=(がorはorも)」は、文書内の「ケーキ」に続く助詞が「が」、「は」、または「も」のいずれかであることを示す。また、「冷蔵庫の助詞=(に)」は、文書内の「冷蔵庫」に続く助詞が「に」であることを示す。この検索キーを用いて文書情報511を検索すると、文書2のみが検索結果に含まれ、文書1及び文書3は検索結果から除外される。
このように、名詞の直後に続く助詞の情報を検索キーに付加して文書情報511を検索することで、検索結果を適切に絞り込むことができる。
図6は、助詞を示す属性情報を含むインデックス情報321の例を示している。図6のインデックス情報321は、文書1〜文書3を含む複数の文書の文書情報511から生成される。形態素/属性情報は、複数の文書に含まれる、助詞以外の形態素の形態素IDと助詞の形態素IDとを表す。例えば、「ケーキ」、「冷蔵庫」、「外」、「ある」、「クリーム」、及び「置いて」は、助詞以外の形態素であり、「が」、「の」、「に」、「は」、及び「も」は、助詞である。助詞の形態素IDは、属性情報の一例である。
オフセットは、文書情報511内における各形態素の出現位置を表す。この例では、オフセットは、文書を示す文書IDと、文書内における形態素の出現位置を示す番号とを含む。例えば、文書1内の出現位置は、“0”〜“3”の4個の番号によって表され、文書2内の出現位置は、“0”〜“2”の3個の番号によって表され、文書3内の出現位置は、“0”〜“4”の5個の番号によって表される。
名詞の直後に続く助詞が存在する場合、それらの2つの形態素は同じ位置に出現するものとして扱われ、2つの形態素の文書内における位置は、同じ番号によって表される。例えば、文書1の場合、「ケーキ」及び「が」の出現位置は、番号“0”によって表され、「冷蔵庫」及び「の」の出現位置は、番号“1”によって表され、「外」及び「に」の出現位置は、番号“2”によって表される。「ある」の出現位置は、番号“3”によって表される。
図6のインデックス情報321は、助詞以外の形態素に対応するビット列と、助詞に対応するビット列とを含む。助詞以外の形態素に対応するビット列の論理値(ビット値)“1”は、その形態素が存在することを示し、論理値“0”は、その形態素が存在しないことを示す。
例えば、「ケーキ」に対応するビット列において、文書1の番号“0”の位置に格納された論理値“1”は、文書1内の番号“0”の位置に「ケーキ」が出現することを示している。また、「冷蔵庫」に対応するビット列において、文書1の番号“1”の位置に格納された論理値“1”は、文書1内の番号“1”の位置に「冷蔵庫」が出現することを示している。
一方、助詞に対応するビット列の論理値“1”は、名詞とそれに続く助詞との組み合わせが存在することを示し、論理値“0”は、その組み合わせが存在しないことを示す。
例えば、「が」に対応するビット列において、文書1の番号“0”の位置に格納された論理値“1”は、文書1内の番号“0”の位置に、名詞と「が」の組み合わせが出現することを示している。また、「の」に対応するビット列において、文書1の番号“1”の位置に格納された論理値“1”は、文書1内の番号“1”の位置に、名詞と「の」の組み合わせが出現することを示している。
図7は、図5のインデックス生成装置101が行うインデックス生成処理の第1の具体例を示すフローチャートである。まず、抽出部111は、文書情報511に対する形態素解析を行って、文書情報511から形態素を抽出し、解析結果512を生成する(ステップ701)。
次に、生成部112は、解析結果512に基づいて、助詞以外の各形態素に対応するビット列を生成する(ステップ702)。このとき、生成部112は、各形態素に対応するビット列において、その形態素の出現位置に対応する1つ以上の位置に論理値“1”を書き込み、それ以外の位置に論理値“0”を書き込む。
次に、生成部112は、解析結果512に基づいて、各助詞に対応するビット列を生成する(ステップ703)。このとき、生成部112は、各助詞に対応するビット列において、その助詞の出現位置に対応する1つ以上の位置に論理値“1”を書き込み、それ以外の位置に論理値“0”を書き込む。
図8は、図7のステップ703における第1のビット列生成処理の例を示すフローチャートである。まず、生成部112は、解析結果512に含まれる複数の形態素IDの中から1つの形態素IDを選択し(ステップ801)、その形態素IDが示す形態素が名詞であるか否かをチェックする(ステップ802)。
形態素IDが示す形態素が名詞である場合(ステップ802,YES)、生成部112は、その名詞に続く助詞を特定し(ステップ803)、特定した助詞に対応するビット列がインデックス情報321に存在するか否かをチェックする(ステップ804)。
助詞に対応するビット列が存在する場合(ステップ804,YES)、生成部112は、そのビット列において、助詞の出現位置に対応する位置に論理値“1”を書き込む(ステップ805)。一方、助詞に対応するビット列が存在しない場合(ステップ804,NO)、生成部112は、その助詞に対応するビット列を生成する(ステップ807)。
次に、生成部112は、解析結果512に含まれるすべての形態素IDを選択したか否かをチェックする(ステップ806)。未選択の形態素IDが残っている場合(ステップ806,NO)、生成部112は、ステップ801以降の処理を繰り返す。これにより、複数の助詞それぞれに対応するビット列が生成される。
形態素IDが示す形態素が名詞ではない場合(ステップ802,NO)、生成部112は、ステップ806以降の処理を行う。そして、すべての形態素IDを選択した場合(ステップ806,YES)、生成部112は、処理を終了する。
図7のインデックス生成処理によれば、各形態素に対応するビット列において、形態素の出現位置に対応する位置に論理値“1”を書き込むだけで、インデックス情報321が生成される。
また、N個の形態素を含む文書のインデックス情報321を生成する場合、インデックス情報321のサイズはNのオーダーになる。このため、文書の意味構造を表すN×Nのオーダーのインデックスと比較して、インデックス情報321の格納領域を削減することができる。
図9は、図3のデータ検索装置301の具体例を示している。図9のデータ検索装置301は、記憶部311、受付部312、演算部313、出力部314、及び抽出部901を含む。記憶部311は、文書情報511から生成されたインデックス情報321を記憶する。
受付部312は、文書情報511に対する検索文字列911を、ユーザまたは外部の装置から受け付けて、記憶部311に格納する。抽出部901は、検索文字列911に対する形態素解析を行って、検索文字列911に含まれる検索形態素を抽出し、抽出した検索形態素を示す解析結果912を生成して、記憶部311に格納する。解析結果912は、検索形態素を示す形態素IDと、その検索形態素の意味属性を示す属性情報とを含む。
演算部313は、解析結果912を用いて、インデックス情報321に含まれる複数のビット列の間の論理演算を行う。そして、演算部313は、論理演算の結果に基づいて、検索文字列911の検索結果913を生成し、記憶部311に格納する。出力部314は、検索結果913を出力する。検索結果913は、文書情報511内における検索文字列911または検索形態素の出現位置を示す情報を含む。
図10は、図9のデータ検索装置301が行うデータ検索処理の第1の具体例を示すフローチャートである。まず、受付部312は、検索文字列911を受け付け(ステップ1001)、抽出部901は、検索文字列911に対する形態素解析を行って、解析結果912を生成する(ステップ1002)。
例えば、「ケーキが冷蔵庫にある。」という文が検索文字列911としてデータ検索装置301に入力された場合、助詞以外の形態素である「ケーキ」、「冷蔵庫」、及び「ある」が検索形態素として抽出される。そして、それぞれの検索形態素を示す形態素IDを含む解析結果912が生成される。この場合、解析結果912は、「ケーキ」の属性情報として、「ケーキ」に続く助詞である「が」を示す形態素IDを含み、「冷蔵庫」の属性情報として、「冷蔵庫」に続く助詞である「に」を示す形態素IDを含む。
さらに、検索文字列911は、名詞に続く助詞のバリエーションを指定する情報を含むこともある。例えば、「が」、「は」、及び「も」の3つの助詞を、「ケーキ」の同じ意味属性として扱う場合、検索文字列911に含まれる「が」のバリエーションとして、「は」及び「も」が指定される。この場合、解析結果912は、「は」及び「も」を示す形態素IDを、「ケーキ」の属性情報のバリエーションとして含む。
次に、演算部313は、解析結果912に含まれる複数の形態素IDの中から1つの形態素IDを選択し(ステップ1003)、その形態素IDが示す検索形態素の属性情報が存在するか否かをチェックする(ステップ1004)。
属性情報が存在する場合(ステップ1004,YES)、演算部313は、その属性情報のバリエーションが存在するか否かをチェックする(ステップ1005)。属性情報のバリエーションが存在しない場合(ステップ1005,NO)、演算部313は、検索形態素に対応するビット列と属性情報に対応するビット列とのAND演算を行って、検索形態素の出現位置を絞り込む(ステップ1006)。このとき、演算部313は、それぞれのビット列の同じ位置に格納された2つの論理値の論理積を求め、求めた論理積を別のビット列の同じ位置に書き込むことで、演算結果を示すビット列を生成する。
演算結果を示すビット列において、論理値“1”は、検索文字列911における検索形態素が、文書情報511内に存在することを示している。また、論理値“1”が格納された位置は、文書情報511内におけるその検索形態素の出現位置を示している。
一方、属性情報のバリエーションが存在する場合(ステップ1005,YES)、演算部313は、複数の属性情報それぞれに対応するビット列のOR演算を行って、検索形態素の検索範囲を拡張する(ステップ1011)。このとき、演算部313は、それぞれのビット列の同じ位置に格納された2つの論理値の論理和を求め、求めた論理和を別のビット列の同じ位置に書き込むことで、演算結果を示すビット列を生成する。そして、演算部313は、演算結果を示すビット列を属性情報に対応するビット列として用いて、ステップ1006の処理を行う。
図11は、「ケーキ」の属性情報に対応するビット列のOR演算の例を示している。この例は、解析結果912に含まれる「ケーキ」の属性情報が、「ケーキ」に続く助詞である「が」を示しており、「が」のバリエーションとして「は」及び「も」が含まれている場合に対応する。この場合、図6のインデックス情報321に含まれる「が」、「は」、及び「も」の3つのビット列のOR演算が行われ、「がorはorも」のビット列1101が生成される。
図12は、「ケーキ」のビット列と、「ケーキ」の属性情報のビット列との第1のAND演算の例を示している。図6のインデックス情報321に含まれる「ケーキ」のビット列1201と、図11のビット列1101とのAND演算が行われ、AND演算結果のビット列1202が生成される。
ビット列1202において、文書1の番号“0”の位置に格納された論理値“1”は、文書1内の番号“0”の位置に、「ケーキ」とそれに続く「が」、「は」、または「も」との組み合わせが出現することを示している。また、文書2の番号“0”の位置に格納された論理値“1”は、文書2内の番号“0”の位置に、「ケーキ」とそれに続く「が」、「は」、または「も」との組み合わせが出現することを示している。
図13は、「冷蔵庫」のビット列と、「冷蔵庫」の属性情報のビット列との第2のAND演算の例を示している。図6のインデックス情報321に含まれる「冷蔵庫」のビット列1301と、「冷蔵庫」の属性情報である「に」のビット列1302とのAND演算が行われ、AND演算結果のビット列1303が生成される。
ビット列1303において、文書2の番号“1”の位置に格納された論理値“1”は、文書2内の番号“1”の位置に、「冷蔵庫」と、それに続く「に」との組み合わせが出現することを示している。
次に、演算部313は、AND演算結果のビット列を用いて、各検索形態素が出現する文書を示すビット列を生成する(ステップ1007)。例えば、演算部313は、文書情報511に含まれる文書の総数をビット長とするビット列を用意し、AND演算結果のビット列の論理値“1”に対応する文書の位置に論理値“1”を書き込むことで、その検索形態素が出現する文書を示すビット列を生成する。
属性情報が存在しない場合(ステップ1004,NO)、演算部313は、AND演算結果のビット列の代わりに、検索形態素に対応するビット列を用いて、ステップ1007の処理を行う。
図14は、「ある」のビット列の例を示している。「ある」のビット列1401は、図6のインデックス情報321に含まれる「ある」のビット列と同一である。「ある」の属性情報は存在しないため、ビット列1401そのものを用いて、「ある」が出現する文書を示すビット列が生成される。
次に、演算部313は、解析結果912に含まれるすべての形態素IDを選択したか否かをチェックする(ステップ1008)。未選択の形態素IDが残っている場合(ステップ1008,NO)、演算部313は、ステップ1003以降の処理を繰り返す。これにより、検索文字列911に含まれるそれぞれの検索形態素が、対応する属性情報を伴って出現する文書を示すビット列が生成される。
次に、演算部313は、それぞれの検索形態素が出現する文書を示すビット列のAND演算を行って、すべての検索形態素が出現する文書を示すビット列を生成する(ステップ1009)。
図15は、検索形態素が出現する文書を示すビット列の第3のAND演算の例を示している。図12のAND演算結果のビット列1202から、「ケーキ」が出現する文書を示すビット列1501が生成され、図13のAND演算結果のビット列1303から、「冷蔵庫」が出現する文書を示すビット列1502が生成される。また、図14の「ある」のビット列1401から、「ある」が出現する文書を示すビット列1503が生成される。
そして、ビット列1501〜ビット列1503のAND演算によって、AND演算結果のビット列1504が生成される。ビット列1504の文書2の位置に格納された論理値“1”は、検索文字列911に含まれる「ケーキ」、「冷蔵庫」、及び「ある」が文書2に出現し、「ケーキ」及び「冷蔵庫」は、それぞれに対応する属性情報を伴っていることを示している。
次に、演算部313は、ステップ1009で生成したビット列に基づいて、検索結果913を生成し、出力部314は、検索結果913を出力する(ステップ1010)。検索結果913は、検索文字列911に含まれるすべての検索形態素が、対応する属性情報を伴って出現する文書を示している。したがって、検索結果913に含まれる文書は、検索文字列911と類似する意味を持つ文を含んでいる可能性が高い。
図10のデータ検索処理によれば、インデックス情報321に含まれる複数のビット列の間の論理演算によって、検索文字列911に含まれる検索形態素とその属性情報とを一括して検索することができる。これにより、意味解析を行わなくても、検索文字列911の意味をある程度反映した検索処理が実現される。
また、文書情報511と検索文字列911との照合を行う必要がなく、インデックス情報321に対する論理演算のみで検索結果913が得られるため、データ検索処理が高速化される。
文書情報511が英語、フランス語等の文書である場合、上記(a)の属性情報として、前置詞を示す形態素IDを用いてもよい。前置詞は、後続する名詞の意味的役割をある程度表しているため、前置詞の情報を用いて意味的な絞込み検索を行うことが可能である。
次に、前述した(b)の属性情報を用いたインデックス生成処理及びデータ検索処理について説明する。(b)の属性情報としては、例えば、文書情報511に対する意味解析によって得られる意味構造において、2つの形態素それぞれに対応する2つのノードの間のアークが表す係り受け関係を用いることができる。形態素間の係り受け関係を用いることで、意味的な絞込み検索を行うことが可能である。
例えば、複数の文書を含む文書情報511に対して、「彼はケーキが好きだ。」という検索文字列を用いて類似文書検索を行う場合、検索文字列は、「彼」、「は」、「ケーキ」、「が」、「好き」、及び「だ」の6つの形態素に分割される。この場合、助詞「が」の直前に存在する名詞「ケーキ」が、「好き」の対象物である。また、助詞「は」の直前に存在する代名詞「彼」が、「好き」の動作主である。そこで、これらの係り受け関係に基づいて検索キーを生成することを考える。
図16は、「彼はケーキが好きだ。」という検索文字列の意味構造の例を示している。図16の意味構造は、「彼」、「ケーキ」、及び「好き」それぞれに対応する3つのノードを含む。
このうち、「好き」と「ケーキ」の間のアークは、対象物(OBJ)という係り受け関係を表し、「好き」が係り元であり、「ケーキ」が係り先であることを示している。また、「好き」と「彼」の間のアークは、動作主(AGENT)という係り受け関係を表し、「好き」が係り元であり、「彼」が係り先であることを示している。そこで、図16の意味構造から、次のような検索条件Aを生成することができる。

検索条件A
検索形態素:「彼」,「ケーキ」,「好き」
意味情報:「ケーキ」は“OBJ”の係り先,
「好き」は“OBJ”の係り元,
「彼」は“AGENT”の係り先,
「好き」は“AGENT”の係り元
検索条件Aを満たす文は、図16の意味構造を有する文である可能性が非常に高い。したがって、図16の意味構造の代わりに、検索条件Aを検索キーとして用いることができる。検索条件Aからは、次のような検索キーが生成される。

検索キー:「彼」AND「ケーキ」AND「好き」AND「ケーキの属性=(OBJの係り先)」AND「好きの属性=(OBJの係り元)」AND「彼の属性=(AGENTの係り先)」AND「好きの属性=(AGENTの係り元)」

このように、形態素間の係り受け関係の情報を検索キーに付加して文書情報511を検索することで、検索結果を適切に絞り込むことができる。
図17は、係り受け関係を示す属性情報を含むインデックス情報321の例を示している。図17のインデックス情報321は、図16と同じ意味構造を有する文を含む文書の文書情報511から生成される。形態素/属性情報は、文書に含まれる形態素の形態素IDと、その形態素の属性情報とを表す。例えば、「彼」、「好き」、及び「ケーキ」は、形態素であり、「OBJ係り元」、「OBJ係り先」、「AGENT係り元」、及び「AGENT係り先」は、属性情報である。
「OBJ係り元」は、“OBJ”という係り受け関係の係り元であることを表し、「OBJ係り先」は、その係り受け関係の係り先であることを表す。「AGENT係り元」は、“AGENT”という係り受け関係の係り元であることを表し、「AGENT係り先」は、その係り受け関係の係り先であることを表す。
オフセットは、文書情報511内における各形態素の出現位置を表す。この例では、オフセットとして、文書内における形態素の出現位置を示す番号が用いられている。
図17のインデックス情報321は、形態素に対応するビット列と、属性情報に対応するビット列とを含む。形態素に対応するビット列の論理値“1”は、その形態素が存在することを示し、論理値“0”は、その形態素が存在しないことを示す。一方、属性情報に対応するビット列の論理値“1”は、その属性情報を有する形態素が存在することを示し、論理値“0”は、その属性情報を有する形態素が存在しないことを示す。
例えば、「OBJ係り元」に対応するビット列において、番号“1”の位置に格納された論理値“1”は、文書内の番号“1”の位置に、「OBJ係り元」である形態素が出現することを示している。「OBJ係り先」に対応するビット列において、番号“2”の位置に格納された論理値“1”は、文書内の番号“2”の位置に、「OBJ係り先」である形態素が出現することを示している。
図18は、図5のインデックス生成装置101が行うインデックス生成処理の第2の具体例を示すフローチャートである。このインデックス生成処理では、係り受け関係を示す属性情報を含むインデックス情報321が生成される。
まず、抽出部111は、文書情報511に対する形態素解析を行って、文書情報511から形態素を抽出し(ステップ1801)、文書情報511に対する意味解析(係り受け解析)を行って、文書情報511の意味構造を求める(ステップ1802)。そして、抽出部111は、抽出した形態素を示す形態素IDと意味構造とを含む解析結果512を生成する。
次に、生成部112は、図7のステップ702と同様に、解析結果512に基づいて、各形態素に対応するビット列を生成する(ステップ1803)。次に、生成部112は、解析結果512に基づいて、各属性情報に対応するビット列を生成する(ステップ1804)。このとき、生成部112は、各属性情報に対応するビット列において、その属性情報を有する形態素の出現位置に対応する、1つ以上の位置に論理値“1”を書き込み、それ以外の位置に論理値“0”を書き込む。
図19は、図18のステップ1804における第2のビット列生成処理の例を示すフローチャートである。まず、生成部112は、解析結果512の意味構造に含まれる複数の意味最小単位の中から1つの意味最小単位を選択する(ステップ1901)。
次に、生成部112は、その意味最小単位のアークが表す係り受け関係を抽出し、係り受け関係と係り元の組み合わせを1つの属性情報に決定し、係り受け関係と係り先の組み合わせをもう1つの属性情報に決定する。そして、生成部112は、それらの2つの属性情報に対応するビット列が、インデックス情報321に存在するか否かをチェックする(ステップ1902)。
2つの属性情報に対応するビット列が存在する場合(ステップ1902,YES)、生成部112は、各ビット列において、その属性情報を有する形態素の出現位置に対応する位置に論理値“1”を書き込む(ステップ1903)。一方、2つの属性情報に対応するビット列が存在しない場合(ステップ1902,NO)、生成部112は、それらの属性情報に対応するビット列を生成する(ステップ1905)。
次に、生成部112は、意味構造に含まれるすべての意味最小単位を選択したか否かをチェックする(ステップ1904)。未選択の意味最小単位が残っている場合(ステップ1904,NO)、生成部112は、ステップ1901以降の処理を繰り返す。これにより、複数の属性情報それぞれに対応するビット列が生成される。そして、すべての意味最小単位を選択した場合(ステップ1904,YES)、生成部112は、処理を終了する。
図18のインデックス生成処理によれば、各形態素に対応するビット列及び各属性情報に対応するビット列において、形態素の出現位置に対応する位置に論理値“1”を書き込むだけで、インデックス情報321が生成される。
また、N個の形態素を含む文書のインデックス情報321を生成する場合、インデックス情報321のサイズはNのオーダーになる。このため、文書の意味構造を表すN×Nのオーダーのインデックスと比較して、インデックス情報321の格納領域を削減することができる。
図20は、図9のデータ検索装置301が行うデータ検索処理の第2の具体例を示すフローチャートである。このデータ検索処理では、係り受け関係を示す属性情報を含むインデックス情報321を用いて、文書情報511から検索文字列が検索される。
まず、受付部312は、検索文字列911を受け付け(ステップ2001)、抽出部901は、検索文字列911に対する形態素解析を行って、検索文字列911から検索形態素を抽出し(ステップ2002)、検索文字列911に対する意味解析を行って、検索文字列911の意味構造を求める(ステップ2003)。そして、抽出部901は、抽出した検索形態素を示す形態素IDと意味構造とを含む解析結果912を生成する。
例えば、「彼はケーキが好きだ。」という文が検索文字列911としてデータ検索装置301に入力された場合、「彼」、「ケーキ」、及び「好き」が検索形態素として抽出される。そして、それぞれの検索形態素を示す形態素IDを含む解析結果912が生成される。この場合、解析結果912は、図16に示した意味構造を属性情報として含む。
次に、演算部313は、解析結果912に含まれる複数の形態素IDの中から1つの形態素IDを選択し(ステップ2004)、その形態素IDが示す検索形態素の属性情報が存在するか否かをチェックする(ステップ2005)。
属性情報が存在する場合(ステップ2005,YES)、演算部313は、検索形態素に対応するビット列と属性情報に対応するビット列とのAND演算を行って、検索形態素の出現位置を絞り込む(ステップ2006)。
図21は、「彼」のビット列と、「彼」の属性情報のビット列との第4のAND演算の例を示している。図17のインデックス情報321に含まれる「彼」のビット列2101と、「AGENT係り先」のビット列2102とのAND演算が行われ、AND演算結果のビット列2103が生成される。ビット列2103において、番号“0”の位置に格納された論理値“1”は、文書内の番号“0”の位置に、「AGENT係り先」である「彼」が出現することを示している。
次に、演算部313は、AND演算結果のビット列を用いて、各検索形態素が出現する文書を示すビット列を生成する(ステップ2007)。例えば、文書情報511が複数の文書を含んでいる場合、演算部313は、文書の総数をビット長とするビット列を用意し、AND演算結果のビット列の論理値“1”に対応する文書の位置に論理値“1”を書き込むことで、その検索形態素が出現する文書を示すビット列を生成する。
属性情報が存在しない場合(ステップ2005,NO)、演算部313は、AND演算結果のビット列の代わりに、検索形態素に対応するビット列を用いて、ステップ2007の処理を行う。
次に、演算部313は、解析結果912に含まれるすべての形態素IDを選択したか否かをチェックする(ステップ2008)。未選択の形態素IDが残っている場合(ステップ2008,NO)、演算部313は、ステップ2004以降の処理を繰り返す。これにより、検索文字列911に含まれるそれぞれの検索形態素が、対応する属性情報を伴って出現する文書を示すビット列が生成される。
図22は、「ケーキ」のビット列と、「ケーキ」の属性情報のビット列との第5のAND演算の例を示している。図17のインデックス情報321に含まれる「ケーキ」のビット列2201と、「OBJ係り先」のビット列2202とのAND演算が行われ、AND演算結果のビット列2203が生成される。ビット列2203において、番号“2”の位置に格納された論理値“1”は、文書内の番号“2”の位置に、「OBJ係り先」である「ケーキ」が出現することを示している。
図23は、「好き」のビット列と、「好き」の属性情報のビット列との第6のAND演算の例を示している。図17のインデックス情報321に含まれる「好き」のビット列2301と、「OBJ係り元」のビット列2302と、「AGENT係り元」のビット列2303とのAND演算が行われ、AND演算結果のビット列2304が生成される。ビット列2304において、番号“1”の位置に格納された論理値“1”は、文書内の番号“1”の位置に、「OBJ係り元」及び「AGENT係り元」である「好き」が出現することを示している。
次に、演算部313は、それぞれの検索形態素が出現する文書を示すビット列のAND演算を行って、すべての検索形態素が出現する文書を示すビット列を生成する(ステップ2009)。
図24は、検索形態素が出現する文書を示すビット列の第7のAND演算の例を示している。文書11〜文書13を含む複数の文書の文書情報511から、図17のインデックス情報321が生成された場合、各検索形態素が出現する文書を示すビット列において、それぞれの文書に対応する位置に論理値“1”または論理値“0”が格納される。図21〜図23に示したビット列は、文書11に含まれる形態素の情報を表している。
「彼」が出現する文書を示すビット列2401は、図21のAND演算結果のビット列2103に基づいて生成され、文書11の位置に論理値“1”が格納される。「ケーキ」が出現する文書を示すビット列2402は、図22のAND演算結果のビット列2203に基づいて生成され、文書11の位置に論理値“1”が格納される。
「好き」が出現する文書を示すビット列2403は、図23のAND演算結果のビット列2304に基づいて生成され、文書11の位置に論理値“1”が格納される。ビット列2403の文書13の位置にも、論理値“1”が格納されている。
そして、ビット列2401〜ビット列2403のAND演算によって、AND演算結果のビット列2404が生成される。ビット列2404の文書11の位置に格納された論理値“1”は、検索文字列911に含まれる「彼」、「ケーキ」、及び「好き」が、それぞれに対応する属性情報を伴って文書11に出現することを示している。
次に、演算部313は、ステップ2009で生成したビット列に基づいて、検索結果913を生成し、出力部314は、検索結果913を出力する(ステップ2010)。
図20のデータ検索処理によれば、図10のデータ検索処理と同様に、検索文字列911に含まれる検索形態素とその属性情報とを一括して検索することができる。これにより、意味構造同士を比較しなくても、検索文字列911の意味をある程度反映した検索処理が実現される。
また、文書情報511と検索文字列911との照合を行う必要がなく、インデックス情報321に対する論理演算のみで検索結果913が得られるため、データ検索処理が高速化される。
図17のインデックス情報321において、係り受け関係と係り元または係り先との組み合わせを属性情報として用いる代わりに、係り受け関係を示す情報のみを属性情報として用いてもよい。また、係り元または係り先を示す情報のみを属性情報として用いてもよい。
ところで、図10及び図20のデータ検索処理は高速であるが、文書情報511の意味構造と検索文字列911の意味構造とを直接比較していないため、検索文字列911の意味とは異なる文書が検索結果913に含まれることもある。そこで、得られた検索結果913が示す文書の意味構造と検索文字列911の意味構造とを比較する検証処理を行ってもよい。検証処理を行うことで、検索精度がさらに向上する。
図6または図17のインデックス情報321において、各ビット列の長さは、文書情報511に含まれる形態素の総数に比例して長くなるが、文書情報511内に出現する同じ形態素の個数は、形態素の総数よりもはるかに少ない。このため、各ビット列に含まれる論理値の多くは“0”であり、論理値“1”の個数は、論理値“0”の個数よりも少なくなる。
そこで、ビット列において各論理値が格納されているアドレスを適当な除数により除算することで、ビット列をハッシュ化することができる。ハッシュ化したビット列を格納するレジスタのビット数を超えない素数のうち最大の素数を除数として用いることで、ハッシュ化したビット列から元のビット列を復元することも可能である。このようなハッシュ化方法としては、例えば、先願である特願2016−083243号に記載された方法を用いることができる。
図1及び図5のインデックス生成装置101の構成は一例に過ぎず、インデックス生成装置101の用途または条件に応じて、一部の構成要素を省略または変更してもよい。
図3及び図9のデータ検索装置301の構成は一例に過ぎず、データ検索装置301の用途または条件に応じて、一部の構成要素を省略または変更してもよい。データ検索装置301に、抽出部111及び生成部112を追加して、データ検索装置301内でインデックス生成処理を行ってもよい。
図2、図4、図7、図8、図10、及び図18〜図20のフローチャートは一例に過ぎず、インデックス生成装置101またはデータ検索装置301の構成または条件に応じて一部の処理を省略または変更してもよい。
図6及び図17のインデックス情報、図11〜図15及び図21〜図24のビット列、及び図16の意味構造は一例に過ぎない。文書情報及び検索文字列は、インデックス生成装置101またはデータ検索装置301の用途に応じて変化し、インデックス情報、演算結果、意味構造は、文書情報及び検索文字列に応じて変化する。文書情報及び検索文字列の言語は、日本語以外の言語であってもよい。意味構造のアークが表す係り受け関係は、対象物及び動作主以外の関係であってもよい。
図25は、図1及び図5のインデックス生成装置101、または図3及び図9のデータ検索装置301として用いられる情報処理装置(コンピュータ)の構成例を示している。図25の情報処理装置は、CPU2501、メモリ2502、入力装置2503、出力装置2504、補助記憶装置2505、媒体駆動装置2506、及びネットワーク接続装置2507を備える。これらの構成要素はバス2508により互いに接続されている。
メモリ2502は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ2502は、図3及び図9の記憶部311、または図5の記憶部501として用いることができる。
情報処理装置がインデックス生成装置101である場合、CPU2501(プロセッサ)は、例えば、メモリ2502を利用してプログラムを実行することにより、図1及び図5の抽出部111及び生成部112として動作する。
情報処理装置がデータ検索装置301である場合、CPU2501は、例えば、メモリ2502を利用してプログラムを実行することにより、図3及び図9の受付部312、演算部313、及び図9の抽出部901として動作する。
入力装置2503は、例えば、キーボード、ポインティングデバイス等であり、オペレータまたはユーザからの指示及び情報の入力に用いられる。入力される情報は、検索文字列911であってもよい。
出力装置2504は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータまたはユーザへの問い合わせまたは指示、及び処理結果の出力に用いられる。出力装置2504は、図3及び図9の出力部314として用いることができる。処理結果は、検索結果913であってもよい。
補助記憶装置2505は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置2505は、ハードディスクドライブまたはフラッシュメモリであってもよい。情報処理装置は、補助記憶装置2505にプログラム及びデータを格納しておき、それらをメモリ2502にロードして使用することができる。補助記憶装置2505は、図3及び図9の記憶部311、または図5の記憶部501として用いることができる。
媒体駆動装置2506は、可搬型記録媒体2509を駆動し、その記録内容にアクセスする。可搬型記録媒体2509は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体2509は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータまたはユーザは、この可搬型記録媒体2509にプログラム及びデータを格納しておき、それらをメモリ2502にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ2502、補助記憶装置2505、または可搬型記録媒体2509のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置2507は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置2507を介して受け取り、それらをメモリ2502にロードして使用することができる。
情報処理装置がインデックス生成装置101である場合、ネットワーク接続装置2507は、インデックス情報321をデータ検索装置301へ送信することができる。
情報処理装置がデータ検索装置301である場合、ネットワーク接続装置2507は、ユーザ端末から検索文字列911を受信し、検索結果913をユーザ端末へ送信することができる。この場合、ネットワーク接続装置2507は、出力部314として用いられる。
なお、情報処理装置が図25のすべての構成要素を含む必要はなく、用途または条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から通信ネットワーク経由で検索文字列911を受信する場合は、入力装置2503及び出力装置2504を省略してもよい。また、可搬型記録媒体2509または通信ネットワークを利用しない場合は、媒体駆動装置2506またはネットワーク接続装置2507を省略してもよい。
情報処理装置がスマートフォンのような通話機能を有する携帯端末である場合、マイク及びスピーカのような通話用の装置を含んでいてもよく、カメラのような撮像装置を含んでいてもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図25を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
文書情報から複数の形態素を抽出し、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を生成する、
処理をコンピュータに実行させるためのインデックス生成プログラム。
(付記2)
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする付記1記載のインデックス生成プログラム。
(付記3)
前記属性情報は、前記文書情報内において前記形態素情報が示す前記形態素の前または後に存在し、前記意味的関係を表す形態素を示すことを特徴とする付記2記載のインデックス生成プログラム。
(付記4)
前記意味的関係を表す形態素は助詞であることを特徴とする付記3記載のインデックス生成プログラム。
(付記5)
前記属性情報は、前記文書情報の意味構造における前記形態素情報が示す前記形態素と前記別の形態素との間の係り受け関係を示す情報と、前記形態素情報が示す前記形態素が係り元または係り先のいずれであるかを示す情報とを含むことを特徴とする付記2記載のインデックス生成プログラム。
(付記6)
文書情報に対する検索文字列を受け付け、
前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第3論理値と、前記検索形態素の意味属性に対応付けられた第4論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
処理をコンピュータに実行させるためのデータ検索プログラム。
(付記7)
文書情報から複数の形態素を抽出する抽出部と、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を生成する生成部と、
備えることを特徴とするインデックス生成装置。
(付記8)
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする付記7記載のインデックス生成装置。
(付記9)
文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を記憶する記憶部と、
前記文書情報に対する検索文字列を受け付ける受付部と、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第3論理値と、前記検索形態素の意味属性に対応付けられた第4論理値とを用いて、論理演算を行う演算部と、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する出力部と、
備えることを特徴とするデータ検索装置。
(付記10)
コンピュータが、
文書情報から複数の形態素を抽出し、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を生成する、
ことを特徴とするインデックス生成方法。
(付記11)
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする付記10記載のインデックス生成方法。
(付記12)
コンピュータが、
文書情報に対する検索文字列を受け付け、
前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第3論理値と、前記検索形態素の意味属性に対応付けられた第4論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
ことを特徴とするデータ検索方法。
101 インデックス生成装置
111、901 抽出部
112 生成部
301 データ検索装置
311、501 記憶部
312 受付部
313 演算部
314 出力部
321 インデックス情報
511 文書情報
512、912 解析結果
911 検索文字列
913 検索結果
1101、1201、1202、1301〜1303、1401、1501〜1504、2101〜2103、2201〜2203、2301〜2304、2401〜2404 ビット列
2501 CPU
2502 メモリ
2503 入力装置
2504 出力装置
2505 補助記憶装置
2506 媒体駆動装置
2507 ネットワーク接続装置
2508 バス
2509 可搬型記録媒体

Claims (9)

  1. 文書情報から複数の形態素を抽出し、
    前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を生成する、
    処理をコンピュータに実行させるためのインデックス生成プログラム。
  2. 前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする請求項1記載のインデックス生成プログラム。
  3. 前記属性情報は、前記文書情報内において前記形態素情報が示す前記形態素の前または後に存在し、前記意味的関係を表す形態素を示すことを特徴とする請求項2記載のインデックス生成プログラム。
  4. 前記属性情報は、前記文書情報の意味構造における前記形態素情報が示す前記形態素と前記別の形態素との間の係り受け関係を示す情報と、前記形態素情報が示す前記形態素が係り元または係り先のいずれであるかを示す情報とを含むことを特徴とする請求項2記載のインデックス生成プログラム。
  5. 文書情報に対する検索文字列を受け付け、
    前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を参照し、
    前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第3論理値と、前記検索形態素の意味属性に対応付けられた第4論理値とを用いて、論理演算を行い、
    前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
    処理をコンピュータに実行させるためのデータ検索プログラム。
  6. 文書情報から複数の形態素を抽出する抽出部と、
    前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を生成する生成部と、
    備えることを特徴とするインデックス生成装置。
  7. 文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を記憶する記憶部と、
    前記文書情報に対する検索文字列を受け付ける受付部と、
    前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第3論理値と、前記検索形態素の意味属性に対応付けられた第4論理値とを用いて、論理演算を行う演算部と、
    前記論理演算の結果に基づく前記検索文字列の検索結果を出力する出力部と、
    備えることを特徴とするデータ検索装置。
  8. コンピュータが、
    文書情報から複数の形態素を抽出し、
    前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を生成する、
    ことを特徴とするインデックス生成方法。
  9. コンピュータが、
    文書情報に対する検索文字列を受け付け、
    前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第1論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第2論理値とを有する、インデックス情報を参照し、
    前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第3論理値と、前記検索形態素の意味属性に対応付けられた第4論理値とを用いて、論理演算を行い、
    前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
    ことを特徴とするデータ検索方法。
JP2017062519A 2017-03-28 2017-03-28 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法 Active JP6805927B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017062519A JP6805927B2 (ja) 2017-03-28 2017-03-28 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
PCT/JP2018/001971 WO2018179729A1 (ja) 2017-03-28 2018-01-23 インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
US16/563,932 US11487817B2 (en) 2017-03-28 2019-09-09 Index generation method, data retrieval method, apparatus of index generation

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2018165875A true JP2018165875A (ja) 2018-10-25
JP6805927B2 JP6805927B2 (ja) 2020-12-23

Family

ID=63674754

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US11487817B2 (ja)
JP (1) JP6805927B2 (ja)
WO (1) WO2018179729A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102483774B1 (ko) * 2018-07-13 2023-01-02 구글 엘엘씨 종단 간 스트리밍 키워드 탐지
US12067037B1 (en) 2022-02-28 2024-08-20 Apttus Corporation System, method, and computer program for performing natural language searches for documents in a database using alternate search suggestions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031949A (ja) * 2003-07-11 2005-02-03 Canon Inc 情報検索方法、情報検索装置およびプログラム
JP2009048351A (ja) * 2007-08-17 2009-03-05 Nippon Telegr & Teleph Corp <Ntt> 情報検索装置、情報検索方法および情報検索プログラム
JP2010198425A (ja) * 2009-02-26 2010-09-09 Hitachi Ltd 文書管理方法、装置
JP2016134037A (ja) * 2015-01-20 2016-07-25 富士通株式会社 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268840A (en) * 1992-04-30 1993-12-07 Industrial Technology Research Institute Method and system for morphologizing text
US5724594A (en) * 1994-02-10 1998-03-03 Microsoft Corporation Method and system for automatically identifying morphological information from a machine-readable dictionary
GB2295470A (en) * 1994-11-28 1996-05-29 Sharp Kk Machine translation system
US6076051A (en) * 1997-03-07 2000-06-13 Microsoft Corporation Information retrieval utilizing semantic representation of text
US6070134A (en) * 1997-07-31 2000-05-30 Microsoft Corporation Identifying salient semantic relation paths between two words
JP4206266B2 (ja) 2001-12-28 2009-01-07 株式会社リコー 全文検索装置、処理方法、処理プログラム及び記録媒体
JP2005251115A (ja) * 2004-03-08 2005-09-15 Shogakukan Inc 連想検索システムおよび連想検索方法
JP4185500B2 (ja) * 2005-03-14 2008-11-26 株式会社東芝 文書検索システム、文書検索方法及びプログラム
JP5043735B2 (ja) * 2008-03-28 2012-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報分類システム、情報処理装置、情報分類方法およびプログラム
JP5847290B2 (ja) * 2012-03-13 2016-01-20 三菱電機株式会社 ドキュメント検索装置およびドキュメント検索方法
JP6206840B2 (ja) 2013-06-19 2017-10-04 国立研究開発法人情報通信研究機構 テキストマッチング装置、テキスト分類装置及びそれらのためのコンピュータプログラム
JP6720664B2 (ja) 2016-04-18 2020-07-08 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
US10394860B1 (en) * 2016-11-23 2019-08-27 Parallels International Gmbh Zero knowledge search engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031949A (ja) * 2003-07-11 2005-02-03 Canon Inc 情報検索方法、情報検索装置およびプログラム
JP2009048351A (ja) * 2007-08-17 2009-03-05 Nippon Telegr & Teleph Corp <Ntt> 情報検索装置、情報検索方法および情報検索プログラム
JP2010198425A (ja) * 2009-02-26 2010-09-09 Hitachi Ltd 文書管理方法、装置
JP2016134037A (ja) * 2015-01-20 2016-07-25 富士通株式会社 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法

Also Published As

Publication number Publication date
US11487817B2 (en) 2022-11-01
US20200004784A1 (en) 2020-01-02
WO2018179729A1 (ja) 2018-10-04
JP6805927B2 (ja) 2020-12-23

Similar Documents

Publication Publication Date Title
JP6643555B2 (ja) 曖昧なエンティティワードに基づくテキスト処理方法及び装置
JP6638480B2 (ja) 類似文書検索プログラム、類似文書検索装置、及び類似文書検索方法
JP4769031B2 (ja) 言語モデルを作成する方法、かな漢字変換方法、その装置、コンピュータプログラムおよびコンピュータ読み取り可能な記憶媒体
US10108602B2 (en) Dynamic portmanteau word semantic identification
US10521510B2 (en) Computer-readable recording medium, retrieval device, and retrieval method
US9984064B2 (en) Reduction of memory usage in feature generation
JP2019082931A (ja) 検索装置、類似度算出方法、およびプログラム
CN113986950A (zh) 一种sql语句处理方法、装置、设备及存储介质
US11842152B2 (en) Sentence structure vectorization device, sentence structure vectorization method, and storage medium storing sentence structure vectorization program
US11487817B2 (en) Index generation method, data retrieval method, apparatus of index generation
KR102519955B1 (ko) 토픽 키워드의 추출 장치 및 방법
JP6486789B2 (ja) 音声認識装置、音声認識方法、プログラム
JP2019074982A (ja) 情報検索装置、検索処理方法、およびプログラム
JP4478042B2 (ja) 頻度情報付き単語集合生成方法、プログラムおよびプログラム記憶媒体、ならびに、頻度情報付き単語集合生成装置、テキスト索引語作成装置、全文検索装置およびテキスト分類装置
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP2001101184A (ja) 構造化文書生成方法及び装置及び構造化文書生成プログラムを格納した記憶媒体
JP2018077604A (ja) 機能記述からの実現手段・方法の侵害候補を自動特定する人工知能装置
JP6838471B2 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
US12073299B2 (en) Systems and methods for using contrastive pre-training to generate text and code embeddings
KR20200057206A (ko) 문서 내 언급되지 않은 정보를 가시화하기 위한 방법 및 시스템
JP7553314B2 (ja) 推定装置、推定方法及びプログラム
Singh et al. Hybrid CNN-LSTM Architecture for Bilingual Next-Word Prediction in Punjabi-English Social Media Texts
JP2018200544A (ja) 解析装置、解析方法及び解析プログラム
JP2024041369A (ja) 類似度判定装置、類似度判定システム及び類似度判定方法
CN114968265A (zh) 反混淆安卓应用源码的方法、设备和计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150