JP2004013726A - キーワード抽出装置および情報検索装置 - Google Patents
キーワード抽出装置および情報検索装置 Download PDFInfo
- Publication number
- JP2004013726A JP2004013726A JP2002169036A JP2002169036A JP2004013726A JP 2004013726 A JP2004013726 A JP 2004013726A JP 2002169036 A JP2002169036 A JP 2002169036A JP 2002169036 A JP2002169036 A JP 2002169036A JP 2004013726 A JP2004013726 A JP 2004013726A
- Authority
- JP
- Japan
- Prior art keywords
- document
- character string
- keyword
- word
- appearance
- 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.)
- Pending
Links
Images
Abstract
【課題】辞書を必要とせずにドキュメントよりキーワードを抽出する。
【解決手段】キーワード抽出装置は、ドキュメント群を受け、ドキュメント群から後述するサフィックスファイルを作成するサフィックスファイル作成部22と、サフィックスファイルを記憶するサフィックスファイル記憶部24と、ドキュメント群に含まれる任意のドキュメントまたはドキュメント群と同じ分野のドキュメントを受け、「、」や「。」などの文章の切れ目でドキュメント分割する区切り部28と、サフィックスファイルおよび区切り部28より供給された文章に基づいて、文章を適宜区切り、後述する出現頻度α、出現集中度βおよび重みなどの計算を行なうスコア計算部26と、演算結果を記憶する演算結果記憶部30と、演算結果に基づいて、ドキュメントをキーワードの候補に分割していくドキュメント分割部32と、キーワード候補を絞込む絞込み部34とを含む。
【選択図】 図1
【解決手段】キーワード抽出装置は、ドキュメント群を受け、ドキュメント群から後述するサフィックスファイルを作成するサフィックスファイル作成部22と、サフィックスファイルを記憶するサフィックスファイル記憶部24と、ドキュメント群に含まれる任意のドキュメントまたはドキュメント群と同じ分野のドキュメントを受け、「、」や「。」などの文章の切れ目でドキュメント分割する区切り部28と、サフィックスファイルおよび区切り部28より供給された文章に基づいて、文章を適宜区切り、後述する出現頻度α、出現集中度βおよび重みなどの計算を行なうスコア計算部26と、演算結果を記憶する演算結果記憶部30と、演算結果に基づいて、ドキュメントをキーワードの候補に分割していくドキュメント分割部32と、キーワード候補を絞込む絞込み部34とを含む。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はキーワード抽出装置および情報検索装置に関し、特に、辞書を必要とせずにドキュメント群からキーワードを抽出可能なキーワード抽出装置および情報検索装置に関する。
【0002】
【従来の技術】
最新の技術情報の速報やニュースなどを整理する際には、検索のために記事の内容を特定できるキーワードの付与が行なわれている。キーワードを付与する作業を自動化できれば、キーワードが付与されていないドキュメントの操作も容易になる。これまで検討されているキーワード自動抽出は、辞書を用いて形態素解析を行ない、その後、品詞情報と頻度情報とをもとにキーワードを弁別する手法により行なわれている。
【0003】
【発明が解決しようとする課題】
しかし、辞書を用いる手法は日々新しい単語が生まれるインターネット時代の情報処理としては問題がある。その理由として、処理の自動化が必要な最新の文章からキーワードを辞書に登録し続ける必要があるため生産性が悪いことと、辞書に登録されていない全く未知の用語に対する汎用性がないことが挙げられる。
【0004】
また、従来のキーワード抽出方法では、正しく単語に分割されない場合があり、そのために、単語の前後の一部の文字が切れた部分文字列に分割されてしまうという問題がある。また、助詞や助動詞が単語の前後に含まれて分割されてしまうという問題もある。
【0005】
本発明は上述の課題を解決するためになされたもので、その目的は、辞書を必要とせずにドキュメントよりキーワードを抽出可能なキーワード抽出装置を提供することである。
【0006】
本発明の他の目的は、辞書を必要とせずにあるドキュメントに関連したドキュメントをドキュメント群から抽出可能な情報検索装置を提供することである。
【0007】
【課題を解決するための手段】
本発明のある局面に従うキーワード抽出装置は、ドキュメント群における各ドキュメントに含まれる部分文字列のドキュメント群中での出現頻度を求めるための出現頻度算出手段と、部分文字列のドキュメント群中での出現集中度を求めるための出現集中度算出手段と、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度および出現集中度に基づいて、入力されたドキュメントからキーワードを抽出するための第1のキーワード抽出手段とを含む。
【0008】
部分文字列の出現頻度および出現集中度に基づいて、キーワードを抽出する。このため、辞書を必要とせずにドキュメントよりキーワードを抽出することができる。
【0009】
好ましくは、第1のキーワード抽出手段は、入力されたドキュメントを部分文字列に分割するためのドキュメント分割手段と、ドキュメント分割手段、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度および出現集中度に基づいて、部分文字列の単語らしさを算出するための単語らしさ算出手段と、単語らしさ算出手段に接続され、単語らしさの合計値に基づいて、ドキュメントよりキーワードを抽出するための第2のキーワード抽出手段とを含む。
【0010】
さらに好ましくは、単語らしさ算出手段は、ドキュメント分割手段、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度、出現集中度、部分文字列の長さおよびドキュメントの平均サイズに基づいて、部分文字列の単語らしさを算出するための手段を含む。
【0011】
ドキュメントの平均サイズが小さくなると、出現集中度が0に近くなる傾向にある。このため、ドキュメントの平均サイズで単語らしさの計算方法を変えることにより、出現頻度が小さくなっても適切な単語らしさを計算することができる。
【0012】
さらに好ましくは、キーワード抽出装置は、さらに、第2のキーワード抽出手段、出現頻度算出手段および出現集中度算出手段に接続され、第2のキーワード抽出手段で抽出されたキーワードを、出現頻度、出現集中度および部分文字列の長さに基づいて絞り込むための絞込み手段を含む。
【0013】
さらに好ましくは、キーワード抽出装置は、さらに、入力されたドキュメントを句読点で区切り、ドキュメント分割手段に供給するための区切り手段を含む。
【0014】
さらに好ましくは、ドキュメント分割手段は、先頭文字が予め定められた文字より始まらないように、入力されたドキュメントを部分文字列に分割するための手段を含む。
【0015】
さらに好ましくは、ドキュメント分割手段は、部分文字列の長さが予め定められた文字数以上にならないように、入力されたドキュメントを部分文字列に分割するための手段を含む。
【0016】
さらに好ましくは、ドキュメント分割手段は、単語らしさ算出手段に接続され、単語らしさ算出手段で算出されたドキュメントの所定位置より開始する第1の部分文字列の第1の単語らしさから、第1の部分文字列を1文字伸ばして得られる第2の部分文字列の第2の単語らしさへの変化に基づいて、所定位置を単語の切れ目とする妥当性の尺度を算出する妥当性算出手段と、妥当性算出手段に接続され、所定位置から前後方向に対して第1の部分文字列に1文字伸ばした場合に得られる妥当性の尺度を合計し、妥当性の尺度の合計がしきい値以上である所定箇所を単語の切れ目として抽出する切れ目抽出手段と、切れ目抽出手段に接続され、抽出された単語の切れ目を単語の開始点および終了点とする部分文字列を切り出す部分文字列切出手段とを含む。
【0017】
文字列を分割する際に、単語の前後の一部の文字が切れた部分文字列に分割されたり、助詞や助動詞が単語の前後に含まれて分割される確率が少なくなる。
【0018】
さらに好ましくは、キーワード抽出装置は、さらに、出現頻度算出手段に接続され、出現頻度算出手段で算出された第1の部分文字列の第1の出現頻度と、第2の部分文字列の第2の出現頻度との比により、第1の部分文字列の出現確率を算出する出現頻度算出手段を含み、妥当性算出手段は、第1の単語らしさから第2の単語らしさへの変化に加えて、出現確率にも基づいて所定位置を単語の切れ目とする妥当性の尺度を算出する。
【0019】
文字列を分割する際に、単語の前後の一部の文字が切れた部分文字列に分割されたり、助詞や助動詞が単語の前後に含まれて分割される確率が少なくなる。
【0020】
さらに好ましくは、部分文字列切出手段は、さらに、抽出された単語の切れ目を単語の開始点および終了点とする部分文字列であって、カタカナ、英数字、および漢字からなる文字列の前後に1文字だけ付く文字を助詞と判断し、助詞を取除いた部分文字列を切り出す。
【0021】
文字列を分割する際に、助詞や助動詞が単語の前後に含まれて分割される確率が少なくなる。
【0022】
さらに好ましくは、第2のキーワード抽出手段は、さらに出現頻度算出手段に接続され、単語らしさの合計値に基づいて、出現頻度算出手段で算出された出現頻度に依存してドキュメントよりキーワードを抽出する。
【0023】
単語に分割した後のキーワード判定の精度が向上する。
本発明の他の局面に従う情報検索装置は、ドキュメント群における各ドキュメントに含まれる部分文字列のドキュメント群中での出現頻度を求めるための出現頻度算出手段と、部分文字列のドキュメント群中での出現集中度を求めるための出現集中度算出手段と、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度および出現集中度に基づいて、入力されたドキュメントからキーワードを抽出するためのキーワード抽出手段と、キーワード抽出手段に接続され、ドキュメント群中の各ドキュメントについて、キーワード抽出手段で抽出された各キーワードとの一致度を計算するための一致度計算手段と、一致度計算手段に接続され、一致度に基づいて、ドキュメント群中の各ドキュメントについて、入力されたドキュメントとの類似度を計算するための類似度計算手段と、類似度計算手段に接続され、類似度に基づいて、入力されたドキュメントと関連するドキュメントをドキュメント群より抽出するための手段とを含む。
【0024】
入力されたドキュメントから辞書を用いずにキーワードが抽出され、そのキーワードに関連するドキュメントが抽出される。このため、辞書を必要とせずに入力されたドキュメントに関連するドキュメントを抽出することができる。
【0025】
【発明の実施の形態】
[実施の形態1]
図1を参照して、本発明の実施の形態に係るキーワード抽出装置は、ドキュメント群を受け、ドキュメント群から後述するサフィックスファイルを作成するサフィックスファイル作成部22と、サフィックスファイル作成部22に接続され、サフィックスファイル作成部22で作成されたサフィックスファイルを記憶するサフィックスファイル記憶部24と、ドキュメント群に含まれる任意のドキュメントまたはドキュメント群と同じ分野のドキュメントを受け、「、」や「。」などの文章の切れ目でドキュメント分割する区切り部28と、サフィックスファイル記憶部24および区切り部28に接続され、サフィックスファイル記憶部24に記憶されたサフィックスファイルおよび区切り部28より供給された文章に基づいて、文章を適宜区切り、後述する出現頻度α、出現集中度βおよび重みなどの計算を行なうスコア計算部26と、スコア計算部26に接続され、スコア計算部26での演算結果を記憶する演算結果記憶部30と、演算結果記憶部30に接続され、演算結果記憶部30に記憶された演算結果に基づいて、ドキュメントをキーワードの候補に分割していくドキュメント分割部32と、ドキュメント分割部32に接続され、キーワード候補を絞込み、キーワードを抽出する絞込み部34とを含む。
【0026】
[本発明の概要]
本発明は文字列の出現頻度に加えて出現集中度を示す統計量を用いることを特徴とする。本発明にかかるキーワード抽出においては、すべての部分文字列について出現集中度を求める必要があるため、単純に求めると計算量が膨大になる。我々は、多数のドキュメント内の文字列の、出現集中度を求めるための「サフィックスファイル」を用いる技術を既に確立しており、これを利用する。
【0027】
[キーワード抽出の原理]
出現集中度はadaptationとして知られる統計量であり、「ある単語が1つのドキュメントに現れたという条件で、同じ単語がもう一度そのドキュメント内に出現する確率:P(2回出現|1回出現)」の推定値である。この確率を推定するために、対象の文字列xに関して、「その文字列xを含むドキュメントの数:df(x)」と「その文字列xを2回以上含むドキュメントの数:df2(x)」を数え上げる。そして、ベイズの規則を考慮した次式(1)より上記した確率を推定する。ここでNは全ドキュメント数である。
【0028】
【数1】
このdf(x)、df2(x)の引数xは、すべての部分文字列を取り得る。単純な方法では大規模なテキストを扱う際にメモリ量または計算量のどちらかが実際的ではない程大きなものになる。
【0029】
そこで、後述するサフィックスファイルとして知られるデータ構造を利用して、部分文字列の抽出を行なう。サフィックスファイルは、テキストの5倍のメモリ空間を要するが、すべての部分文字列の位置がlog(n)(n:テキストの大きさ)のオーダの計算量で特定できる。
【0030】
サフィックスファイルの作成法と利用法については、「M.Yamamoto and K.W.Church, Using Suffix Arrays to Compute Term Frequency and Document Frequency for All Substrings in a Corpus, In proceeding of 6th Workshop on Very Large Corpora, Ed. Eugene Charniak, Motreal, pp28−37, 1998」にその詳細が開示されている。
【0031】
サフィックスファイルを使うと、ある文字列がドキュメントデータベース内に出現する回数を高速に求めることができる。サフィックスファイルは、すべてのドキュメントにおいて生じうる部分の文字列を、文字コード順に並べ替えて、通し番号(サフィックス)をつけておくことで実現する。文字列がドキュメントデータベースに出現する回数tfは、その文字列と一致する文字列がサフィックスファイルの中にいくつあるかを算出することで求められる。
【0032】
具体的には、まず、ある文字列と一致する文字列が出現するサフィックスの最小値minおよび最大値maxをそれぞれ二分探索法により求める。一致する文字列がなければ、当該文字列がドキュメントデータベースに出現する回数は0である。サフィックスの最小値minおよび最大値maxとが求まれば、当該文字列が出現する回数tfはtf=max−min+1として求められる。
【0033】
ドキュメントデータベースのドキュメントは、ドキュメント番号によって互いに区別されるものとし、サフィックスファイルに登録する部分文字列にはこのドキュメント番号をつけておく。これによって、ある部分文字列を含むドキュメントを効率的に検索することができる。また、ある部分文字列を含むドキュメントの数dfは、重複するドキュメント番号の数を数え上げ、その数をtfから引くことによって計算することができる。またこのとき、この部分文字列を2回以上含むドキュメント数がdf2である。
【0034】
ここで、文字列xの出現確率の推定値(出現頻度)であるdf(x)/Nをαとし、adaptationを推定するdf2(x)/df(x)の推定値(出現集中度)をβとする。文字列の出現がポアソン分布に従うと仮定すると、αおよびβは同じ値になる。実際のコーパスではβの値が大きく、キーワードと認める文字列ならαに比べその差は特に大きくなることが観測できる。
【0035】
出現集中の様子として、ここでは「ロボットについて」という語の部分文字列xの一例とそれに対応するdf、df2、α(=df/N)およびβ(=df2/df)とを図2に示す。ここで観測できることは二つある。一つは、キーワードを構成する文字列では、αに比べてβが大きいということである。このことは、キーワードとなる語はドキュメント中に複数回出現することが多いことを表わす。またこのことは、図2においても容易に確認できる。もう一つは、語の境界を越えるとβが小さくなることである。これは、ある語は常に同じ語として表われるが、その後に続く文字が様々に変化し得ることから導かれる。これは、図2において、部分文字列xが「ロボット」から「ロボットに」に変化すると、それまではほぼ一定値のβが小さくなっていることからも確認できる。
【0036】
βの値をもとに、文字列の単語らしさ(重み)を推定することで単語の分割を行なう。重み(score)の推定は図3のように分類される。ここでは、df2があまりに少ない文字列x、すなわちdf2が3以下の場合には(S2でNO)、単語とみなさず重みを低く定義している(S4)。単語と認められるとき、すなわちdf2が3より大きくかつtfがN以下の場合(S2でYESかつS6でNO)、βの値を推定し、その対数値を重みとする(S8)。ただし、総出現数tfがNを超えるところでは、単語らしさが正しくβに反映しない。これは、文章において助詞などは、多数出現するにも関わらず語にはならないということを意味する。そこで、tf>Nの条件を満たすところでは単語らしさが飽和するとし(S6でYES)、定数0.5の対数を重みとする(S10)。すべての文字列分割において、以上のように重みを求め、各文字列の重みの総和が最大となる分割を求める。
【0037】
ここで、単語らしさを決めるためにいくつかのしきい値を用いた。すべての単語を網羅しなければならない辞書とは異なり、サンプルの単語から値を求めることができるため、これは、新しいドキュメントでも実行できる操作である。たとえば、βの値はドキュメントの長さの影響を受けるが、このしきい値の決定により対応できる。
【0038】
そこでこの方法で分割した例および形態素解析を用いて分割した例を図4および図5にそれぞれ示す。助詞・助動詞の分割は不自然であるが、キーワードは正確に抽出できていることが観測できる。
【0039】
[文字列の分割の他の実施形態]
さらに、上述の分割方法とは異なる、他の分割方法の実施の形態を以下に述べる。
【0040】
すなわち、他の実施の形態における分割方法では、単語の始まりの切れ目と終わりの切れ目とをそれぞれ別に求めることで、文字列の分割を可能にする。具体的には、まず、文字列Xのある開始点(subStr)から切出される部分文字列の重みscore(subStr)と、部分文字列を1文字(α)伸ばして得られる部分文字列の重みscore(subStr+α)とを計算する。また、開始点subStrの次に文字αが出現する確率prob(subStr+α)を計算する。ただし、文字列Xの重み(score)は、
score(X)=log(df2/df)
に示される式に基づいて計算し、文字列Xの後ろに文字αが出現する確率は、
prob(X+α)=tf(X+α)/tf(X)
に示される式に基づいて計算する。そして、開始点subStrと文字αとの間を単語の切れ目とする妥当性の尺度wを次式で与える。
【0041】
w=f(score(subStr)−scare(subStr+α))+ g(prob(subStr+α))
=f(x)+g(y)
ここで、f(x)およびg(y)は、それぞれxおよびyの関数であり、例えば、次式のような関数と予め定める。
【0042】
f(x)=1(x>0),0(x≦0)
g(y)=1(y<0.7),0(y≧0.7)
すなわち、上述の例において、次の2式のうちのいずれかの関係を満たすならば、開始点subStrと文字αとの間を単語の切れ目と思われる場所として、妥当性の尺度w=1を与える。また、次の2式のいずれの関係をも満たすならば、w=2を与える。なお、次式において、maxProbは予め設定する値であり、例えば0.7に設定される。
【0043】
score(subStr)>scare(subStr+α)
prob(subStr+α)<maxProb
なお、上記の式は、f(x)およびg(y)の1具体例であり、次式に示すように、さらに一般化した形式であっても構わない。
【0044】
f(x)=ax+b(x>c),0(x≦c)
G(y)=dy+e(y<f),0(y≧f)
また、文字列Xの重みも、df2/dfに依存する形態だけでなく、後に詳述する他の形態であっても同様に適用可能である。
【0045】
以上の処理を、文字列Xのすべての場所から前後両方に向けて実行し、単語の切れ目として妥当性の尺度の合計値(合計尺度)zを求める。そして、実際に文字列を分割する切れ目を求めるため、合計尺度zの大きい箇所を調べる。具体的には、あるしきい値K以上のzの値を持つ箇所を文字列Xを分割する切れ目とする。合計尺度zが大きい箇所は、前後のいろいろな部分文字列から集中的に切れ目と推定された場所と考えることができる。このようにして単語の開始点もしくは終了点と思われる場所を推定することができる。また、このようにして求まった単語の開始点と終了点とから、文字列を切り出し、単語の候補とする。
【0046】
このような分割方法で文字列を分割すると、例えば図2に示される「ロボットに」を「ロボット」と「に」とに分割する場合、「ト」と「に」との切れ目の合計尺度zは、「ロボット」と「ロボットに」との関係から加算される切れ目としての妥当性の尺度wだけでなく、「ボット」と「ボットに」との関係から得られる尺度も加算されるため、誤って単語の前後の一部の文字が切れた部分文字列に分割されることなく、正確な単語の切れ目の判定に貢献し、より正確な文字列の分割が可能になる。すなわち、単語の部分文字列は、分割したい単語と同程度の重みであるという性質に基づいて、より正確な分割が可能になる。
【0047】
また、この分割方法では、重みだけでなく、特定の文字が出現する確率probをも利用しているため、助詞や助動詞が単語の前後に含まれて分割される可能性を抑えることができる。しかしながら、文書数が多く、「ロボット」と「ロボットに」とが同様に出現しなくなってくる場合、「ロボットに」を1つの単語として分割してしまう可能性も出てくる。この問題に対応するための処理について以下に述べる。
【0048】
すなわち、カタカナ、英数字、および漢字の前後に文字が1文字だけ付く場合(例えば、「を」「と」「に」「の」「は」「へ」「も」「や」「が」「で」等)は、助詞と判断し、その文字を取除く処理を実行してキーワードの判定を行なう。なお、ひらがな2文字以上が前後に付く場合は、単語の一部である可能性が高くなる(複合語等)ため、このような処理は実施しない。また、カタカナ、英数字、および漢字ではなく、ひらがなの場合も、このような処理は実施しない。
【0049】
このような処理を行なうことで、助詞や助動詞が単語の前後に含まれて分割される可能性を大きく抑えることができる。
【0050】
[キーワード候補の選別]
部分文字列xの出現頻度αが大きい場合には、その文字列xが非常に多数のドキュメントに現れる文字列であることを示す。そのためそうした文字列xはドキュメントを識別する能力が低い。逆に、αが小さい場合、たとえば一度しか出現しないような文字列は稀にしか使われない非常に特殊な文字列であると考えられる。そうした文字列は、他のドキュメントとの関連を示す能力がないと考えられる。そのため、キーワードとして望ましい文字列は、ドキュメントを特定できる単語という性質上、αがある一定の範囲内に含まれるような文字列である。さらに、単語がドキュメントの内容に関わるものかを推定するために、βの値の考慮して求めた重みを再び用いる。αおよびβの値の範囲については、コーパスを利用して学習を行ない、抽出する範囲の候補を選別する。
【0051】
具体的には例えば図6の条件をすべて満たしたものをキーワードと考えている。すなわち、部分文字列xのαの値が0.00005より大きくかつ0.1未満であり、部分文字列xの重みが−1.0よりも大きく、かつ部分文字列xの長さが1よりも大きい場合には(S12でYES、S14でYESかつS18でYES)、部分文字列xをキーワードであると決定する(S20)。それ以外の場合には、キーワードではないと決定する(S16)。なお、len[x]は文字列xの長さとする。なおここで用いた各値は、これらに限定されるものではない。たとえば、対象ドキュメント群によっても変化し得るし、抽出すべきキーワード数を調節するという観点からも変化させることができる。
【0052】
なお、ここでは図3に示される如く、β=df2/dfの対数値を重みとしている。しかし、キーワードの出現集中度βは、出現頻度α(=df/N)に依存して、図22に示すように分布するという性質がある。そこで、上述の図6に示されるキーワードの判定において、ステップS14にて部分文字列xの重みが−1.0よりも大きいか否かを判定基準としているが、判定基準をαに依存させることで、さらに適切なキーワードの判定を行なうこともできる。具体的には、部分文字列xの重みscoreについて
score≧log(df/N)/4
に示される関係を満たすか否かを判定基準とすることもできる。
【0053】
[サフィックスファイル作成部22の処理]
図7を参照して、サフィックスファイル作成部22の処理について説明する。サフィックスファイル作成部22は、ドキュメント群を形成する複数のドキュメントをつないで長大な1つの文字列を作成する(S22)。たとえば、図8(A)に示すように、この文字列が「abcabd」として求められているものとする。
【0054】
作成した文字列よりスタート位置を1文字ずつずらしながら生じうる部分文字列を作成する。また、各部分文字列に通し番号(サフィックス)をつける(S24)。文字列「abcabd」より部分文字列およびサフィックスを作成すると、図8(B)のようになる。
【0055】
部分文字列を辞書順に並べ替えることによりサフィックスファイルを作成する(S26)。サフィックスファイルのうち、サフィックスの並びのことをサフィックスアレイという。すなわち、図8(C)のようなサフィックスファイルが作成される。作成されたサフィックスファイルは、サフィックスファイル記憶部24に記憶される。このサフィックスファイルを用いることにより、もとのドキュメント群中における全文字列の出現頻度と出現集中度とを少ない計算量で求めることができる。
【0056】
[区切り部28の処理]
図9を参照して、区切り部28の処理について説明する。
【0057】
区切り部28は、ドキュメントを開き(S32)、文字列を一時的に記憶するために用意されたバッファ(図示せず)をクリアする(S34)。ドキュメントより文字列を読込む(S36)。S36における文字読込みはドキュメントの先頭文字より行なわれ、S36の処理が行なわれる毎に順次、次の文字が読込まれる。
【0058】
読込んだ文字がEOF(End Of File)であるか否か判断される(S38)。読込んだ文字がEOFである場合には(S38でYES)、バッファに格納されている文章を区切り部28からスコア計算部26に出力し(S40)、処理を終了する。
【0059】
読込んだ文字がEOFでなければ(S38でNO)、読込んだ文字が「。」または「、」などの区切り文字であるか否か判断される(S42)。読込んだ文字が区切り文字でなければ(S42でNO)、読込んだ一文字をバッファに追加する(S44)。その後、S36に戻る。
【0060】
読込んだ文字が区切り文字である場合には(S42でYES)、バッファに格納されている文章を区切り部28からスコア計算部26に出力し(S46)、バッファをクリアする(S48)。その後、S36に戻る。
【0061】
[スコア計算部26の処理]
図10および図11を参照して、スコア計算部26の処理について説明する。
【0062】
図11を参照して、スコア計算部26は、区切り部28より入力される入力文字列Xの長さをlen_Xとし、len_Xの要素数を有する配列value,tableおよびfromを作成する(S52)。ここで、table[i]は1文字目からi文字目までの重みの最適値(最大値)を示す。value[i]はfrom[i]文字目からi文字目までの重みの最適値(最大値)を示す。from[i]はi文字目における重みが最適(最大)になる区切りの開始位置を示す。
【0063】
配列value,tableおよびfromの要素を初期化する(S54)。すなわち、配列tableのすべての要素をmin_score×len_Xに初期化する。ここで、min_scoreは予め定められた定数であり、ここでは、min_score=−10000とする。また、配列valueのすべての要素を0に初期化する。さらに、配列fromのすべての要素について、k番目の要素を(k−1)に初期化する。
【0064】
次に、入力文字列の着目文字を表わすカウンタiを1に設定する(S56)。すなわち、入力文字列の先頭を指示するようにカウンタiの値を設定する。
【0065】
table[i]=min_score×len_Xであれば、table[i]=0とし、それ以外の場合には何もしない(S58)。
【0066】
カウンタjの値をi+1に設定する(S60)。文字列Xのi文字目からj文字目までの文字列をxとする(S62)。文字列xの先頭文字が「−」または「」(空白)であるか否かを判断する(S64)。文字列xの先頭文字が「−」または「 」でなければ(S64でNO)、文字列xのtf,dfおよびdf2を計算する(S66)。dfが1以上か否か、すなわち文字列xがドキュメント群内に出現したか否かが判断される(S68)。なお、tfは全ドキュメントにおいて文字列xの出現する回数を示す。
【0067】
文字列xがドキュメント群内に出現していれば(S68でYES)、df2の値がmin_df2よりも大きいか否かが判断される(S70)。min_df2は予め定められた定数であり、ここでは3としている。
【0068】
df2がmin_df2よりも大きい場合には(S70でYES)、tfが全ドキュメント数Nよりも大きいか否かが判断される(S72)。tfがNよりも大きい場合には(S72でYES)、重みscoreがlog(saturation_score)として求められる(S74)。ここで、saturation_scoreは予め定められた定数であり、ここでは0.5に設定されている。
【0069】
tfがN以下の場合には(S72でNO)、重みscoreがlog(df2/df)として求められる(S76)。
【0070】
df2がmin_df2以下の場合には(S70でNO)、重みscoreがmin_scoreとして求められる(S78)。
【0071】
S74、S76またはS78の後、table[j]が(score+table[i])よりも小さいか否かが判断される(S80)。table[j]が(score+table[j])よりも小さい場合には(S80でYES)、from[j]にiが代入され、table[j]に(score+table[i])が代入され、value[j]にscoreが代入される(S82)。
【0072】
文字列xの先頭の文字が「−」または「 」である場合(S64でYES)、dfが0の場合(S68でNO)、table[j]が(score+table[i])以上の場合(S80でNO)またはS82の処理の後、カウンタjの値を1つインクリメントする(S84)。その後、jがlen_Xよりも大きくなったか否かが判断される(S86)。
【0073】
jがlen_X以下の場合には(S86でNO)、S62に戻る。jがlen_Xより大きい場合には(S86でYES)、カウンタiの値を1つインクリメントする(S88)。その後、iがlen_Xよりも大きいか否かが判断される(S90)。iがlen_X以下の場合には(S90でNO)、S58に戻る。iがlen_Xよりも大きい場合には(S90でYES)、配列fromおよびvalueを演算結果記憶部30に記憶し(S92)、スコア計算部26における処理を終了する。
【0074】
たとえば、文字列「2000年問題の対応策について」を分割したときの配列from,valueおよびtableの値は図12に示すようになる。これより各単語は図13のように区切られる。なお、括弧内が各単語の重みを示している。
【0075】
図14を参照して、文字列aの出現するドキュメントの数dfおよび文字列aが二回以上出現するドキュメントの数df2を求める処理(図10のS66)について説明する。この処理では、同一の文字列に対する処理時間を短縮するために、文字列aと計算したdfおよびdf2とを、ドキュメントの数を記憶するためのハッシュテーブル(以下「ドキュメント数ハッシュテーブル」という)に登録することで、再度の計算を不要としている。文字列aがドキュメント数ハッシュテーブルに登録されているかを判定する。文字列aが登録済みであれば(S101でYES)、登録されているdfおよびdf2を求める(S102)。
【0076】
文字列aが登録されていなければ(S101でNO)、サフィックスファイルの先頭から順に文字列aを探し、最初に見つかった文字列aに対応するサフィックスをminとする(S103)。サフィックスminが求まらない場合、すなわちサフィックスファイルに文字列aが含まれていない場合は(S104でYES)、文字列aがドキュメントに出現しない場合である。このため、dfおよびdf2の値を0とする(S105)。
【0077】
サフィックスminが求まった場合は(S104でNO)、サフィックスファイル中、サフィックスmin以降で最後に出現する文字列aに対応するサフィックスをmaxとする(S106)。サフィックスがminからmaxまでの範囲が文字列aと一致する文字列である。これらの文字列に付されたドキュメント番号で相異なるものの数を求め、この数をdfとする(S107)。また、これらの文字列に付されたドキュメント番号を参照し、同一のドキュメント番号が2つ以上存在するものの数を求め、その数をdf2とする(S108)。
【0078】
S98の処理またはS95の処理の後、文字列aとドキュメントの数dfおよびdf2とをドキュメント数ハッシュテーブルに登録する(S109)。S99の処理またはS92の処理の後、dfおよびdf2をそれぞれ、文字列aの出現するドキュメントの数、文字列aが2回以上出現するドキュメントの数として返す(S110)。
【0079】
図15を参照して、全ドキュメントにおいて文字列aの出現する回数tfを求める処理(図10のS66)について説明する。
【0080】
サフィックスファイルの先頭から順に文字列aを探し、最初に出現する文字列aのサフィックスをminとする(S121)。サフィックスminが求まらない場合、すなわちサフィックスファイルに文字列aが含まれていない場合は(S122でYES)、tfに0を代入する(S123)。サフィックスminが求まった場合には(S122でNO)、サフィックスファイルにおいて、最後に出現する文字列aのサフィックスをmaxとする(S124)。tfを次式(2)にしたがって求める(S125)。
【0081】
tf=max−min+1 …(2)
S123またはS125の後、tfを文字列aの出現する回数として返す(S126)。
【0082】
[ドキュメント分割部32の処理]
ドキュメント分割部32は、演算結果記憶部30に記憶された配列fromおよびvalueに基づいて、入力されたドキュメントを分割する。すなわち、ドキュメントを分割した際の重みscoreの合計値が最大となるように、ドキュメントを分割する。
【0083】
[絞込み部34の処理]
絞込み部34は、上述の[キーワード候補の選別]で説明した図6のフローチャートで示される処理を実行し、キーワードを絞り込む。
【0084】
[キーワード抽出装置20の構成例]
上述したキーワード抽出装置20は、コンピュータにより実現することが可能である。図16を参照して、キーワード抽出装置20は、コンピュータ41と、コンピュータ41に指示を与えるためのキーボード45およびマウス46と、コンピュータ41により演算された結果等を表示するためのディスプレイ42と、コンピュータ41が実行するプログラムをそれぞれ読取るための磁気テープ装置43、CD−ROM(Compact Disc−Read Only Memory)装置47および通信モデム49とを含む。
【0085】
キーワード抽出装置20のプログラムは、コンピュータ41で読取可能な記録媒体である磁気テープ44またはCD−ROM48に記録され、磁気テープ装置43およびCD−ROM装置47でそれぞれ読取られる。または、通信回線を介して通信モデム49で読取られる。
【0086】
図17を参照して、コンピュータ41は、磁気テープ装置43、CD−ROM装置47または通信モデム49を介して読取られたプログラムを実行するためのCPU(Central Processing Unit)50と、コンピュータ41の動作に必要なその他のプログラムおよびデータを記憶するためのROM(Read Only Memory)51と、プログラム、プログラム実行時のパラメータ、演算結果などを記憶するためのRAM(Random Access Memory)52と、プログラムおよびデータなどを記憶するための磁気ディスク53とを含む。
【0087】
磁気テープ装置43、CD−ROM装置47または通信モデム49により読取られたプログラムは、CPU50で実行され、キーワード抽出処理が実行される。
【0088】
なお、サフィックスファイル記憶部24および演算結果記憶部30は、RAM52または磁気ディスク53により実現される。その他のキーワード抽出装置20の構成部は、CPU50で実行されるソフトウェアにより実現される。
【0089】
[文字列xの重みの計算式の変形例]
図3のS8または図10のS76では、文字列xの重みをlog(df2/df)として求めているが、出現頻度、出現集中度、部分文字列長およびドキュメントの平均サイズを考慮して、ドキュメントの平均サイズが200文字より大きいときは、log{(N/df)×(df2/df)×len(x)}として重みを求め、ドキュメントの平均サイズが200文字以下の場合には、log{(N/df)×len(x)}として重みを求めるようにしてもよい。各ドキュメントが小さくなると、出現集中度が0に近くなる傾向がある。このため、ドキュメントの平均サイズで重みの計算方法を変えることにより、出現頻度の値が小さくなっても適切な重みを計算することが可能になる。
【0090】
以上説明したように、本実施の形態によると形態素解析のように辞書を予め必要としなくてもキーワードの抽出ができる。
【0091】
[実施の形態2]
本実施の形態に係る情報検索装置は、実施の形態1で説明したのと同様のコンピュータにより実現される。
【0092】
本実施の形態は、抽出したキーワードによる文字列同士の類似度の算出方法に関する。入力された文字列とデータベースに登録された複数のドキュメントとの類似度を算出することが想定されている。文字列同士の一致部分を求める際に、データベース中のすべてのドキュメントそれぞれに対して、入力文字列から抽出したキーワードを含むドキュメントをサフィックスファイルの利用によって効率的にデータベース内から検索するという方法を用いている。
【0093】
一致情報の収集は抽出されたキーワードに対し、次のような方法で行なう。ドキュメントデータベース全体からそのキーワードを含むドキュメントを求める。それら各ドキュメント内におけるそのキーワードの出現場所、入力文字列におけるキーワードの出現場所、キーワードの長さ、キーワードの重みを一致情報として記録する。
【0094】
通常、得られた一致情報は、記録・管理することなく、そのまま重みが加算され類似度が算出される。しかし、これを記録・管理することにより、一致したキーワードの重みを加算して類似度を算出する方法だけでなく、高速性を保ったまま、多くの類似度算出方法に適用可能としている。
【0095】
入力文字列とデータベース内のドキュメントとの類似度は、一致したキーワードに付けられた重みを加算することによって算出される。
【0096】
本発明において、計算対象とするキーワードを抽出して算出する文字列類似度によるドキュメント検索プログラムの処理フローを図18〜図21に示す。本プログラムは、入力した検索文章に基づき、ドキュメントデータベースを検索し、類似度の高い複数のドキュメントを検索する。
【0097】
図18を参照して、検索文章に基づいてドキュメントデータベースを検索し、類似度の高いドキュメントを選び出して出力する処理について説明する。
【0098】
まず、ある文字列の出現回数を効率よく計算する準備のために、ドキュメントデータベースに含まれる全ドキュメントを統合してサフィックスファイル(Suffix File)を作成する(S131)。
【0099】
次に、検索文章を文字列Xに読込む(S132)。文字列Xから抽出したキーワードを、キーワード管理テーブルに記録する(S133)。
【0100】
キーワード管理テーブルに記録された各キーワードに対し、一致情報を収集し、一致情報管理テーブルへの記録を行なう(S134)。一致情報とは、キーワードの文字列Xにおける出現場所、キーワードのドキュメント内における出現場所、キーワードの長さおよびキーワードの重みを表わす情報のことである。一致情報管理テーブルには、ドキュメント番号毎に、一致情報がリストとして記録される。S134の処理については後に詳述する。
【0101】
一致情報管理テーブルからある1つのドキュメントYのリストを取出す(S135)。
【0102】
取出したリストより文字列XおよびドキュメントYの類似度を計算する(S136)。S136の処理については後に詳述する。
【0103】
求めた類似度とドキュメント番号とを組にしてドキュメント管理テーブルに登録する(S137)。
【0104】
一致情報管理テーブルに記録されたすべてのリストについて類似度を計算したかどうかを判定する(S138)。すべてのリストについて類似度を計算していなければ(S138でNO)、S135に戻る。
【0105】
すべてのリストについて類似度を計算していれば(S138でYES)、ドキュメント管理テーブルの類似度とドキュメント番号との組を、類似度の高い順に並べ替える(S139)。
【0106】
類似度の高いドキュメントを出力する(S140)。出力するドキュメントは、1つだけであってもよいし、予め定められた所定の個数であってもよい。または、所定の類似度以上のドキュメントを出力するようにしてもよい。
【0107】
図19を参照して、キーワード管理テーブルに記録された各キーワードと、ドキュメントデータベース内の各ドキュメントとの一致情報を収集し、その情報を一致情報管理テーブルに記録する処理(図18のS134)について説明する。
【0108】
キーワード管理テーブルからある1つのキーワードを選びaとする(S151)。ドキュメントデータベース内でキーワードaが出現する場所をすべて求め、これを出現する場所の順に並べ替える(S152)。
【0109】
キーワードaの各出現場所に対し、キーワードaを含むドキュメント番号を求める。このとき、キーワードaは出現場所順に並んでいるので、得られるドキュメント番号も小さい順に並んでいる(S153)。
【0110】
キーワードaの出現場所を、出現場所の前から順に1つ選ぶ(S154)。選んだキーワードaの出現場所が、それを含むドキュメント内において最も前方にある出現場所かどうかを判定する(S155)。すなわち、選んだ出現場所のドキュメントと、1つ前に選んだ出現場所のドキュメントとが異なっていれば、それは選んだドキュメントにおける最初の出現場所である。選んだ出現場所のドキュメントと、1つ前に選んだ出現場所のドキュメントとが同じであれば、それは選んだドキュメントにおける2番目以降の出現場所である。
【0111】
キーワードaの出現場所がドキュメント内において最初であると判断された場合には(S155でYES)、入力文字列Xにおけるキーワードaの出現場所(以下「startX」という)、ドキュメント内におけるキーワードaの出現場所(以下「startdoc」という)、キーワードaの長さ(以下「termlength」という)およびキーワードaの重み(以下「score」という)を組にして一致情報管理テーブルに記録する(S156)。
【0112】
図20を参照して、一致情報管理テーブルは、ドキュメント情報毎の一致情報のリストによって構成される。ドキュメント番号0002に一致情報1および5が、ドキュメント番号0100に一致情報2、3および6が、ドキュメント番号0111に一致情報4および7がリストとして記録されている。それぞれの一致情報には、入力文字列XにおけるキーワードのstartX、startdoc、termlengthおよびscoreが格納されている。
【0113】
新たにドキュメント番号0002に関する一致情報8が得られた場合、図20に示すように、これまで一致情報5を指していたリストの先頭を指すポインタは一致情報8を指し、一致情報8から一致情報5へのポインタが張られ、ドキュメント情報0002のリストの先頭に一致情報8は記録される。
【0114】
再度図19を参照して、S156の後またはキーワードaの出現場所がドキュメント内において2番目以降だと判断された場合には(S155でNO)、キーワードaの出現場所をすべて調べたか否かを判定する(S157)。
【0115】
調べていない出現場所があれば(S157でNO)、S154に戻る。すべての出現場所について調べて終えていれば(S157でYES)、キーワード管理テーブル内のすべてのキーワードについて、一致情報の収集を行なったか否かを判定する(S158)。一致情報の収集をしていないキーワードが存在する場合には(S158でNO)、まだ選んでいないキーワードaを読込むためにS151に戻る。すべてのキーワードについて一致情報の収集が終わっていれば(S158でYES)、得られた一致情報管理テーブルを返す(S159)。
【0116】
図21を参照して、入力文章XとドキュメントYとの類似度を、一致情報管理テーブルから取出したリストを用いて、一致した文字列の重みの加算によって求める処理(図18のS136)について説明する。
【0117】
XとYの類似度(以下「sim」という)を0に初期化する(S161)。一致情報管理テーブルに記録されているYに関するリストからある一つの一致情報を選び、Iとする(S162)。
【0118】
simに一致情報Iのscoreを加算する(S163)。ドキュメントYに関する一致情報のリストに記録されたすべての一致情報について調べたかどうかを判定する(S164)。もし、調べていない一致情報があれば(S164でNO)、S162に戻る。すべての一致情報について調べていれば(S164でYES)、得られたsimを入力文章XとドキュメントYとの類似度として返す(S165)。
【0119】
以上説明したように本実施の形態に係る情報検索装置によると、ユーザが入力したドキュメントと類似するドキュメントを予め登録されているデータベースの中から探し出すことができるようになる。このため、たとえばFAQ(Frequently Asked Questions)システムなどにおいて、ユーザが質問を入力文章として与えた場合に、その入力文章に対応するFAQを取出すことができるようになる。
【0120】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0121】
【発明の効果】
辞書を必要とせずにドキュメントよりキーワードを抽出することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るキーワード抽出装置の構成を示すブロック図である。
【図2】「ロボットについて」という語の部分文字列xとそれに対応するdf、df2、αおよびβの値を示す図である。
【図3】文字列の単語らしさ(重み)を推定するための処理のフローチャートである。
【図4】文字列の重みを用いてドキュメントを分割した例を示す図である。
【図5】形態素解析によりドキュメントを分割した例を示す図である。
【図6】キーワードを抽出するための処理のフローチャートである。
【図7】サフィックスファイル作成部22の行なう処理のフローチャートである。
【図8】サフィックスファイルを説明するための図である。
【図9】区切り部28の行なう処理のフローチャートである。
【図10】スコア計算部26の実行する処理のフローチャートである。
【図11】スコア計算部26での重み計算に用いられる配列value、tableおよびfromを説明するための図である。
【図12】文字列「2000年問題の対応策について」を分割したときの配列from、valueおよびtableの値を示す図である。
【図13】重みにより各単語を区切った一例を示す図である。
【図14】文字列aの出現するドキュメントの数dfおよび文字列aが二回以上出現するドキュメントの数df2を求める処理のフローチャートである。
【図15】全ドキュメントにおいて文字列aの出現する回数tfを求める処理のフローチャートである。
【図16】キーワード抽出装置を実現するコンピュータの外観図である。
【図17】図16に示すコンピュータのハードウェア構成を示す図である。
【図18】検索文章に基づいてドキュメントデータベースを検索し、類似度の高いドキュメントを選び出して出力する処理のフローチャートである。
【図19】キーワード管理テーブルに記録された各キーワードと、ドキュメントデータベース内の各ドキュメントとの一致情報を収集し、その情報を一致情報管理テーブルに記録する処理のフローチャートである。
【図20】一致情報管理テーブルの構成を示す図である。
【図21】入力文章XとドキュメントYとの類似度を、一致情報管理テーブルから取出したリストを用いて、一致した文字列の重みの加算によって求める処理のフローチャートである。
【図22】キーワードの出現集中度βの分布を示す図である。
【符号の説明】
20 キーワード抽出装置、22 サフィックスファイル作成部、24 サフィックスファイル記憶部、26 スコア計算部、28 区切り部、30 演算結果記憶部、32 ドキュメント分割部、34 絞込み部、41 コンピュータ、42 ディスプレイ、43 磁気テープ装置、44 磁気テープ、45 キーボード、46 マウス、47 CD−ROM装置、48 CD−ROM、49 通信モデム、50 CPU、51 ROM、52 RAM、53 磁気ディスク。
【発明の属する技術分野】
本発明はキーワード抽出装置および情報検索装置に関し、特に、辞書を必要とせずにドキュメント群からキーワードを抽出可能なキーワード抽出装置および情報検索装置に関する。
【0002】
【従来の技術】
最新の技術情報の速報やニュースなどを整理する際には、検索のために記事の内容を特定できるキーワードの付与が行なわれている。キーワードを付与する作業を自動化できれば、キーワードが付与されていないドキュメントの操作も容易になる。これまで検討されているキーワード自動抽出は、辞書を用いて形態素解析を行ない、その後、品詞情報と頻度情報とをもとにキーワードを弁別する手法により行なわれている。
【0003】
【発明が解決しようとする課題】
しかし、辞書を用いる手法は日々新しい単語が生まれるインターネット時代の情報処理としては問題がある。その理由として、処理の自動化が必要な最新の文章からキーワードを辞書に登録し続ける必要があるため生産性が悪いことと、辞書に登録されていない全く未知の用語に対する汎用性がないことが挙げられる。
【0004】
また、従来のキーワード抽出方法では、正しく単語に分割されない場合があり、そのために、単語の前後の一部の文字が切れた部分文字列に分割されてしまうという問題がある。また、助詞や助動詞が単語の前後に含まれて分割されてしまうという問題もある。
【0005】
本発明は上述の課題を解決するためになされたもので、その目的は、辞書を必要とせずにドキュメントよりキーワードを抽出可能なキーワード抽出装置を提供することである。
【0006】
本発明の他の目的は、辞書を必要とせずにあるドキュメントに関連したドキュメントをドキュメント群から抽出可能な情報検索装置を提供することである。
【0007】
【課題を解決するための手段】
本発明のある局面に従うキーワード抽出装置は、ドキュメント群における各ドキュメントに含まれる部分文字列のドキュメント群中での出現頻度を求めるための出現頻度算出手段と、部分文字列のドキュメント群中での出現集中度を求めるための出現集中度算出手段と、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度および出現集中度に基づいて、入力されたドキュメントからキーワードを抽出するための第1のキーワード抽出手段とを含む。
【0008】
部分文字列の出現頻度および出現集中度に基づいて、キーワードを抽出する。このため、辞書を必要とせずにドキュメントよりキーワードを抽出することができる。
【0009】
好ましくは、第1のキーワード抽出手段は、入力されたドキュメントを部分文字列に分割するためのドキュメント分割手段と、ドキュメント分割手段、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度および出現集中度に基づいて、部分文字列の単語らしさを算出するための単語らしさ算出手段と、単語らしさ算出手段に接続され、単語らしさの合計値に基づいて、ドキュメントよりキーワードを抽出するための第2のキーワード抽出手段とを含む。
【0010】
さらに好ましくは、単語らしさ算出手段は、ドキュメント分割手段、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度、出現集中度、部分文字列の長さおよびドキュメントの平均サイズに基づいて、部分文字列の単語らしさを算出するための手段を含む。
【0011】
ドキュメントの平均サイズが小さくなると、出現集中度が0に近くなる傾向にある。このため、ドキュメントの平均サイズで単語らしさの計算方法を変えることにより、出現頻度が小さくなっても適切な単語らしさを計算することができる。
【0012】
さらに好ましくは、キーワード抽出装置は、さらに、第2のキーワード抽出手段、出現頻度算出手段および出現集中度算出手段に接続され、第2のキーワード抽出手段で抽出されたキーワードを、出現頻度、出現集中度および部分文字列の長さに基づいて絞り込むための絞込み手段を含む。
【0013】
さらに好ましくは、キーワード抽出装置は、さらに、入力されたドキュメントを句読点で区切り、ドキュメント分割手段に供給するための区切り手段を含む。
【0014】
さらに好ましくは、ドキュメント分割手段は、先頭文字が予め定められた文字より始まらないように、入力されたドキュメントを部分文字列に分割するための手段を含む。
【0015】
さらに好ましくは、ドキュメント分割手段は、部分文字列の長さが予め定められた文字数以上にならないように、入力されたドキュメントを部分文字列に分割するための手段を含む。
【0016】
さらに好ましくは、ドキュメント分割手段は、単語らしさ算出手段に接続され、単語らしさ算出手段で算出されたドキュメントの所定位置より開始する第1の部分文字列の第1の単語らしさから、第1の部分文字列を1文字伸ばして得られる第2の部分文字列の第2の単語らしさへの変化に基づいて、所定位置を単語の切れ目とする妥当性の尺度を算出する妥当性算出手段と、妥当性算出手段に接続され、所定位置から前後方向に対して第1の部分文字列に1文字伸ばした場合に得られる妥当性の尺度を合計し、妥当性の尺度の合計がしきい値以上である所定箇所を単語の切れ目として抽出する切れ目抽出手段と、切れ目抽出手段に接続され、抽出された単語の切れ目を単語の開始点および終了点とする部分文字列を切り出す部分文字列切出手段とを含む。
【0017】
文字列を分割する際に、単語の前後の一部の文字が切れた部分文字列に分割されたり、助詞や助動詞が単語の前後に含まれて分割される確率が少なくなる。
【0018】
さらに好ましくは、キーワード抽出装置は、さらに、出現頻度算出手段に接続され、出現頻度算出手段で算出された第1の部分文字列の第1の出現頻度と、第2の部分文字列の第2の出現頻度との比により、第1の部分文字列の出現確率を算出する出現頻度算出手段を含み、妥当性算出手段は、第1の単語らしさから第2の単語らしさへの変化に加えて、出現確率にも基づいて所定位置を単語の切れ目とする妥当性の尺度を算出する。
【0019】
文字列を分割する際に、単語の前後の一部の文字が切れた部分文字列に分割されたり、助詞や助動詞が単語の前後に含まれて分割される確率が少なくなる。
【0020】
さらに好ましくは、部分文字列切出手段は、さらに、抽出された単語の切れ目を単語の開始点および終了点とする部分文字列であって、カタカナ、英数字、および漢字からなる文字列の前後に1文字だけ付く文字を助詞と判断し、助詞を取除いた部分文字列を切り出す。
【0021】
文字列を分割する際に、助詞や助動詞が単語の前後に含まれて分割される確率が少なくなる。
【0022】
さらに好ましくは、第2のキーワード抽出手段は、さらに出現頻度算出手段に接続され、単語らしさの合計値に基づいて、出現頻度算出手段で算出された出現頻度に依存してドキュメントよりキーワードを抽出する。
【0023】
単語に分割した後のキーワード判定の精度が向上する。
本発明の他の局面に従う情報検索装置は、ドキュメント群における各ドキュメントに含まれる部分文字列のドキュメント群中での出現頻度を求めるための出現頻度算出手段と、部分文字列のドキュメント群中での出現集中度を求めるための出現集中度算出手段と、出現頻度算出手段および出現集中度算出手段に接続され、出現頻度および出現集中度に基づいて、入力されたドキュメントからキーワードを抽出するためのキーワード抽出手段と、キーワード抽出手段に接続され、ドキュメント群中の各ドキュメントについて、キーワード抽出手段で抽出された各キーワードとの一致度を計算するための一致度計算手段と、一致度計算手段に接続され、一致度に基づいて、ドキュメント群中の各ドキュメントについて、入力されたドキュメントとの類似度を計算するための類似度計算手段と、類似度計算手段に接続され、類似度に基づいて、入力されたドキュメントと関連するドキュメントをドキュメント群より抽出するための手段とを含む。
【0024】
入力されたドキュメントから辞書を用いずにキーワードが抽出され、そのキーワードに関連するドキュメントが抽出される。このため、辞書を必要とせずに入力されたドキュメントに関連するドキュメントを抽出することができる。
【0025】
【発明の実施の形態】
[実施の形態1]
図1を参照して、本発明の実施の形態に係るキーワード抽出装置は、ドキュメント群を受け、ドキュメント群から後述するサフィックスファイルを作成するサフィックスファイル作成部22と、サフィックスファイル作成部22に接続され、サフィックスファイル作成部22で作成されたサフィックスファイルを記憶するサフィックスファイル記憶部24と、ドキュメント群に含まれる任意のドキュメントまたはドキュメント群と同じ分野のドキュメントを受け、「、」や「。」などの文章の切れ目でドキュメント分割する区切り部28と、サフィックスファイル記憶部24および区切り部28に接続され、サフィックスファイル記憶部24に記憶されたサフィックスファイルおよび区切り部28より供給された文章に基づいて、文章を適宜区切り、後述する出現頻度α、出現集中度βおよび重みなどの計算を行なうスコア計算部26と、スコア計算部26に接続され、スコア計算部26での演算結果を記憶する演算結果記憶部30と、演算結果記憶部30に接続され、演算結果記憶部30に記憶された演算結果に基づいて、ドキュメントをキーワードの候補に分割していくドキュメント分割部32と、ドキュメント分割部32に接続され、キーワード候補を絞込み、キーワードを抽出する絞込み部34とを含む。
【0026】
[本発明の概要]
本発明は文字列の出現頻度に加えて出現集中度を示す統計量を用いることを特徴とする。本発明にかかるキーワード抽出においては、すべての部分文字列について出現集中度を求める必要があるため、単純に求めると計算量が膨大になる。我々は、多数のドキュメント内の文字列の、出現集中度を求めるための「サフィックスファイル」を用いる技術を既に確立しており、これを利用する。
【0027】
[キーワード抽出の原理]
出現集中度はadaptationとして知られる統計量であり、「ある単語が1つのドキュメントに現れたという条件で、同じ単語がもう一度そのドキュメント内に出現する確率:P(2回出現|1回出現)」の推定値である。この確率を推定するために、対象の文字列xに関して、「その文字列xを含むドキュメントの数:df(x)」と「その文字列xを2回以上含むドキュメントの数:df2(x)」を数え上げる。そして、ベイズの規則を考慮した次式(1)より上記した確率を推定する。ここでNは全ドキュメント数である。
【0028】
【数1】
このdf(x)、df2(x)の引数xは、すべての部分文字列を取り得る。単純な方法では大規模なテキストを扱う際にメモリ量または計算量のどちらかが実際的ではない程大きなものになる。
【0029】
そこで、後述するサフィックスファイルとして知られるデータ構造を利用して、部分文字列の抽出を行なう。サフィックスファイルは、テキストの5倍のメモリ空間を要するが、すべての部分文字列の位置がlog(n)(n:テキストの大きさ)のオーダの計算量で特定できる。
【0030】
サフィックスファイルの作成法と利用法については、「M.Yamamoto and K.W.Church, Using Suffix Arrays to Compute Term Frequency and Document Frequency for All Substrings in a Corpus, In proceeding of 6th Workshop on Very Large Corpora, Ed. Eugene Charniak, Motreal, pp28−37, 1998」にその詳細が開示されている。
【0031】
サフィックスファイルを使うと、ある文字列がドキュメントデータベース内に出現する回数を高速に求めることができる。サフィックスファイルは、すべてのドキュメントにおいて生じうる部分の文字列を、文字コード順に並べ替えて、通し番号(サフィックス)をつけておくことで実現する。文字列がドキュメントデータベースに出現する回数tfは、その文字列と一致する文字列がサフィックスファイルの中にいくつあるかを算出することで求められる。
【0032】
具体的には、まず、ある文字列と一致する文字列が出現するサフィックスの最小値minおよび最大値maxをそれぞれ二分探索法により求める。一致する文字列がなければ、当該文字列がドキュメントデータベースに出現する回数は0である。サフィックスの最小値minおよび最大値maxとが求まれば、当該文字列が出現する回数tfはtf=max−min+1として求められる。
【0033】
ドキュメントデータベースのドキュメントは、ドキュメント番号によって互いに区別されるものとし、サフィックスファイルに登録する部分文字列にはこのドキュメント番号をつけておく。これによって、ある部分文字列を含むドキュメントを効率的に検索することができる。また、ある部分文字列を含むドキュメントの数dfは、重複するドキュメント番号の数を数え上げ、その数をtfから引くことによって計算することができる。またこのとき、この部分文字列を2回以上含むドキュメント数がdf2である。
【0034】
ここで、文字列xの出現確率の推定値(出現頻度)であるdf(x)/Nをαとし、adaptationを推定するdf2(x)/df(x)の推定値(出現集中度)をβとする。文字列の出現がポアソン分布に従うと仮定すると、αおよびβは同じ値になる。実際のコーパスではβの値が大きく、キーワードと認める文字列ならαに比べその差は特に大きくなることが観測できる。
【0035】
出現集中の様子として、ここでは「ロボットについて」という語の部分文字列xの一例とそれに対応するdf、df2、α(=df/N)およびβ(=df2/df)とを図2に示す。ここで観測できることは二つある。一つは、キーワードを構成する文字列では、αに比べてβが大きいということである。このことは、キーワードとなる語はドキュメント中に複数回出現することが多いことを表わす。またこのことは、図2においても容易に確認できる。もう一つは、語の境界を越えるとβが小さくなることである。これは、ある語は常に同じ語として表われるが、その後に続く文字が様々に変化し得ることから導かれる。これは、図2において、部分文字列xが「ロボット」から「ロボットに」に変化すると、それまではほぼ一定値のβが小さくなっていることからも確認できる。
【0036】
βの値をもとに、文字列の単語らしさ(重み)を推定することで単語の分割を行なう。重み(score)の推定は図3のように分類される。ここでは、df2があまりに少ない文字列x、すなわちdf2が3以下の場合には(S2でNO)、単語とみなさず重みを低く定義している(S4)。単語と認められるとき、すなわちdf2が3より大きくかつtfがN以下の場合(S2でYESかつS6でNO)、βの値を推定し、その対数値を重みとする(S8)。ただし、総出現数tfがNを超えるところでは、単語らしさが正しくβに反映しない。これは、文章において助詞などは、多数出現するにも関わらず語にはならないということを意味する。そこで、tf>Nの条件を満たすところでは単語らしさが飽和するとし(S6でYES)、定数0.5の対数を重みとする(S10)。すべての文字列分割において、以上のように重みを求め、各文字列の重みの総和が最大となる分割を求める。
【0037】
ここで、単語らしさを決めるためにいくつかのしきい値を用いた。すべての単語を網羅しなければならない辞書とは異なり、サンプルの単語から値を求めることができるため、これは、新しいドキュメントでも実行できる操作である。たとえば、βの値はドキュメントの長さの影響を受けるが、このしきい値の決定により対応できる。
【0038】
そこでこの方法で分割した例および形態素解析を用いて分割した例を図4および図5にそれぞれ示す。助詞・助動詞の分割は不自然であるが、キーワードは正確に抽出できていることが観測できる。
【0039】
[文字列の分割の他の実施形態]
さらに、上述の分割方法とは異なる、他の分割方法の実施の形態を以下に述べる。
【0040】
すなわち、他の実施の形態における分割方法では、単語の始まりの切れ目と終わりの切れ目とをそれぞれ別に求めることで、文字列の分割を可能にする。具体的には、まず、文字列Xのある開始点(subStr)から切出される部分文字列の重みscore(subStr)と、部分文字列を1文字(α)伸ばして得られる部分文字列の重みscore(subStr+α)とを計算する。また、開始点subStrの次に文字αが出現する確率prob(subStr+α)を計算する。ただし、文字列Xの重み(score)は、
score(X)=log(df2/df)
に示される式に基づいて計算し、文字列Xの後ろに文字αが出現する確率は、
prob(X+α)=tf(X+α)/tf(X)
に示される式に基づいて計算する。そして、開始点subStrと文字αとの間を単語の切れ目とする妥当性の尺度wを次式で与える。
【0041】
w=f(score(subStr)−scare(subStr+α))+ g(prob(subStr+α))
=f(x)+g(y)
ここで、f(x)およびg(y)は、それぞれxおよびyの関数であり、例えば、次式のような関数と予め定める。
【0042】
f(x)=1(x>0),0(x≦0)
g(y)=1(y<0.7),0(y≧0.7)
すなわち、上述の例において、次の2式のうちのいずれかの関係を満たすならば、開始点subStrと文字αとの間を単語の切れ目と思われる場所として、妥当性の尺度w=1を与える。また、次の2式のいずれの関係をも満たすならば、w=2を与える。なお、次式において、maxProbは予め設定する値であり、例えば0.7に設定される。
【0043】
score(subStr)>scare(subStr+α)
prob(subStr+α)<maxProb
なお、上記の式は、f(x)およびg(y)の1具体例であり、次式に示すように、さらに一般化した形式であっても構わない。
【0044】
f(x)=ax+b(x>c),0(x≦c)
G(y)=dy+e(y<f),0(y≧f)
また、文字列Xの重みも、df2/dfに依存する形態だけでなく、後に詳述する他の形態であっても同様に適用可能である。
【0045】
以上の処理を、文字列Xのすべての場所から前後両方に向けて実行し、単語の切れ目として妥当性の尺度の合計値(合計尺度)zを求める。そして、実際に文字列を分割する切れ目を求めるため、合計尺度zの大きい箇所を調べる。具体的には、あるしきい値K以上のzの値を持つ箇所を文字列Xを分割する切れ目とする。合計尺度zが大きい箇所は、前後のいろいろな部分文字列から集中的に切れ目と推定された場所と考えることができる。このようにして単語の開始点もしくは終了点と思われる場所を推定することができる。また、このようにして求まった単語の開始点と終了点とから、文字列を切り出し、単語の候補とする。
【0046】
このような分割方法で文字列を分割すると、例えば図2に示される「ロボットに」を「ロボット」と「に」とに分割する場合、「ト」と「に」との切れ目の合計尺度zは、「ロボット」と「ロボットに」との関係から加算される切れ目としての妥当性の尺度wだけでなく、「ボット」と「ボットに」との関係から得られる尺度も加算されるため、誤って単語の前後の一部の文字が切れた部分文字列に分割されることなく、正確な単語の切れ目の判定に貢献し、より正確な文字列の分割が可能になる。すなわち、単語の部分文字列は、分割したい単語と同程度の重みであるという性質に基づいて、より正確な分割が可能になる。
【0047】
また、この分割方法では、重みだけでなく、特定の文字が出現する確率probをも利用しているため、助詞や助動詞が単語の前後に含まれて分割される可能性を抑えることができる。しかしながら、文書数が多く、「ロボット」と「ロボットに」とが同様に出現しなくなってくる場合、「ロボットに」を1つの単語として分割してしまう可能性も出てくる。この問題に対応するための処理について以下に述べる。
【0048】
すなわち、カタカナ、英数字、および漢字の前後に文字が1文字だけ付く場合(例えば、「を」「と」「に」「の」「は」「へ」「も」「や」「が」「で」等)は、助詞と判断し、その文字を取除く処理を実行してキーワードの判定を行なう。なお、ひらがな2文字以上が前後に付く場合は、単語の一部である可能性が高くなる(複合語等)ため、このような処理は実施しない。また、カタカナ、英数字、および漢字ではなく、ひらがなの場合も、このような処理は実施しない。
【0049】
このような処理を行なうことで、助詞や助動詞が単語の前後に含まれて分割される可能性を大きく抑えることができる。
【0050】
[キーワード候補の選別]
部分文字列xの出現頻度αが大きい場合には、その文字列xが非常に多数のドキュメントに現れる文字列であることを示す。そのためそうした文字列xはドキュメントを識別する能力が低い。逆に、αが小さい場合、たとえば一度しか出現しないような文字列は稀にしか使われない非常に特殊な文字列であると考えられる。そうした文字列は、他のドキュメントとの関連を示す能力がないと考えられる。そのため、キーワードとして望ましい文字列は、ドキュメントを特定できる単語という性質上、αがある一定の範囲内に含まれるような文字列である。さらに、単語がドキュメントの内容に関わるものかを推定するために、βの値の考慮して求めた重みを再び用いる。αおよびβの値の範囲については、コーパスを利用して学習を行ない、抽出する範囲の候補を選別する。
【0051】
具体的には例えば図6の条件をすべて満たしたものをキーワードと考えている。すなわち、部分文字列xのαの値が0.00005より大きくかつ0.1未満であり、部分文字列xの重みが−1.0よりも大きく、かつ部分文字列xの長さが1よりも大きい場合には(S12でYES、S14でYESかつS18でYES)、部分文字列xをキーワードであると決定する(S20)。それ以外の場合には、キーワードではないと決定する(S16)。なお、len[x]は文字列xの長さとする。なおここで用いた各値は、これらに限定されるものではない。たとえば、対象ドキュメント群によっても変化し得るし、抽出すべきキーワード数を調節するという観点からも変化させることができる。
【0052】
なお、ここでは図3に示される如く、β=df2/dfの対数値を重みとしている。しかし、キーワードの出現集中度βは、出現頻度α(=df/N)に依存して、図22に示すように分布するという性質がある。そこで、上述の図6に示されるキーワードの判定において、ステップS14にて部分文字列xの重みが−1.0よりも大きいか否かを判定基準としているが、判定基準をαに依存させることで、さらに適切なキーワードの判定を行なうこともできる。具体的には、部分文字列xの重みscoreについて
score≧log(df/N)/4
に示される関係を満たすか否かを判定基準とすることもできる。
【0053】
[サフィックスファイル作成部22の処理]
図7を参照して、サフィックスファイル作成部22の処理について説明する。サフィックスファイル作成部22は、ドキュメント群を形成する複数のドキュメントをつないで長大な1つの文字列を作成する(S22)。たとえば、図8(A)に示すように、この文字列が「abcabd」として求められているものとする。
【0054】
作成した文字列よりスタート位置を1文字ずつずらしながら生じうる部分文字列を作成する。また、各部分文字列に通し番号(サフィックス)をつける(S24)。文字列「abcabd」より部分文字列およびサフィックスを作成すると、図8(B)のようになる。
【0055】
部分文字列を辞書順に並べ替えることによりサフィックスファイルを作成する(S26)。サフィックスファイルのうち、サフィックスの並びのことをサフィックスアレイという。すなわち、図8(C)のようなサフィックスファイルが作成される。作成されたサフィックスファイルは、サフィックスファイル記憶部24に記憶される。このサフィックスファイルを用いることにより、もとのドキュメント群中における全文字列の出現頻度と出現集中度とを少ない計算量で求めることができる。
【0056】
[区切り部28の処理]
図9を参照して、区切り部28の処理について説明する。
【0057】
区切り部28は、ドキュメントを開き(S32)、文字列を一時的に記憶するために用意されたバッファ(図示せず)をクリアする(S34)。ドキュメントより文字列を読込む(S36)。S36における文字読込みはドキュメントの先頭文字より行なわれ、S36の処理が行なわれる毎に順次、次の文字が読込まれる。
【0058】
読込んだ文字がEOF(End Of File)であるか否か判断される(S38)。読込んだ文字がEOFである場合には(S38でYES)、バッファに格納されている文章を区切り部28からスコア計算部26に出力し(S40)、処理を終了する。
【0059】
読込んだ文字がEOFでなければ(S38でNO)、読込んだ文字が「。」または「、」などの区切り文字であるか否か判断される(S42)。読込んだ文字が区切り文字でなければ(S42でNO)、読込んだ一文字をバッファに追加する(S44)。その後、S36に戻る。
【0060】
読込んだ文字が区切り文字である場合には(S42でYES)、バッファに格納されている文章を区切り部28からスコア計算部26に出力し(S46)、バッファをクリアする(S48)。その後、S36に戻る。
【0061】
[スコア計算部26の処理]
図10および図11を参照して、スコア計算部26の処理について説明する。
【0062】
図11を参照して、スコア計算部26は、区切り部28より入力される入力文字列Xの長さをlen_Xとし、len_Xの要素数を有する配列value,tableおよびfromを作成する(S52)。ここで、table[i]は1文字目からi文字目までの重みの最適値(最大値)を示す。value[i]はfrom[i]文字目からi文字目までの重みの最適値(最大値)を示す。from[i]はi文字目における重みが最適(最大)になる区切りの開始位置を示す。
【0063】
配列value,tableおよびfromの要素を初期化する(S54)。すなわち、配列tableのすべての要素をmin_score×len_Xに初期化する。ここで、min_scoreは予め定められた定数であり、ここでは、min_score=−10000とする。また、配列valueのすべての要素を0に初期化する。さらに、配列fromのすべての要素について、k番目の要素を(k−1)に初期化する。
【0064】
次に、入力文字列の着目文字を表わすカウンタiを1に設定する(S56)。すなわち、入力文字列の先頭を指示するようにカウンタiの値を設定する。
【0065】
table[i]=min_score×len_Xであれば、table[i]=0とし、それ以外の場合には何もしない(S58)。
【0066】
カウンタjの値をi+1に設定する(S60)。文字列Xのi文字目からj文字目までの文字列をxとする(S62)。文字列xの先頭文字が「−」または「」(空白)であるか否かを判断する(S64)。文字列xの先頭文字が「−」または「 」でなければ(S64でNO)、文字列xのtf,dfおよびdf2を計算する(S66)。dfが1以上か否か、すなわち文字列xがドキュメント群内に出現したか否かが判断される(S68)。なお、tfは全ドキュメントにおいて文字列xの出現する回数を示す。
【0067】
文字列xがドキュメント群内に出現していれば(S68でYES)、df2の値がmin_df2よりも大きいか否かが判断される(S70)。min_df2は予め定められた定数であり、ここでは3としている。
【0068】
df2がmin_df2よりも大きい場合には(S70でYES)、tfが全ドキュメント数Nよりも大きいか否かが判断される(S72)。tfがNよりも大きい場合には(S72でYES)、重みscoreがlog(saturation_score)として求められる(S74)。ここで、saturation_scoreは予め定められた定数であり、ここでは0.5に設定されている。
【0069】
tfがN以下の場合には(S72でNO)、重みscoreがlog(df2/df)として求められる(S76)。
【0070】
df2がmin_df2以下の場合には(S70でNO)、重みscoreがmin_scoreとして求められる(S78)。
【0071】
S74、S76またはS78の後、table[j]が(score+table[i])よりも小さいか否かが判断される(S80)。table[j]が(score+table[j])よりも小さい場合には(S80でYES)、from[j]にiが代入され、table[j]に(score+table[i])が代入され、value[j]にscoreが代入される(S82)。
【0072】
文字列xの先頭の文字が「−」または「 」である場合(S64でYES)、dfが0の場合(S68でNO)、table[j]が(score+table[i])以上の場合(S80でNO)またはS82の処理の後、カウンタjの値を1つインクリメントする(S84)。その後、jがlen_Xよりも大きくなったか否かが判断される(S86)。
【0073】
jがlen_X以下の場合には(S86でNO)、S62に戻る。jがlen_Xより大きい場合には(S86でYES)、カウンタiの値を1つインクリメントする(S88)。その後、iがlen_Xよりも大きいか否かが判断される(S90)。iがlen_X以下の場合には(S90でNO)、S58に戻る。iがlen_Xよりも大きい場合には(S90でYES)、配列fromおよびvalueを演算結果記憶部30に記憶し(S92)、スコア計算部26における処理を終了する。
【0074】
たとえば、文字列「2000年問題の対応策について」を分割したときの配列from,valueおよびtableの値は図12に示すようになる。これより各単語は図13のように区切られる。なお、括弧内が各単語の重みを示している。
【0075】
図14を参照して、文字列aの出現するドキュメントの数dfおよび文字列aが二回以上出現するドキュメントの数df2を求める処理(図10のS66)について説明する。この処理では、同一の文字列に対する処理時間を短縮するために、文字列aと計算したdfおよびdf2とを、ドキュメントの数を記憶するためのハッシュテーブル(以下「ドキュメント数ハッシュテーブル」という)に登録することで、再度の計算を不要としている。文字列aがドキュメント数ハッシュテーブルに登録されているかを判定する。文字列aが登録済みであれば(S101でYES)、登録されているdfおよびdf2を求める(S102)。
【0076】
文字列aが登録されていなければ(S101でNO)、サフィックスファイルの先頭から順に文字列aを探し、最初に見つかった文字列aに対応するサフィックスをminとする(S103)。サフィックスminが求まらない場合、すなわちサフィックスファイルに文字列aが含まれていない場合は(S104でYES)、文字列aがドキュメントに出現しない場合である。このため、dfおよびdf2の値を0とする(S105)。
【0077】
サフィックスminが求まった場合は(S104でNO)、サフィックスファイル中、サフィックスmin以降で最後に出現する文字列aに対応するサフィックスをmaxとする(S106)。サフィックスがminからmaxまでの範囲が文字列aと一致する文字列である。これらの文字列に付されたドキュメント番号で相異なるものの数を求め、この数をdfとする(S107)。また、これらの文字列に付されたドキュメント番号を参照し、同一のドキュメント番号が2つ以上存在するものの数を求め、その数をdf2とする(S108)。
【0078】
S98の処理またはS95の処理の後、文字列aとドキュメントの数dfおよびdf2とをドキュメント数ハッシュテーブルに登録する(S109)。S99の処理またはS92の処理の後、dfおよびdf2をそれぞれ、文字列aの出現するドキュメントの数、文字列aが2回以上出現するドキュメントの数として返す(S110)。
【0079】
図15を参照して、全ドキュメントにおいて文字列aの出現する回数tfを求める処理(図10のS66)について説明する。
【0080】
サフィックスファイルの先頭から順に文字列aを探し、最初に出現する文字列aのサフィックスをminとする(S121)。サフィックスminが求まらない場合、すなわちサフィックスファイルに文字列aが含まれていない場合は(S122でYES)、tfに0を代入する(S123)。サフィックスminが求まった場合には(S122でNO)、サフィックスファイルにおいて、最後に出現する文字列aのサフィックスをmaxとする(S124)。tfを次式(2)にしたがって求める(S125)。
【0081】
tf=max−min+1 …(2)
S123またはS125の後、tfを文字列aの出現する回数として返す(S126)。
【0082】
[ドキュメント分割部32の処理]
ドキュメント分割部32は、演算結果記憶部30に記憶された配列fromおよびvalueに基づいて、入力されたドキュメントを分割する。すなわち、ドキュメントを分割した際の重みscoreの合計値が最大となるように、ドキュメントを分割する。
【0083】
[絞込み部34の処理]
絞込み部34は、上述の[キーワード候補の選別]で説明した図6のフローチャートで示される処理を実行し、キーワードを絞り込む。
【0084】
[キーワード抽出装置20の構成例]
上述したキーワード抽出装置20は、コンピュータにより実現することが可能である。図16を参照して、キーワード抽出装置20は、コンピュータ41と、コンピュータ41に指示を与えるためのキーボード45およびマウス46と、コンピュータ41により演算された結果等を表示するためのディスプレイ42と、コンピュータ41が実行するプログラムをそれぞれ読取るための磁気テープ装置43、CD−ROM(Compact Disc−Read Only Memory)装置47および通信モデム49とを含む。
【0085】
キーワード抽出装置20のプログラムは、コンピュータ41で読取可能な記録媒体である磁気テープ44またはCD−ROM48に記録され、磁気テープ装置43およびCD−ROM装置47でそれぞれ読取られる。または、通信回線を介して通信モデム49で読取られる。
【0086】
図17を参照して、コンピュータ41は、磁気テープ装置43、CD−ROM装置47または通信モデム49を介して読取られたプログラムを実行するためのCPU(Central Processing Unit)50と、コンピュータ41の動作に必要なその他のプログラムおよびデータを記憶するためのROM(Read Only Memory)51と、プログラム、プログラム実行時のパラメータ、演算結果などを記憶するためのRAM(Random Access Memory)52と、プログラムおよびデータなどを記憶するための磁気ディスク53とを含む。
【0087】
磁気テープ装置43、CD−ROM装置47または通信モデム49により読取られたプログラムは、CPU50で実行され、キーワード抽出処理が実行される。
【0088】
なお、サフィックスファイル記憶部24および演算結果記憶部30は、RAM52または磁気ディスク53により実現される。その他のキーワード抽出装置20の構成部は、CPU50で実行されるソフトウェアにより実現される。
【0089】
[文字列xの重みの計算式の変形例]
図3のS8または図10のS76では、文字列xの重みをlog(df2/df)として求めているが、出現頻度、出現集中度、部分文字列長およびドキュメントの平均サイズを考慮して、ドキュメントの平均サイズが200文字より大きいときは、log{(N/df)×(df2/df)×len(x)}として重みを求め、ドキュメントの平均サイズが200文字以下の場合には、log{(N/df)×len(x)}として重みを求めるようにしてもよい。各ドキュメントが小さくなると、出現集中度が0に近くなる傾向がある。このため、ドキュメントの平均サイズで重みの計算方法を変えることにより、出現頻度の値が小さくなっても適切な重みを計算することが可能になる。
【0090】
以上説明したように、本実施の形態によると形態素解析のように辞書を予め必要としなくてもキーワードの抽出ができる。
【0091】
[実施の形態2]
本実施の形態に係る情報検索装置は、実施の形態1で説明したのと同様のコンピュータにより実現される。
【0092】
本実施の形態は、抽出したキーワードによる文字列同士の類似度の算出方法に関する。入力された文字列とデータベースに登録された複数のドキュメントとの類似度を算出することが想定されている。文字列同士の一致部分を求める際に、データベース中のすべてのドキュメントそれぞれに対して、入力文字列から抽出したキーワードを含むドキュメントをサフィックスファイルの利用によって効率的にデータベース内から検索するという方法を用いている。
【0093】
一致情報の収集は抽出されたキーワードに対し、次のような方法で行なう。ドキュメントデータベース全体からそのキーワードを含むドキュメントを求める。それら各ドキュメント内におけるそのキーワードの出現場所、入力文字列におけるキーワードの出現場所、キーワードの長さ、キーワードの重みを一致情報として記録する。
【0094】
通常、得られた一致情報は、記録・管理することなく、そのまま重みが加算され類似度が算出される。しかし、これを記録・管理することにより、一致したキーワードの重みを加算して類似度を算出する方法だけでなく、高速性を保ったまま、多くの類似度算出方法に適用可能としている。
【0095】
入力文字列とデータベース内のドキュメントとの類似度は、一致したキーワードに付けられた重みを加算することによって算出される。
【0096】
本発明において、計算対象とするキーワードを抽出して算出する文字列類似度によるドキュメント検索プログラムの処理フローを図18〜図21に示す。本プログラムは、入力した検索文章に基づき、ドキュメントデータベースを検索し、類似度の高い複数のドキュメントを検索する。
【0097】
図18を参照して、検索文章に基づいてドキュメントデータベースを検索し、類似度の高いドキュメントを選び出して出力する処理について説明する。
【0098】
まず、ある文字列の出現回数を効率よく計算する準備のために、ドキュメントデータベースに含まれる全ドキュメントを統合してサフィックスファイル(Suffix File)を作成する(S131)。
【0099】
次に、検索文章を文字列Xに読込む(S132)。文字列Xから抽出したキーワードを、キーワード管理テーブルに記録する(S133)。
【0100】
キーワード管理テーブルに記録された各キーワードに対し、一致情報を収集し、一致情報管理テーブルへの記録を行なう(S134)。一致情報とは、キーワードの文字列Xにおける出現場所、キーワードのドキュメント内における出現場所、キーワードの長さおよびキーワードの重みを表わす情報のことである。一致情報管理テーブルには、ドキュメント番号毎に、一致情報がリストとして記録される。S134の処理については後に詳述する。
【0101】
一致情報管理テーブルからある1つのドキュメントYのリストを取出す(S135)。
【0102】
取出したリストより文字列XおよびドキュメントYの類似度を計算する(S136)。S136の処理については後に詳述する。
【0103】
求めた類似度とドキュメント番号とを組にしてドキュメント管理テーブルに登録する(S137)。
【0104】
一致情報管理テーブルに記録されたすべてのリストについて類似度を計算したかどうかを判定する(S138)。すべてのリストについて類似度を計算していなければ(S138でNO)、S135に戻る。
【0105】
すべてのリストについて類似度を計算していれば(S138でYES)、ドキュメント管理テーブルの類似度とドキュメント番号との組を、類似度の高い順に並べ替える(S139)。
【0106】
類似度の高いドキュメントを出力する(S140)。出力するドキュメントは、1つだけであってもよいし、予め定められた所定の個数であってもよい。または、所定の類似度以上のドキュメントを出力するようにしてもよい。
【0107】
図19を参照して、キーワード管理テーブルに記録された各キーワードと、ドキュメントデータベース内の各ドキュメントとの一致情報を収集し、その情報を一致情報管理テーブルに記録する処理(図18のS134)について説明する。
【0108】
キーワード管理テーブルからある1つのキーワードを選びaとする(S151)。ドキュメントデータベース内でキーワードaが出現する場所をすべて求め、これを出現する場所の順に並べ替える(S152)。
【0109】
キーワードaの各出現場所に対し、キーワードaを含むドキュメント番号を求める。このとき、キーワードaは出現場所順に並んでいるので、得られるドキュメント番号も小さい順に並んでいる(S153)。
【0110】
キーワードaの出現場所を、出現場所の前から順に1つ選ぶ(S154)。選んだキーワードaの出現場所が、それを含むドキュメント内において最も前方にある出現場所かどうかを判定する(S155)。すなわち、選んだ出現場所のドキュメントと、1つ前に選んだ出現場所のドキュメントとが異なっていれば、それは選んだドキュメントにおける最初の出現場所である。選んだ出現場所のドキュメントと、1つ前に選んだ出現場所のドキュメントとが同じであれば、それは選んだドキュメントにおける2番目以降の出現場所である。
【0111】
キーワードaの出現場所がドキュメント内において最初であると判断された場合には(S155でYES)、入力文字列Xにおけるキーワードaの出現場所(以下「startX」という)、ドキュメント内におけるキーワードaの出現場所(以下「startdoc」という)、キーワードaの長さ(以下「termlength」という)およびキーワードaの重み(以下「score」という)を組にして一致情報管理テーブルに記録する(S156)。
【0112】
図20を参照して、一致情報管理テーブルは、ドキュメント情報毎の一致情報のリストによって構成される。ドキュメント番号0002に一致情報1および5が、ドキュメント番号0100に一致情報2、3および6が、ドキュメント番号0111に一致情報4および7がリストとして記録されている。それぞれの一致情報には、入力文字列XにおけるキーワードのstartX、startdoc、termlengthおよびscoreが格納されている。
【0113】
新たにドキュメント番号0002に関する一致情報8が得られた場合、図20に示すように、これまで一致情報5を指していたリストの先頭を指すポインタは一致情報8を指し、一致情報8から一致情報5へのポインタが張られ、ドキュメント情報0002のリストの先頭に一致情報8は記録される。
【0114】
再度図19を参照して、S156の後またはキーワードaの出現場所がドキュメント内において2番目以降だと判断された場合には(S155でNO)、キーワードaの出現場所をすべて調べたか否かを判定する(S157)。
【0115】
調べていない出現場所があれば(S157でNO)、S154に戻る。すべての出現場所について調べて終えていれば(S157でYES)、キーワード管理テーブル内のすべてのキーワードについて、一致情報の収集を行なったか否かを判定する(S158)。一致情報の収集をしていないキーワードが存在する場合には(S158でNO)、まだ選んでいないキーワードaを読込むためにS151に戻る。すべてのキーワードについて一致情報の収集が終わっていれば(S158でYES)、得られた一致情報管理テーブルを返す(S159)。
【0116】
図21を参照して、入力文章XとドキュメントYとの類似度を、一致情報管理テーブルから取出したリストを用いて、一致した文字列の重みの加算によって求める処理(図18のS136)について説明する。
【0117】
XとYの類似度(以下「sim」という)を0に初期化する(S161)。一致情報管理テーブルに記録されているYに関するリストからある一つの一致情報を選び、Iとする(S162)。
【0118】
simに一致情報Iのscoreを加算する(S163)。ドキュメントYに関する一致情報のリストに記録されたすべての一致情報について調べたかどうかを判定する(S164)。もし、調べていない一致情報があれば(S164でNO)、S162に戻る。すべての一致情報について調べていれば(S164でYES)、得られたsimを入力文章XとドキュメントYとの類似度として返す(S165)。
【0119】
以上説明したように本実施の形態に係る情報検索装置によると、ユーザが入力したドキュメントと類似するドキュメントを予め登録されているデータベースの中から探し出すことができるようになる。このため、たとえばFAQ(Frequently Asked Questions)システムなどにおいて、ユーザが質問を入力文章として与えた場合に、その入力文章に対応するFAQを取出すことができるようになる。
【0120】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0121】
【発明の効果】
辞書を必要とせずにドキュメントよりキーワードを抽出することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るキーワード抽出装置の構成を示すブロック図である。
【図2】「ロボットについて」という語の部分文字列xとそれに対応するdf、df2、αおよびβの値を示す図である。
【図3】文字列の単語らしさ(重み)を推定するための処理のフローチャートである。
【図4】文字列の重みを用いてドキュメントを分割した例を示す図である。
【図5】形態素解析によりドキュメントを分割した例を示す図である。
【図6】キーワードを抽出するための処理のフローチャートである。
【図7】サフィックスファイル作成部22の行なう処理のフローチャートである。
【図8】サフィックスファイルを説明するための図である。
【図9】区切り部28の行なう処理のフローチャートである。
【図10】スコア計算部26の実行する処理のフローチャートである。
【図11】スコア計算部26での重み計算に用いられる配列value、tableおよびfromを説明するための図である。
【図12】文字列「2000年問題の対応策について」を分割したときの配列from、valueおよびtableの値を示す図である。
【図13】重みにより各単語を区切った一例を示す図である。
【図14】文字列aの出現するドキュメントの数dfおよび文字列aが二回以上出現するドキュメントの数df2を求める処理のフローチャートである。
【図15】全ドキュメントにおいて文字列aの出現する回数tfを求める処理のフローチャートである。
【図16】キーワード抽出装置を実現するコンピュータの外観図である。
【図17】図16に示すコンピュータのハードウェア構成を示す図である。
【図18】検索文章に基づいてドキュメントデータベースを検索し、類似度の高いドキュメントを選び出して出力する処理のフローチャートである。
【図19】キーワード管理テーブルに記録された各キーワードと、ドキュメントデータベース内の各ドキュメントとの一致情報を収集し、その情報を一致情報管理テーブルに記録する処理のフローチャートである。
【図20】一致情報管理テーブルの構成を示す図である。
【図21】入力文章XとドキュメントYとの類似度を、一致情報管理テーブルから取出したリストを用いて、一致した文字列の重みの加算によって求める処理のフローチャートである。
【図22】キーワードの出現集中度βの分布を示す図である。
【符号の説明】
20 キーワード抽出装置、22 サフィックスファイル作成部、24 サフィックスファイル記憶部、26 スコア計算部、28 区切り部、30 演算結果記憶部、32 ドキュメント分割部、34 絞込み部、41 コンピュータ、42 ディスプレイ、43 磁気テープ装置、44 磁気テープ、45 キーボード、46 マウス、47 CD−ROM装置、48 CD−ROM、49 通信モデム、50 CPU、51 ROM、52 RAM、53 磁気ディスク。
Claims (12)
- ドキュメント群における各ドキュメントに含まれる部分文字列の前記ドキュメント群中での出現頻度を求めるための出現頻度算出手段と、
前記部分文字列の前記ドキュメント群中での出現集中度を求めるための出現集中度算出手段と、
前記出現頻度算出手段および前記出現集中度算出手段に接続され、前記出現頻度および前記出現集中度に基づいて、入力されたドキュメントからキーワードを抽出するための第1のキーワード抽出手段とを含む、キーワード抽出装置。 - 前記第1のキーワード抽出手段は、
入力されたドキュメントを部分文字列に分割するためのドキュメント分割手段と、
前記ドキュメント分割手段、前記出現頻度算出手段および前記出現集中度算出手段に接続され、前記出現頻度および前記出現集中度に基づいて、前記部分文字列の単語らしさを算出するための単語らしさ算出手段と、
前記単語らしさ算出手段に接続され、前記単語らしさの合計値に基づいて、前記ドキュメントよりキーワードを抽出するための第2のキーワード抽出手段とを含む、請求項1に記載のキーワード抽出装置。 - 前記単語らしさ算出手段は、前記ドキュメント分割手段、前記出現頻度算出手段および前記出現集中度算出手段に接続され、前記出現頻度、前記出現集中度、前記部分文字列の長さおよび前記ドキュメントの平均サイズに基づいて、前記部分文字列の単語らしさを算出するための手段を含む、請求項2に記載のキーワード抽出装置。
- さらに、前記第2のキーワード抽出手段、前記出現頻度算出手段および前記出現集中度算出手段に接続され、前記第2のキーワード抽出手段で抽出されたキーワードを、前記出現頻度、前記出現集中度および前記部分文字列の長さに基づいて絞り込むための絞込み手段を含む、請求項2に記載のキーワード抽出装置。
- さらに、前記入力されたドキュメントを句読点で区切り、前記ドキュメント分割手段に供給するための区切り手段を含む、請求項2に記載のキーワード抽出装置。
- 前記ドキュメント分割手段は、先頭文字が予め定められた文字より始まらないように、入力されたドキュメントを部分文字列に分割するための手段を含む、請求項2に記載のキーワード抽出装置。
- 前記ドキュメント分割手段は、部分文字列の長さが予め定められた文字数以上にならないように、入力されたドキュメントを部分文字列に分割するための手段を含む、請求項2に記載のキーワード抽出装置。
- 前記ドキュメント分割手段は、
前記単語らしさ算出手段に接続され、前記単語らしさ算出手段で算出された前記ドキュメントの所定位置より開始する第1の部分文字列の第1の単語らしさから、前記第1の部分文字列を1文字伸ばして得られる第2の部分文字列の第2の単語らしさへの変化に基づいて、前記所定位置を単語の切れ目とする妥当性の尺度を算出する妥当性算出手段と、
前記妥当性算出手段に接続され、前記所定位置から前後方向に対して前記第1の部分文字列に1文字伸ばした場合に得られる前記妥当性の尺度を合計し、前記妥当性の尺度の合計がしきい値以上である前記所定箇所を単語の切れ目として抽出する切れ目抽出手段と、
前記切れ目抽出手段に接続され、前記抽出された単語の切れ目を前記単語の開始点および終了点とする部分文字列を切り出す部分文字列切出手段とを含む、請求項2に記載のキーワード抽出装置。 - さらに、前記出現頻度算出手段に接続され、前記出現頻度算出手段で算出された第1の部分文字列の第1の出現頻度と、前記第2の部分文字列の第2の出現頻度との比により、前記第1の部分文字列の出現確率を算出する出現頻度算出手段を含み、
前記妥当性算出手段は、前記第1の単語らしさから前記第2の単語らしさへの変化に加えて、前記出現確率にも基づいて前記所定位置を単語の切れ目とする妥当性の尺度を算出する、請求項8に記載のキーワード抽出装置。 - 前記部分文字列切出手段は、さらに、前記抽出された単語の切れ目を前記単語の開始点および終了点とする部分文字列であって、カタカナ、英数字、および漢字からなる文字列の前後に1文字だけ付く文字を助詞と判断し、前記助詞を取除いた部分文字列を切り出す、請求項8に記載のキーワード抽出装置。
- 前記第2のキーワード抽出手段は、さらに前記出現頻度算出手段に接続され、前記単語らしさの合計値に基づいて、前記出現頻度算出手段で算出された出現頻度に依存して前記ドキュメントよりキーワードを抽出する、請求項2に記載のキーワード抽出装置。
- ドキュメント群における各ドキュメントに含まれる部分文字列の前記ドキュメント群中での出現頻度を求めるための出現頻度算出手段と、
前記部分文字列の前記ドキュメント群中での出現集中度を求めるための出現集中度算出手段と、
前記出現頻度算出手段および前記出現集中度算出手段に接続され、前記出現頻度および前記出現集中度に基づいて、入力されたドキュメントからキーワードを抽出するためのキーワード抽出手段と、
前記キーワード抽出手段に接続され、前記ドキュメント群中の各ドキュメントについて、前記キーワード抽出手段で抽出された各キーワードとの一致度を計算するための一致度計算手段と、
前記一致度計算手段に接続され、前記一致度に基づいて、前記ドキュメント群中の各ドキュメントについて、前記入力されたドキュメントとの類似度を計算するための類似度計算手段と、
前記類似度計算手段に接続され、前記類似度に基づいて、前記入力されたドキュメントと関連するドキュメントを前記ドキュメント群より抽出するための手段とを含む、情報検索装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002169036A JP2004013726A (ja) | 2002-06-10 | 2002-06-10 | キーワード抽出装置および情報検索装置 |
CNA021598231A CN1466083A (zh) | 2002-06-10 | 2002-12-27 | 关键词提取装置和信息检索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002169036A JP2004013726A (ja) | 2002-06-10 | 2002-06-10 | キーワード抽出装置および情報検索装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004013726A true JP2004013726A (ja) | 2004-01-15 |
Family
ID=29774053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002169036A Pending JP2004013726A (ja) | 2002-06-10 | 2002-06-10 | キーワード抽出装置および情報検索装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2004013726A (ja) |
CN (1) | CN1466083A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444591C (zh) * | 2006-08-18 | 2008-12-17 | 北京金山软件有限公司 | 获取网页关键字的方法及其应用系统 |
JP2020155830A (ja) * | 2019-03-18 | 2020-09-24 | 株式会社東芝 | 認識装置、認識方法及びプログラム |
CN112182283A (zh) * | 2020-09-21 | 2021-01-05 | 咪咕文化科技有限公司 | 歌曲搜索方法、装置、网络设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006040085A (ja) * | 2004-07-29 | 2006-02-09 | Sony Corp | 情報処理装置および方法、記録媒体、並びにプログラム |
JP5206296B2 (ja) * | 2008-10-03 | 2013-06-12 | 富士通株式会社 | 類似文章抽出プログラム、方法、装置 |
US20100169395A1 (en) * | 2008-12-26 | 2010-07-01 | Sandisk Il Ltd. | Device and method for filtering a file system |
CN104182432A (zh) * | 2013-05-28 | 2014-12-03 | 天津点康科技有限公司 | 基于人体生理参数检测结果的信息检索与发布系统及方法 |
-
2002
- 2002-06-10 JP JP2002169036A patent/JP2004013726A/ja active Pending
- 2002-12-27 CN CNA021598231A patent/CN1466083A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444591C (zh) * | 2006-08-18 | 2008-12-17 | 北京金山软件有限公司 | 获取网页关键字的方法及其应用系统 |
JP2020155830A (ja) * | 2019-03-18 | 2020-09-24 | 株式会社東芝 | 認識装置、認識方法及びプログラム |
JP7199264B2 (ja) | 2019-03-18 | 2023-01-05 | 株式会社東芝 | 認識装置、認識方法及びプログラム |
CN112182283A (zh) * | 2020-09-21 | 2021-01-05 | 咪咕文化科技有限公司 | 歌曲搜索方法、装置、网络设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1466083A (zh) | 2004-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107644010B (zh) | 一种文本相似度计算方法及装置 | |
US7409404B2 (en) | Creating taxonomies and training data for document categorization | |
JP5010885B2 (ja) | 文書検索装置、文書検索方法および文書検索プログラム | |
US20100205198A1 (en) | Search query disambiguation | |
JP5710581B2 (ja) | 質問応答装置、方法、及びプログラム | |
CN106557777B (zh) | 一种基于SimHash改进的Kmeans文档聚类方法 | |
JP2005122533A (ja) | 質問応答システムおよび質問応答処理方法 | |
CN112597283B (zh) | 通知文本信息实体属性抽取方法、计算机设备及存储介质 | |
Sabuna et al. | Summarizing Indonesian text automatically by using sentence scoring and decision tree | |
CN110866102A (zh) | 检索处理方法 | |
JP2006215717A (ja) | 情報検索装置、情報検索方法および情報検索プログラム | |
JP2006065387A (ja) | テキスト文検索装置、テキスト文検索方法、及びテキスト文検索プログラム | |
JP5250009B2 (ja) | サジェスチョンクエリ抽出装置及び方法、並びにプログラム | |
US8977949B2 (en) | Electronic document equivalence determination system and equivalence determination method | |
JP2006227823A (ja) | 情報処理装置及びその制御方法 | |
JP2004013726A (ja) | キーワード抽出装置および情報検索装置 | |
US20030126138A1 (en) | Computer-implemented column mapping system and method | |
JP4979637B2 (ja) | 複合語の区切り位置を推定する複合語区切り推定装置、方法、およびプログラム | |
US20110106849A1 (en) | New case generation device, new case generation method, and new case generation program | |
US20160085760A1 (en) | Method for in-loop human validation of disambiguated features | |
JPH06282587A (ja) | 文書の自動分類方法及び装置並びに分類用の辞書作成方法及び装置 | |
CN107609006B (zh) | 一种基于地方志研究的搜索优化方法 | |
CN115983233A (zh) | 一种基于数据流匹配的电子病历查重率估计方法 | |
CN113449063B (zh) | 一种构建文档结构信息检索库的方法及装置 | |
JP3249743B2 (ja) | 文書検索システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080715 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081118 |