JP2012150751A - 検索装置 - Google Patents
検索装置 Download PDFInfo
- Publication number
- JP2012150751A JP2012150751A JP2011010528A JP2011010528A JP2012150751A JP 2012150751 A JP2012150751 A JP 2012150751A JP 2011010528 A JP2011010528 A JP 2011010528A JP 2011010528 A JP2011010528 A JP 2011010528A JP 2012150751 A JP2012150751 A JP 2012150751A
- Authority
- JP
- Japan
- Prior art keywords
- node
- token
- character string
- string
- character
- 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
Links
- 238000000547 structure data Methods 0.000 claims abstract description 38
- 238000011017 operating method Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 37
- 238000012545 processing Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】本発明の一実施形態として、複数の文字列をトークン列に変換し共通するトークン列を併合して構成される木構造データであり木構造データのノードには末端ノードまでの長さの最大値および最小値が関連づけられている木構造データを記憶するインデックスメモリと、検索する文字列をトークン列に変換するトークナイザと、トークナイザにより変換されたトークン列を走査しインデックスメモリに記憶されている木構造データのノードの子ノードを選択して根ノードを始点とする経路を検索し、ノードの子ノードの中から、末端ノードまでの長さの最大値および最小値の範囲内に未走査のトークン数を含む子ノードが存在しなければ、検索する文字列が複数の文字列の中に存在しないことを検出する検索装置を提供する。
【選択図】図1
Description
図1は、本発明の一実施形態に係る検索装置の機能ブロック図を示す。検索装置100は、インデックスメモリ101と、トークナイザ102と、検索部103とを有する。
インデックスメモリ101は、1または複数の木構造データを記憶する。インデックスメモリ101が記憶する1または複数の木構造データが表す木構造は次の2つの条件を満たす。
(条件1)複数の文字列それぞれを1または複数のトークンの列に変換して、共通するトークンの列を開始端より併合することにより、構成されている。
(条件2)木構造のノードには、末端ノードまでの長さの最大値および最小値が関連付けられている。
本実施形態において、木構造とは、数学的に定義されるグラフ構造であり、そのグラフ構造は(イ)1または複数のノードを有し、(ロ)始点と終点とをノードして持つエッジによって始点のノードと終点のノードとを接続し、(ハ)単連結であり、かつ、(ニ)ループを構成するエッジが存在しないことを特徴とする。木構造を表すデータを木構造データと定義する。木構造データは、ノードとエッジとを表すデータ構造により表すことができる。このようなデータ構造としては、例えば後に図3を用いて説明されるデータ構造がある。
(定義1)(1)1つのノードは木構造である。(2、3)そのノードは、その木構造の根ノードでありかつ末端ノードである。(4)この木構造において、根ノードから末端ノードまでの長さの最大値および最小値はともに1である。
(定義2)(1)1または複数の木構造T1、…、Tnがある場合、木構造T1、…、Tnのいずれのノードでもない新たなノードpと木構造T1、…、Tnのそれぞれの根ノードとを、ノードpを始点としそれぞれの根ノードを終点とするn本のエッジそれぞれにより接続した構造は、新たな木構造である。(2)この新たな木構造の根ノードはノードpであり、(3)この新たな木構造の末端ノードは、木構造T1、…、Tnのそれぞれの末端ノードであり、(4)この新たな木構造の根ノードから末端ノードまでの長さの最大値は、{T1の根ノードから末端ノードまでの長さの最大値、…、Tnの根ノードから末端ノードまでの長さの最大値}の最大値に1を加えた値であり、この新たな木構造の根ノードから末端ノードまでの長さの最小値は、{T1の根ノードから末端ノードまでの長さの最小値、…、Tnの根ノードから末端ノードまでの長さの最小値}の最小値に1を加えた値である。
図2は、文字列を1または複数のトークンの列に変換することを説明するための図である。トークンとは文字または文字の並びである単語を表すデータ構造をいう。文字列を1または複数のトークンの列に変換するとは、文字列を、その構成要素である文字または単語を表すデータ構造の並びに変換することをいう。文字列をトークンの列に変換することは、字句解析(Lexical Analysis)と称されることもある。
上述の(条件1)における、「共通するトークンの列を開始端より併合する」とは、次の処理をいう。第1のトークンの列A1A2…AnB1B2…Bmと第2のトークンの列A1A2…AnC1C2…Ckとが与えられた場合、この2つトークンの列は、開始端A1よりn個のトークンの部分列A1A2…Anが共通している。そこで、A1からAnのそれぞれのトークンに対応するノードを順に直列にエッジで接続し、A1に対応するノードを根ノードとし、Anに対応するノードを末端ノードとする木構造を作る。次に、Anに対応するノードの子ノードを、B1に対応するノードとC1に対応するノードとし、B1からBmそれぞれのトークンに対応するノードを順に直列にエッジで接続し、また、C1からCkのそれぞれに対応するノードを順に直列にエッジで接続することをいう。
なお、以下では、トークンの列D1D2…Dnについて、D1からDnそれぞれに対応するノードを順に直列にエッジで接続して得られる木構造を、トークンの列D1D2…Dnに対応する木構造ということにする。また、木構造の根ノードを開始点として、エッジの始点から終点を順に辿って得られる経路を木構造の部分木ということにする。例えば、トークンの列E1E2E3E4E5に対応する木構造の部分木として、E1、E1E2、E1E2E3やE1E2E3E4に対応する木構造を挙げることができる。
本実施形態においては、(条件2)として述べたように、木構造を構成するノードそれぞれには、そのノードを根ノードとする木構造の末端ノードまでの長さの最大値および最小値が関連付けられている。そこで、インデックスメモリ101が記憶する木構造データは、例えば、図3に示すデータ構造により、ノードとそのノードを始点とするエッジとを表して記憶される。
図4は、複数のトークンの列と、その複数のトークンの列から共通するトークンの列を開始端より併合して構成される木構造との例を示す。
共通するトークンの列を開始端より併合してトークンに対応するノードを用いて構成された木構造の構成方法については、一般的に述べたが、それをフローチャートで具体的に示した例が、図5である。
トークナイザ102は、検索する文字列を1または複数のトークンの列に変換する。変換されたトークンの列は、検索装置100のメモリに格納され、例えば格納されたメモリのアドレスが、検索部103に伝達される。
検索部103は、トークナイザ102により検索する文字列から変換されたトークンの列を走査し、インデックスメモリ101に記憶されている木構造データのノードの子ノードを選択して根ノードを始点とする経路を検索する。すなわち、検索部103は、トークナイザ102により検索する文字列から変換されたトークンの列を開始端から順に走査し、走査中のトークンの情報を取得する。そして、取得されたトークンの情報を用いて、インデックスメモリ101に記憶されている木構造データの表す木構造の走査中のノードの子ノードの中からノードを選択する。これを、「子ノードを選択する」という。
図8は、図5と図7とのフローチャートの処理の例を示す。図8の(a)に示すように、登録される文字列が「MR MAINET COLTD」と「MR MAINET SYSTEM COLTD」とであれば、図5のフローチャートの処理により、図8の(b)に示す木構造が生成される。したがって、インデックスメモリ101には、図8の(b)に示す木構造を表す木構造データが記憶される。
本実施形態に係る検索装置は、例えば振込の宛名人が取引先として登録されているかどうかを検出し、また、振込の宛名人が取引先であれば、その口座番号などを取得するために用いることができる。すなわち、あらかじめ、取引先の口座の名義人の名前を表す文字列それぞれをトークンの列に変換し、共通するトークンの列を開始端より併合して構成される木構造データをインデックスメモリ101に記憶する。このとき、木構造データには末端ノードまでの長さの最大値および最小値を関連づけておく。
本発明の実施形態2として、図3に示したデータ構造の変形例を図9に示す。図9の(a)において、データ構造は、6つのスロットを有し、スロット901、904、905、906は、図3におけるスロット301、302、303、304にそれぞれ対応する。図9においては、スロット902、903が示されている。スロット902には、スロット901に記憶される文字列の先頭の文字列が格納される。また、スロット903には、その文字列の長さが格納される。例えば、スロット901に「MTU」が格納される場合には、スロット902、スロット903にはそれぞれ、M、3が格納される。
Claims (8)
- 複数の文字列それぞれを1または複数のトークンの列に変換し、共通するトークンの列を開始端より併合して構成される木構造データであり、前記木構造データのノードには末端ノードまでの長さの最大値および最小値が関連づけられている木構造データを記憶するインデックスメモリと、
検索する文字列を1または複数のトークンの列に変換するトークナイザと、
前記トークナイザにより変換されたトークンの列を走査しながら前記インデックスメモリに記憶されている木構造データのノードの子ノードを選択して根ノードを始点とする経路を検索することにより、前記検索する文字列が前記複数の文字列の中に存在するかどうかを検出する検索部と、を有し、
前記検索部は、ノードの子ノードの中から、末端ノードまでの長さの最大値および最小値の範囲内に未走査のトークンの数を含む子ノードが存在しなければ、前記検索する文字列が前記複数の文字列の中に存在しないことを検出する検索装置。 - 前記インデックスメモリが記憶する木構造データを構成するノードには、ノードの表すトークンの文字列の長さが関連づけられており、
前記検索部は、ノードの子ノードの中から、次に走査するトークンの文字列の長さが関連付けられている子ノードが存在しなければ、前記検索する文字列が前記複数の文字列の中に存在しないことを検出する請求項1に記載の検索装置。 - 前記インデックスメモリが記憶する木構造データを構成するノードには、末端ノードまでの長さのリストが関連づけられており、
前記検索部は、ノードの子ノードの中から、子ノードに関連づけられているリスト中に未走査のトークンの数を含む子ノードが存在しなければ、前記検索する文字列が前記複数の文字列の中に存在しないことを検出する請求項1または2に記載の検索装置。 - 前記トークナイザは、前記検索する文字列中の区切り文字により前記検索する文字列を区切りトークンの列に変換する請求項1から3のいずれかに記載の検索装置。
- 前記トークナイザは、前記検索する文字列を、定められた単語の有無にしたがって単語の列に区切ってトークンの列に変換する請求項1から4のいずれかに記載の検索装置。
- 前記トークナイザは、前記検索する文字列中の1文字を1トークンとする請求項1または2に記載の検索装置。
- 複数の文字列それぞれを1または複数のトークンの列に変換し、共通するトークンの列を開始端より併合して構成される木構造データであり、前記木構造データのノードには末端ノードまでの長さの最大値および最小値が関連づけられている木構造データを記憶部に記憶している計算機に、
検索する文字列を1または複数のトークンの列に変換させ、
変換されたトークンの列を走査しながら前記インデックスメモリに記憶されている木構造データのノードの子ノードを選択して根ノードを始点とする経路を検索することにより、前記検索する文字列が前記複数の文字列の中に存在するかどうかを検出させるためのプログラムであり、
ノードの子ノードの中から、末端ノードまでの長さの最大値および最小値の範囲内に未走査のトークンの数を含む子ノードが存在しなければ、前記検索する文字列が前記複数の文字列の中に存在しないことを前記計算機に検出させるプログラム。 - 複数の文字列それぞれを1または複数のトークンの列に変換し、共通するトークンの列を開始端より併合して構成される木構造データであり、前記木構造データのノードには末端ノードまでの長さの最大値および最小値が関連づけられている木構造データを記憶部に記憶している計算機の動作方法であり、
前記計算機が、
検索する文字列を1または複数のトークンの列に変換し、
変換されたトークンの列を走査しながら前記インデックスメモリに記憶されている木構造データのノードの子ノードを選択して根ノードを始点とする経路を検索することにより、前記検索する文字列が前記複数の文字列の中に存在するかどうかを検出し、
ノードの子ノードの中から、末端ノードまでの長さの最大値および最小値の範囲内に未走査のトークンの数を含む子ノードが存在しなければ、前記検索する文字列が前記複数の文字列の中に存在しないことを含む、計算機の動作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011010528A JP5237400B2 (ja) | 2011-01-21 | 2011-01-21 | 検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011010528A JP5237400B2 (ja) | 2011-01-21 | 2011-01-21 | 検索装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013068759A Division JP5628365B2 (ja) | 2013-03-28 | 2013-03-28 | 検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012150751A true JP2012150751A (ja) | 2012-08-09 |
JP5237400B2 JP5237400B2 (ja) | 2013-07-17 |
Family
ID=46792923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011010528A Active JP5237400B2 (ja) | 2011-01-21 | 2011-01-21 | 検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5237400B2 (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03122766A (ja) * | 1989-09-28 | 1991-05-24 | Bull Hn Inf Syst Inc | 部分キー分岐機能を備えたプレフィックス探索ツリー |
JPH07200622A (ja) * | 1993-12-28 | 1995-08-04 | Fujitsu Ltd | 情報管理システム |
JP2000339332A (ja) * | 1999-05-28 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | 検索インデックスを記録した媒体、検索インデックス更新方法、その装置、そのプログラムを記録した媒体 |
JP2001513243A (ja) * | 1997-03-07 | 2001-08-28 | マイクロソフト コーポレイション | テキストの意味論的表現を利用した情報の検索 |
JP2009098952A (ja) * | 2007-10-17 | 2009-05-07 | Mitsubishi Electric Corp | 情報検索システム |
JP2009163438A (ja) * | 2007-12-28 | 2009-07-23 | Canon Inc | データ検索装置、データ検索方法、及びコンピュータプログラム |
JP2010205119A (ja) * | 2009-03-05 | 2010-09-16 | Mitsubishi Electric Corp | 辞書検索装置 |
-
2011
- 2011-01-21 JP JP2011010528A patent/JP5237400B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03122766A (ja) * | 1989-09-28 | 1991-05-24 | Bull Hn Inf Syst Inc | 部分キー分岐機能を備えたプレフィックス探索ツリー |
JPH07200622A (ja) * | 1993-12-28 | 1995-08-04 | Fujitsu Ltd | 情報管理システム |
JP2001513243A (ja) * | 1997-03-07 | 2001-08-28 | マイクロソフト コーポレイション | テキストの意味論的表現を利用した情報の検索 |
JP2000339332A (ja) * | 1999-05-28 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | 検索インデックスを記録した媒体、検索インデックス更新方法、その装置、そのプログラムを記録した媒体 |
JP2009098952A (ja) * | 2007-10-17 | 2009-05-07 | Mitsubishi Electric Corp | 情報検索システム |
JP2009163438A (ja) * | 2007-12-28 | 2009-07-23 | Canon Inc | データ検索装置、データ検索方法、及びコンピュータプログラム |
JP2010205119A (ja) * | 2009-03-05 | 2010-09-16 | Mitsubishi Electric Corp | 辞書検索装置 |
Non-Patent Citations (2)
Title |
---|
CSNG200900152009; 三上 崇志 外2名: '"ダブル配列を用いた文書検索用キーワード提示の高速化"' 情報処理学会研究報告 第2009巻 第35号, 20090318, p.61-67, 社団法人情報処理学会 * |
JPN6013008509; 三上 崇志 外2名: '"ダブル配列を用いた文書検索用キーワード提示の高速化"' 情報処理学会研究報告 第2009巻 第35号, 20090318, p.61-67, 社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
JP5237400B2 (ja) | 2013-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882109B2 (en) | Computer representation of a data tree structure and the associated encoding/decoding methods | |
JP3672242B2 (ja) | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 | |
US9195738B2 (en) | Tokenization platform | |
US8095526B2 (en) | Efficient retrieval of variable-length character string data | |
US9619585B2 (en) | Fast, scalable dictionary construction and maintenance | |
US8972415B2 (en) | Similarity search initialization | |
WO2012174137A1 (en) | Method and system of extracting web page information | |
WO2015010509A1 (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN105335402A (zh) | 基于静态Cache的搜索方法、索引数据生成方法以及装置 | |
CN114491172A (zh) | 树形结构节点的快速检索方法、装置、设备及存储介质 | |
US20130159315A1 (en) | Methods for prefix indexing | |
CN104268176A (zh) | 一种基于搜索关键词的推荐方法及系统 | |
JPWO2013111287A1 (ja) | Sparqlクエリ最適化方法 | |
KR101793578B1 (ko) | 효율적으로 질의를 처리하는 방법 및 장치 | |
CN117763077A (zh) | 数据查询方法及装置 | |
US7933885B1 (en) | Longest matching prefix search engine with hierarchical decoders | |
US8051060B1 (en) | Automatic detection of separators for compression | |
JP5628365B2 (ja) | 検索装置 | |
JP6624062B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JP5237400B2 (ja) | 検索装置 | |
CN108304467B (zh) | 用于文本间匹配的方法 | |
US11031092B2 (en) | Taxonomic annotation of variable length metagenomic patterns | |
CN112380445B (zh) | 数据查询方法、装置、设备和存储介质 | |
KR20100105080A (ko) | 엔-그램 기반의 질의 처리 장치 및 그 방법 | |
CN109948018B (zh) | 一种Web结构化数据快速提取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130215 |
|
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: 20130226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130328 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5237400 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160405 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |