JP5366709B2 - 情報処理装置、共通文字列出力方法及びプログラム - Google Patents
情報処理装置、共通文字列出力方法及びプログラム Download PDFInfo
- Publication number
- JP5366709B2 JP5366709B2 JP2009193547A JP2009193547A JP5366709B2 JP 5366709 B2 JP5366709 B2 JP 5366709B2 JP 2009193547 A JP2009193547 A JP 2009193547A JP 2009193547 A JP2009193547 A JP 2009193547A JP 5366709 B2 JP5366709 B2 JP 5366709B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- character string
- tree structure
- value
- branch
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
特許文献1には、サンプルデータの中の文字列を先頭3文字が等しい文字列同士のグループに分類し、各グループからサンプルデータ中において最も出現頻度が高い文字列(最頻出文字列)を1個ずつ抽出し、各グループから抽出した最頻出文字列を出現頻度順に初期値として辞書に登録する技術が開示されている。
なお、ノード期待値とは、例えば、後述する圧縮期待値等に対応する。
図1は、索引情報作成装置の一例である情報処理装置(コンピュータ)1のハードウェア構成の一例を示す図である。図1に示されるように情報処理装置1は、ハードウェア構成として、CPU11を含む。CPU11が、記憶装置13に記憶されているプログラムに基づき処理を行うことによって、後述する索引情報作成等の機能、又はフローチャートに係る処理を実現する。
CPU11には、バス10を介して、入力装置12、記憶装置13及び表示装置14が接続されている。記憶装置13は、例えば、ROM、RAM、ハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。表示装置14は、情報を表示する例えばディスプレイ等である。入力装置12は、情報を入力する例えば操作キー等である。
なお、入力装置12及び表示装置14は、情報処理装置1の必須の構成要素ではない。
検索対象文書抽出部20は、検索対象となる複数の文書を抽出(又は選択)する。図3は、検索対象文書抽出部20が抽出した文書を識別する文書番号と、前記文書の内容と、を示す図である。
文字列抽出部21は、検索対象文書抽出部20が抽出した、検索対象となる複数の文書から、文書間で共通する出現頻度が高く、かつ、長い文字列を抽出する。例えば、文字列抽出部21は、検索対象となる複数の文書が図3に示すような場合、"ありがとう"の文字列を文書間で共通する文字列として抽出する。図3は、文書番号及び文書の内容の一例を示す図である。
なお、文字列抽出部21は、文書に記載されたデータを木構造で表し、木構造の各ノードを通る毎にインクリメントするカウンタを備えて、カウンタ値を基に頻出文字列を抽出する。文字列抽出部21の詳細は、後述する図13以降、説明を行う。
そして、文字列抽出部21は、抽出した文字列(例えば"ありがとう")と、前記文字列を含む文書の文書番号のグループと、を対応付けた、図4に示すような情報を作成し、記憶装置13の例えばRAM上に一時的に保持する。ここで、図4は、文書間で共通する文字列と、前記文字列を含む文書の文書番号のグループと、を対応付けた情報の一例を示す図である。
なお、置き換え部22は、新たな文書番号として置き換える際、"X"のような文字では無く、文書番号として使用されていない数字(図4の例であれば、1、2、3、5、6、9、10以外の数字である"−1")を、新たな文書番号として用い、置き換えを行うようにしてもよい。
なお、置き換え部22は、置き換えた文書番号のグループと、新たな文字番号と、を対応付けた、図5に示されるような情報(文書番号変換情報)を、記憶装置13のHDD上に保存されている、検索の際に用いられる索引辞書データに追加して保存する。
一方、図8は、従来の方法で作成された索引情報の一例を示す図である。
図7と、図8と、を比較すると、本実施形態の方法で作成した索引情報の方が、記憶容量が少なくて済むことが解かる。例えば、図8の例では、文書番号の最大を10としているが、実際、本発明が対象としている検索対象の文書数(文書番号)は1億程度を想定している。このような場合、図8に示されるような索引情報だけで相当な記憶領域を必要とする。一方、本実施形態で作成された索引情報では、共通する文字列を含む文書の文書番号のグループを、一つの文字等で表される新たな文書番号に置き換えているので、従来に比べて、索引(索引情報)のサイズが小さくなり、必要とする記憶領域を削減することができる。
なお、索引情報作成部23は、勿論、検索対象文書抽出部20が抽出した文書に含まれる他の文字列(他の文書に共通して含まれていない文字等)に基づき、上述した索引情報以外の索引情報も作成する。図3を例に説明を行うと、索引情報作成部23は、索引語:三橋、文書番号:1の索引情報や、索引語:橋で、文書番号:1等の索引情報も作成する。
ステップS10において、検索対象文書抽出部20は、検索対象となる複数の文書を抽出(又は選択)する。
ステップS11において、文字列抽出部21は、検索対象文書抽出部20が抽出した、検索対象となる複数の文書から、文書間で共通する、出現する頻度が高く、かつ、長い文字列を抽出する。なお、この抽出する処理の詳細は、後述する図13以降の図を用いて説明を行う。また、文字列抽出部21は、抽出した文字列と、前記文字列を含む文書の文書番号のグループと、を対応付けた、図4に示すような情報を作成し、記憶装置13のRAM上に一時的に保持する。
図12は、本実施形態の方法で作成された索引情報の一例を示す図である。図12に示されるように、本実施形態の方法で作成された索引情報の記憶容量は、新たにn+1個の文書番号変換情報の記憶領域が増えるので、(n+1)×b+(m−1)×b=(m+n)×bバイトである。
よって、本実施形態の方法(又は処理)により、削減することができる記憶容量は、(m−1)×n×b−(m+n)×b={(n−1)×(m−2)−2}×bバイトとなる。
従って、文字列抽出部21によって長い文字列の頻出文字列を抽出することによって、m、nは大きくなり、より記憶容量を削減することが可能になる。
前処理部31は、検索対象文書抽出部20が抽出した検索対象文書から所定のデリミタ(例えば、"、"や"。"等)に基づき、文字列を読み込む。
木構造生成部32は、前処理部31が読み込んだ文字列に基づいて、前記文字列に含まれる各文字をノードとする、図14に示されるような木構造を生成する。図14は、木構造の一例を示す図である。木構造生成部32は、前記文字列に含まれる各文字をノードに設定する際に、通過したノードに対応するカウンタの値を一つインクリメントする。図14の例では、カウンタの値をnで表しており、上述したnの意味と同一のものである。
また、図14において、mは文字列の長さを表しており、上述したmの意味と同一のものである。また、図14において、各枝の最後に付されてある四角内の番号は文書番号を表しており、各枝(文字列)が含まれていた文書を示すものである。
なお、木構造生成部32は、予め設定された文字数(例えば、2文字以上の文字数)を各ノードに設定してもよい。例えば、図14において「ご(n=1,m=1)」「め(n=1,m=2)」「ん(n=1,m=3)」「ね(n=1,m=4)」と生成された木構造において、各ノードに2文字ずつ設定された場合、各ノードに「ごめ(n=1,m=1)」「めん(n=1,m=2)」「んね(n=1,m=3)」のようになる。また、各ノードに設定する文字数について、ユーザが任意に設定できる設定ツールを設けておいてもよい。つまり、木構造生成部32は、前記設定ツールを介して設定された文字数を各ノードに設定してもよい。
また、木構造生成部32は、文字の種類に応じて、各ノードに設定する文字数を自身で設定してもよい。例えば、木構造生成部32は、平仮名であれば各ノードに2文字ずつ設定すると設定し、漢字であれば3文字ずつノードに設定すると設定する。
また、木構造生成部32は、各ノードに設定する文字数をインデックスサイズとあわせて設定してもよい。例えば、木構造生成部32は、インデックスが2文字単位で作成されるのであれば各ノードに設定する文字数を2文字ずつと設定し、インデックスが3文字単位で作成されるのであれば各ノードに設定する文字数を3文字ずつと設定し、木構造を生成する。
S={(n−1)×(m−2)−2}×b
を用いて算出する。なお、本実施形態の例では、圧縮期待値Sは、上述した式で表されるが、文字列抽出部21を適用(実装)する装置や木構造生成部32において生成される木構造の各ノードに設定される文字数等に応じて圧縮期待値Sを求める式は変わり得るものである。
図15は、切断の一例を示す図(その1)である。図15において、「ありがとうございました」の「う」は、n=3、m=5である。したがって、算出部33は、前記「う」の圧縮期待値Sを{(3−1)×(5−2)−2}×b=4bと算出する。また、図15において、「ありがとうございました」の「ご」は、n=2、m=6である。したがって、算出部33は、前記「ご」の圧縮期待値Sを{(2−1)×(6−2)−2}×b=2bと算出する。よって、親ノードの圧縮期待値が子ノードの圧縮期待値より大きいので、切断部34は、図15に示すように、「ありがとうございました」の「う」と「ご」との間を切断する。
接続部35は、切断部34において、木構造から切り離された「ございました」の最上位のノードが表す文字「ご」に基づき、木構造のルート直下のノードが表す文字の中で「ご」が存在するか否か検索する。図15の例の場合、木構造に「ごめんね」の枝があり、ルート直下のノードが表す文字に「ご」が存在するため、接続部35は、木構造から切り離された「ございました」を図16に示すように、木構造に接続する。図16は、接続(マージ)の一例を示す図である。
また、切断部34は、上述したような圧縮期待値に基づいて、切断を行う他に、図18に示されるように、枝に関連付けられている文書が1つの枝を切断するようにしてもよい。図18は、切断の一例を示す図(その3)である。また、図19は、切断及び接続が実行された後の木構造の一例を示す図である。
ステップS20において、前処理部31は、検索対象文書抽出部20が抽出した検索対象文書から所定のデリミタ(例えば、"、"や"。"等)に基づき、文字列を読み込む。
ステップS21において、木構造生成部32は、前処理部31が読み込んだ文字列に基づいて、前記文字列に含まれる各文字をノードとする、図14に示されるような木構造を生成する。なお、このとき、ノードに設定する文字数は、上述の通り、1文字に限定する必要はなく、木構造生成部32は、適宜設定された(又は自身で設定した)文字数を各ノードに設定してもよい。
ステップS22において、例えば文字列抽出部21は、予め定められた回数、ステップS23〜ステップS25の処理を繰り返したか否かを判定する。文字列抽出部21は、予め定められた回数、ステップS23〜ステップS25の処理を繰り返したと判定すると、ステップS26に進み、予め定められた回数、ステップS23〜ステップS25の処理を繰り返していないと判定すると、ステップS23に進む。
なお、ステップS22において、例えば文字列抽出部21は、木構造のノードの数が最小になったか否か(つまり、ステップS23〜ステップS25の処理を繰り返してもノードの数が変化しなくなったか否か)に基づいて、ステップS23に進むか、ステップS26に進むかを判断するようにしてもよい。つまり、例えば文字列抽出部21は、木構造のノードの数が最小になったと判定すると、ステップS26に進み、木構造のノードの数が最小ではないと判定すると、ステップS23に進むようにしてもよい。
ステップS24において、切断部34は、ステップS23で算出された圧縮期待値Sに基づき、親ノードの圧縮期待値が子ノードの圧縮期待値より大きい場合、前記親ノードと前記子ノードとの間を切断する。また、切断部34は、更に、カウンタの値が1の枝を切断したり、枝に関連付けられている文書が1つの枝を切断したりする。なお、切断部34は、カウンタの値が1の枝を切断すると共に枝に関連付けられている文書が1つの枝を切断してもよいし、どちらか一方だけを実行するようにしてもよい。また、切断部34は、圧縮期待値Sに基づく切断のみを実行するようにしてもよい。
ステップS25において、接続部35は、ステップS24で切断され、木構造から切り離された枝の最上位のノードが表す文字と、木構造のルート直下のノードが表す文字と、が同一の場合、ルート直下のノードに木構造から切り離された枝を接続する。
文書に共通して出現する頻度が高い文字列(頻出文字列)を抽出することを応用し、例えば、形態素解析の辞書作成支援に用いてもよい。この場合、上述した段落番号0020〜0025等で説明した文字列抽出部21による処理を行うことによって頻出文字列を抽出し、抽出した文字列を辞書に登録する。また、木構造生成部32は、実施形態1においてはn個の文書に共通して存在した場合をカウントしたが、実施形態2においては、同一文書中に複数回出現する文字列があった場合、同一文書中に出現した回数についても同様にカウンタの値をインクリメントしてもよい。このようにして作成された辞書を使用して、CPU11が、形態素解析を行うことによって、従来の形態素解析において困難であった特殊用語(新語、専門用語、略語等)に対しても対応が可能になり、精度が向上する。
また、文字列の長さ(m)を予め設定して、頻出文字列長を調整することによって、目的に適った辞書が作成し易くするようにしてもよい。
また、文字列の長さ(m)や式(S)について、ユーザが任意に設定できる設定ツールを設けておいてもよい。
12 入力装置
13 記憶装置
14 表示装置
Claims (9)
- 対象となる文書に含まれる文字列に基づいて、前記文字列に含まれる設定された文字数の文字をノードとする木構造を生成する木構造生成手段を有し、
前記木構造生成手段は、前記文字列に含まれる各字をノードに設定する際に、通過したノードに対応するカウンタの値をインクリメントし、
更に、
各ノードに対応するカウンタの値と、各ノードまでの文字列長と、に基づき、出力する文字列に関するノード期待値を算出する算出手段と、
親ノードの前記ノード期待値と、子ノードの前記ノード期待値と、に基づき、前記親ノードと前記子ノードとの間を切断する切断手段と、
前記切断手段で切断され、前記木構造から切り離された枝の最上位のノードが表す文字に基づいて、前記木構造から切り離された枝を前記木構造に接続する接続手段と、
前記木構造の枝の末端のノードの前記ノード期待値が1以上の枝を文書に共通して出現する文字列として出力する出力手段と、
を有することを特徴とする情報処理装置。 - 前記算出手段は、各ノードに対応するカウンタの値と、各ノードまでの文字列長と、前記文書を識別する文書番号を記憶するのに要するリソース情報と、に基づき、出力する文字列に関するノード期待値を算出することを特徴とする請求項1に記載の情報処理装置。
- 前記切断手段は、親ノードの前記ノード期待値が子ノードの前記ノード期待値より大きい場合、前記親ノードと前記子ノードとの間を切断することを特徴とする請求項1又は2に記載の情報処理装置。
- 前記木構造生成手段は、文字列を表す前記木構造の枝と、前記文字列が含まれる文書と、を関連付け、
前記切断手段は、親ノードの前記ノード期待値が子ノードの前記ノード期待値より大きい場合、前記親ノードと前記子ノードとの間を切断すると共に、関連付けられている文書の数が一つの枝のノード間を切断することを特徴とする請求項3に記載の情報処理装置。 - 前記切断手段は、親ノードの前記ノード期待値が子ノードの前記ノード期待値より大きい場合、前記親ノードと前記子ノードとの間を切断すると共に、ノードに対応するカウンタ値が所定の値のノードの前、又は後を切断することを特徴とする請求項3に記載の情報処理装置。
- 前記接続手段は、前記切断手段で切断され、前記木構造から切り離された枝の最上位のノードが表す文字と、前記木構造のルート直下のノードが表す文字と、に基づいて、前記木構造から切り離された枝を前記木構造に接続することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
- 前記接続手段は、前記切断手段で切断され、前記木構造から切り離された枝の最上位のノードが表す文字と、前記木構造のルート直下のノードが表す文字と、が同一の場合、前記ルート直下のノードに前記木構造から切り離された枝を接続することを特徴とする請求項6に記載の情報処理装置。
- 情報処理装置が実行する共通文字列出力方法であって、
対象となる文書に含まれる文字列に基づいて、前記文字列に含まれる設定された文字数の文字をノードとする木構造を生成する木構造生成ステップを有し、
前記木構造生成ステップでは、前記文字列に含まれる各字をノードに設定する際に、
通過したノードに対応するカウンタの値をインクリメントし、
更に、
各ノードに対応するカウンタの値と、各ノードまでの文字列長と、に基づき、出力する文字列に関するノード期待値を算出する算出ステップと、
親ノードの前記ノード期待値と、子ノードの前記ノード期待値と、に基づき、前記親ノードと前記子ノードとの間を切断する切断ステップと、
前記切断ステップで切断され、前記木構造から切り離された枝の最上位のノードが表す文字に基づいて、前記木構造から切り離された枝を前記木構造に接続する接続ステップと、
前記木構造の枝の末端のノードの前記ノード期待値が1以上の枝を文書に共通して出現する文字列として出力する出力ステップと、
を有することを特徴とする共通文字列出力方法。 - コンピュータを、
対象となる文書に含まれる文字列に基づいて、前記文字列に含まれる設定された文字数の文字をノードとする木構造を生成する木構造生成手段として機能させ、
前記木構造生成手段は、前記文字列に含まれる各字をノードに設定する際に、通過したノードに対応するカウンタの値をインクリメントし、
前記コンピュータを、更に、
各ノードに対応するカウンタの値と、各ノードまでの文字列長と、に基づき、出力する文字列に関するノード期待値を算出する算出手段と、
親ノードの前記ノード期待値と、子ノードの前記ノード期待値と、に基づき、前記親ノードと前記子ノードとの間を切断する切断手段と、
前記切断手段で切断され、前記木構造から切り離された枝の最上位のノードが表す文字に基づいて、前記木構造から切り離された枝を前記木構造に接続する接続手段と、
前記木構造の枝の末端のノードの前記ノード期待値が1以上の枝を文書に共通して出現する文字列として出力する出力手段と、
して機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193547A JP5366709B2 (ja) | 2008-09-04 | 2009-08-24 | 情報処理装置、共通文字列出力方法及びプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008227570 | 2008-09-04 | ||
JP2008227570 | 2008-09-04 | ||
JP2009193547A JP5366709B2 (ja) | 2008-09-04 | 2009-08-24 | 情報処理装置、共通文字列出力方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010086525A JP2010086525A (ja) | 2010-04-15 |
JP5366709B2 true JP5366709B2 (ja) | 2013-12-11 |
Family
ID=42250354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009193547A Expired - Fee Related JP5366709B2 (ja) | 2008-09-04 | 2009-08-24 | 情報処理装置、共通文字列出力方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5366709B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130222389A1 (en) * | 2010-11-09 | 2013-08-29 | Nec Corporation | Information processing device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4456574B2 (ja) * | 2006-03-13 | 2010-04-28 | 富士通株式会社 | 圧縮データ送信方法 |
JP4740060B2 (ja) * | 2006-07-31 | 2011-08-03 | 富士通株式会社 | 重複データ検出プログラム、重複データ検出方法および重複データ検出装置 |
JP4491480B2 (ja) * | 2007-10-11 | 2010-06-30 | 株式会社日立製作所 | インデクス構築方法、文書検索装置及びインデクス構築プログラム |
JP5184987B2 (ja) * | 2008-06-17 | 2013-04-17 | 新日鉄住金ソリューションズ株式会社 | 索引情報作成装置、索引情報作成方法及びプログラム |
-
2009
- 2009-08-24 JP JP2009193547A patent/JP5366709B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010086525A (ja) | 2010-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107797991B (zh) | 一种基于依存句法树的知识图谱扩充方法及系统 | |
JP5138046B2 (ja) | 検索システム、検索方法およびプログラム | |
KR20130108537A (ko) | 문자열 생성 방법, 프로그램 및 시스템 | |
CN106547765B (zh) | 基于sql的数据库管理方法及装置 | |
CN112115313A (zh) | 正则表达式的生成、数据提取方法、装置、设备及介质 | |
WO2011086637A1 (ja) | 要求抽出システム、要求抽出方法および要求抽出プログラム | |
JP2007219620A (ja) | テキスト検索装置、テキスト検索プログラム、及びテキスト検索方法 | |
JP5869948B2 (ja) | パッセージ分割方法、装置、及びプログラム | |
JP5366709B2 (ja) | 情報処理装置、共通文字列出力方法及びプログラム | |
CN108776705B (zh) | 一种文本全文精确查询的方法、装置、设备及可读介质 | |
Lin et al. | Combining a segmentation-like approach and a density-based approach in content extraction | |
US10380195B1 (en) | Grouping documents by content similarity | |
CN105608201A (zh) | 一种支持多关键词表达式的文本匹配方法 | |
JP2009271819A (ja) | 文書検索システム、文書検索方法および文書検索プログラム | |
JP5184987B2 (ja) | 索引情報作成装置、索引情報作成方法及びプログラム | |
JP2014225158A (ja) | 文書要約装置、方法、及びプログラム | |
Kasthuri et al. | An improved rule based iterative affix stripping stemmer for Tamil language using K-mean clustering | |
JP5505028B2 (ja) | 翻訳支援装置、方法及びプログラム | |
JP4940251B2 (ja) | 文書処理プログラム及び文書処理装置 | |
JP5582358B2 (ja) | 文書検索システム、文書検索方法、及びプログラム | |
JP5642229B2 (ja) | 重要性判定システム、重要性判定方法及びコンピュータプログラム | |
JP2003099429A (ja) | 用語集生成装置及び用語集生成プログラム並びに用語集検索装置 | |
JP2018206189A (ja) | 情報収集装置、および、情報収集方法 | |
JP6777601B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JP5771971B2 (ja) | 情報処理装置、情報処理方法、及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120817 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130802 |
|
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: 20130813 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130910 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |