(57)【特許請求の範囲】
【請求項１】
機械読み取り可能形式の文書からプロセッサに対してキーフレーズを選択する自動的方法であって、文書は第１の多数の語を含み、いくつかの語は句を形成し、前記プロセッサは前記プロセッサに接続した記憶装置に記憶した命令を実行することで前記方法を実施するものであり、前記方法が、
ａ）  前記文書から停止語を含まない多数の句を生成するステップと、
ｂ）  前記多数の句から、２つ以上の語を含み、最大長で非重複句からなる候補句を生成するステップとを含み、
前記候補句を生成するステップが、
ｂ１）  前記多数の句の１つを選択句として選択するステップと、
ｂ２）  前記選択句のまだ検討していない語を選択語として選択するステップと、
ｂ３）  前記選択語が頻度の高い語であるかどうかを判定するステップと、
ｂ４）  前記選択語が頻度の低い語である場合、
Ａ）  前記選択句の全ての語を検討していなければ、ステップｂ２）からステップｂ３）を繰り返すステップと、
Ｂ）  前記選択句の全ての語を検討していれば、ステップｂ１）からステップｂ３）を繰り返すステップと、
Ｃ）  前記選択句が頻度の高い語である場合、
Ｃ１）  前記選択語がキーフレーズについて受容可能な開始部分かどうかを不良開始リストを探索することにより判定するステップと、
Ｃ２）  前記選択語がキーフレーズについて受容可能な開始部分でない場合には、
ｉ）  前記選択句の全ての語を検討したかどうかを判定するステップと、
ｉｉ）  前記選択句の全ての語を検討していなければ、ステップｂ２）からステップｂ３）を繰り返すステップと、
ｉｉｉ）  前記選択句の全てを検討していれば、ステップｂ１）からステップｂ４）を繰り返すステップと、
Ｃ３）  前記選択語がキーフレーズについて受容可能な開始部分であるならば、
ｉ）  前記選択句を現在句に加えるステップと、
ｉｉ）  前記選択句の全ての語を検討していなければ、前記選択句のまだ検討していない語を選択語として選択するステップと、
ｉｉｉ）  前記選択語が停止語であるかどうかを判定するステップと、
ｉｖ）  前記選択語が停止語でなければ、ステップＣ３ｉ）からステップＣ３ｉｉｉ）を繰り返すステップと、を含み、
さらに、
ｃ）  前記候補句の最も出現頻度の高い部分集合をキーフレーズとして選択するステップを含む前記方法。
【請求項２】
前記ステップＣ３）が、さらに、
ｖ）  前記選択語が頻度の低い語であるか、または前記選択句の全ての語を検討している場合、
ｖＡ）  現在句の最終語がキーフレーズについて受容可能な終端かどうかを不良終端リストを探索することにより判定するステップと、
ｖＢ）  前記現在句の最終語がキーフレーズについて受容可能な終端でなければ、前記現在句の最終語を削除してステップｖＡ）を繰り返すステップと、
前記現在句の最終語がキーフレーズについて受容可能な終端であれば、前記現在句が２つ以上の語を含んでいるかどうかを判定するステップと、
前記現在句が２つ以上の語を含んでいれば、現在句を候補句リストに加えるステップとを含む請求項１記載の方法。
【発明の詳細な説明】
【０００１】
【従来の技術】
キーワードリストにより読者は文書を読まずにその文書の内容を判定することができる。文書のキーワードリストは自動的にあるいは人間の知性と労力を用いて文書を作成した後に作成することができる。しかし人間の労力を用いてキーワードリストを作成するにはコストが高くなる。これに対して、キーワードリストを生成する自動的手法を用いればコストは安くなる。
【０００２】
文書のキーワードリストを自動的に生成する際には自然言語処理手法と統計的手法の両方が利用されてきた。自然言語処理は自然言語テキストを理解しようとするものであるので計算が膨大となる。統計的手法はテキストを理解する努力を行わないのでキーワードリストを速く生成することができる。１９６９年にキャロル（Ｃａｒｒｏｌ）及びロエロフ（Ｒｏｅｌｏｆｆｓ）は「語頻度分析を用いたキーワードのコンピュータ選択」でキーワードを選択する方法を開示した。キャロル及びロエロフは各々の文書内ならびに文書コーパスにわたって語の相対的頻度に基づいてキーワードを選択した。しかし文書コーパスにわたる語頻度を使用する故にキャロル及びロエロフの方法は瞬時の結果を望む研究者や関連文書のコーパスを持たない研究者に取っては前処理無しには十分速いものとは言えない。
【０００３】
【発明の実施の形態】
図１は本方法を実施するコンピュータシステム１０をブロック図形式で示したものである。本方法はコンピュータシステム１０の動作を変更して機械読み取り可能な形式で示すあらゆる文書からキーフレーズを選択できるようにするものである。要約すると、コンピュータシステム１０で機械読み取り可能文書のテキストを複数語候補句に分割してキーフレーズを選択する。候補句は停止語を含まず、受容可能な語で始まり終了するものである。最後に最も頻度の高い候補句をキーフレーズとして選択する。以下にコンピュータシステム１０を用いてキーフレーズを選択する２つの方法を詳細に説明する。
【０００４】
Ａ．キーフレーズ選択コンピュータシステム
本方法の詳細な説明を行う前に、コンピュータシステム１０を考察する。コンピュータシステム１０はコンピュータユーザに対して情報を視覚的に表示するモニタ１２を有する。コンピュータシステム１０は更にプリンタ１３を通してコンピュータユーザに情報を出力する。コンピュータシステム１０はコンピュータユーザに対して入力データに対する複数のルートを提供する。即ちキーボード１４で入力することでコンピュータユーザはタイピングによりデータをコンピュータシステム１０に入力することができる。またマウス１６を動かすことで、モニタ１２上に表示されたポインタを移動して表示されたアイコンを選択することができる。コンピュータユーザは更にスタイラスないしペン２０でタブレット１８に書き込むことで情報をコンピュータシステム１０に入力できる。代わりにコンピュータユーザはフロッピィディスクなどの磁気媒体上に機械読み取り可能形式で記憶したデータをフロッピィディスクドライブ２２にディスクを挿入することで入力することができる。光学文字認識装置（ＯＣＲ装置）２４によりコンピュータユーザはハードコピー文書２６をコンピュータシステムに入力することもでき、そのＯＣＲ装置２４は一般に情報交換用米国標準コード（ＡＳＣＩＩ）の符号化電子表示に変換する。
【０００５】
プロセッサ１１はコンピュータシステム１０の動作を制御、調整してコンピュータユーザのコマンドを実行する。プロセッサ１１は電子的にメモリに記憶した命令を実行することで各々のユーザコマンドに対応して判定して適切な処理を行う。一般にプロセッサ１１の作動命令は固体メモリ２８に記憶して命令に対する頻繁かつ高速アクセスを可能にしている。メモリ２８を実現するのに利用できる半導体メモリには読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、消去可能なプログラマブル読み取り専用メモリ（ＥＰＲＯＭ），そしてフラッシュメモリなどの電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）がある。
【０００６】
Ｂ．キーフレーズを選択する１つの方法
図２は機械読み取り可能文書からキーフレーズを選択するためプロセッサ１１が実行する命令４０を流れ図形式で示したものである。命令４０は固体メモリ２８ないしフロッピィディスクドライブ２２に入れたフロッピィディスクに記憶することができる。命令４０はＬＩＳＰやＣ＋＋を始めとするどの様なコンピュータ言語でも実現できる。命令４０の実行は機械読み取り可能文書の選択と入力で始める。所望により、命令４０の実行前に、コンピュータユーザはデフォルト数から「Ｐ」と示す選択キーフレーズ数を変更することもできる。デフォルト数はどの様な値にも設定できる。１実施例では、デフォルト値は５キーフレーズに設定している。
【０００７】
プロセッサ１１はステップ４２に分岐してトークン化文書の選択に対応する。ここで用いるように、トークン化文書は文章境界及び語トークンが識別したものである。ステップ４２中、プロセッサ１１はトークン化文書を検査して複数語句を生成する。即ちプロセッサ１１は各々の文章から２つ以上の語の非重複句を抽出する。句の各々の語が文書の主題に関連する意味を伝達するように、ステップ４２中に生成される句から停止語は好適に除外される。停止語は文書の主題に関連した意味を殆ど伝えない代名詞、前置詞、限定詞、「ｔｏ  ｂｅ」動詞などの語である。句から停止語を除外することはコンパクトなキーフレーズを生成し、ステップ４２後のステップで必要な処理時間を削減できるという利点がある。プロセッサ１１は各々の文章の各々の語トークンを停止リストの語と比較することで停止語を除外する。プロセッサ１１は文章内で停止語が出て来ればいつでも１つの句を終了し、別のものを始める。その結果、生成される句は隣接用語から構成される。ステップ４２中の作用の結果、句のリストが生成される。句リストが完了すれば、プロセッサ１１はステップ４２からステップ４３へ分岐する。
【０００８】
ステップ４３中、プロセッサ１１は引き続き使用するため、文書内の句リスト上の各々の語の頻度を判定する。ステップ４２中に使用したトークナイザにより、プロセッサ１１は、文書の各々の語をリストしその語が出現する各々の文書を識別する用語リストを調べることで句リスト上の各々の語の頻度を判定することができる。そのようなリストにより、プロセッサ１１は句リスト上の各々の語に付いて文章ＩＤの数を数えるだけでよい。その後、プロセッサ１１はステップ４３からステップ４４へ分岐する。
【０００９】
ステップ４４中、プロセッサ１１は句リスト上の句から候補句を生成する。プロセッサ１１は候補句を生成する間、要因の数を考察する。プロセッサ１１は句の開始語と終端語を検査して候補句に適切かどうかを判定する。それにより後に選択するキーフレーズは妥当なものとなる。どの様にプロセッサ１１がそれらのタスクを行うかは図３に関して後に詳細に述べる。
【００１０】
ステップ４４中、プロセッサ１１は更に句の各々の語を検討してその語の頻度が高いかどうかを判定する。句内の語の頻度と句の頻度自身は、最も頻度の高い句は文書の内容を最もよく示していると思われるので文書のキーワードを選択するのに使用する。プロセッサ１１はある語が文章内で少なくとも最低回数出現すればそれを頻度の高いものと見なす。即ちプロセッサ１１は文書内の語の出現回数をしきい値に対して比較し、出現回数がしきい値を超過すれば、その用語を頻度の高いものと見なす。頻度の低い用語は候補句から除外する。短い文書に付いてはしきい値は好適には１に設定される。その結果、少なくとも２回出現する用語だけが頻度の高いものと見なされる。長い文書に付いては、しきい値は高いものが望ましいであろう。候補句のリストを備え、プロセッサ１１はステップ４４からステップ４６へ進む。
【００１１】
ステップ４６でプロセッサ１１は候補句のリストからＰ個のキーフレーズを選択するタスクを開始する。プロセッサ１１は各々の候補句の文書内の出現回数に従って候補句リストを分類し始める。頻繁に出現する候補句は出現回数が少ない候補句よりも候補句の分類リストで高く位置づけする。候補句間の連携は語数ないし文字数に換算して測定した候補句長さ、どの句候補が最も頻繁な語を含むかに従って、あるいは最高平均語頻度に換算することを始め、いくつかの形で分類することができる。ステップ４６の結果、プロセッサ１１は候補句を格付けしたリストを保持することになる。その後、プロセッサ１１はステップ４６からステップ４８に進む。
【００１２】
ステップ４８中、プロセッサ１１は選択キーフレーズ数をゼロに設定して候補句リストからキーフレーズを選択する用意をする。それを行うとプロセッサ１１はステップ５０に進み、Ｐ個のキーフレーズが選択されたかどうかを判定する。選択数がＰに等しくなければ、全てのキーフレーズがまだ選択されていないことになる。プロセッサ１１はステップ５０からステップ５２に進んでこの状況に対応する。
【００１３】
プロセッサ１１はステップ５２で分類候補句の一番上の候補句を検査する。略してその句を「現在句」と称することにする。プロセッサ１１はステップ５２で現在句が既に選択したキーフレーズの１つの変形であるかどうかを判定する。ここで用いるように、変形とは別の句に関係しているが語順ないし語幹が異なるものである。例えば「テキスト分析システム」の可能な変形には「システムでテキストを分析」、「文書分析システム」及び「文書処理システム」がある。いくつかの自動テキスト処理手法を用いて変形分析を行うことができるので、ここでは変形分析を詳細に述べない。
【００１４】
変形分析に基づいてプロセッサ１１はステップ５２から２つの経路の１つを取る。分類候補句リストの一番上の候補句がキーフレーズの１つの変形でなければ、プロセッサ１１はステップ５２からステップ５４に進む。ステップ５４でプロセッサ１１は現在候補句を分類候補句リストから除去し、現在候補句をキーフレーズリストに載せる。その後、プロセッサ１１はステップ５４からステップ５６に進み、選択したキーフレーズの数を１だけ増分する。それを行うとプロセッサ１１はステップ５０に戻る。
【００１５】
ステップ５２の変形分析で現在候補句がキーフレーズの１つの変形であることが分かればプロセッサ１１の動作は異なったものとなる。それに対してプロセッサ１１はステップ５２からステップ５８に分岐する。ステップ５８中、プロセッサ１１は現在候補句を分類候補句リストから除去し、妥当ならばキーフレーズリストを変更する。１実施例では、キーフレーズリストに既にある句が分類候補句リストからちょうど選択した句の部分句ならばそれを除去して置き換える。従って例えばプロセッサ１１は、「南カリフォルニア海岸」よりも部分句の「南カリフォルニア」を除外する。どの変形を除外するかを判定する別の方法として句の最小頻度の変形を除外することなどをステップ５８中に使用することができる。その後、プロセッサ１１はステップ５８からステップ５０に戻る。
【００１６】
ステップ５０に戻り、プロセッサ１１はＰ個のキーフレーズを選択したかどうかを判定する。Ｐ個のキーフレーズを選択していなければ、プロセッサ１１は分類候補句リストからＰ個のキーフレーズが選択されるまでステップ５２、５４、５６、５８を通して分岐する。Ｐ個のキーフレーズを選択していれば、プロセッサ１１はステップ５０からステップ６０に分岐し、文書のキーフレーズの選択を完了する。
【００１７】
Ｂ１．候補句の生成
図３は句を最大長で受容可能に開始し終了する候補句に分割するステップ４４の動作を詳細に例示したものである。要約すると、プロセッサ１１は選択した句の各々の語を一時に１語づつ検査してその語が頻度の高いものかどうかを判定する。ステップ４４で生成した候補句は隣接し頻度の高い用語全体で構成されているので、句の長さと句内の頻度の低い用語の位置により、１つの句は複数の候補句を生成できたり全くできなかったりする。選択した句の最初の頻度の高い語を識別すると、プロセッサ１１はその語が候補句の受容可能な開始部分であるかどうかを判定する。候補句の受容可能な開始語を識別した後、プロセッサ１１は候補句の最終語を識別するまで選択句の頻度の高い用語から候補句の構築を続ける。そしてプロセッサ１１は候補句の最終語を検討してそれが候補句の受容可能な終端部分であるかどうかを判定する。そうでなければプロセッサ１１は受容可能な終端語が見つかるまで候補句の最後から語を除去する。次にプロセッサ１１は生じる候補句が十分長いものかどうかを判定する。プロセッサ１１は候補句が十分な語数を含んでいればそれを記憶する。
【００１８】
以上の前提を想定して、ここで命令４４の詳細な説明を助ける状況を考察する。第１に、ステップ４２で生成した句のリストが「南太平洋会社は大きな影響を及ぼした」「４年後」「料金対無料」を含むものとする。第２に、更に文書内で２回以上出現する語に「南」「太平洋」「会社」「大きな」「影響力」「年」「後」「対」「無料」があるとする。第３に、不良開始リストに「対」が含まれるとする。最後に第４に、不良終端リストに「対」「後」が含まれると想定する。候補句の生成はステップ７０で句リストから句の１つを選択することで始める。プロセッサ１１はステップ７０を通して第１の経路の「南太平洋会社が大きな影響力を及ぼした」を選択すると想定する。その後、プロセッサ１１はステップ７０からステップ７２に分岐する。
【００１９】
ステップ７２中、プロセッサ１１は検査のため、選択した句の１つの語を選択する。好適には、選択した句の語の検査は左から右に順に進める。命令４４が受容可能な開始部分の検査前に受容可能な終端部分を検査するように変更されていれば、選択句の検査は右から左に順に進めることもできる。プロセッサ１１は選択句の語の検査を方向に関係なく進めるが、語は各々の生成された候補句が隣接用語で確実に構成されるように順に検査しなければならない。プロセッサ１１は好適にはステップ７２を通してその最初の経路の「南」を選択する。選択句から語を選択した後、プロセッサ１１はステップ７２からステップ７４に分岐する。プロセッサ１１はステップ７４で、選択した語が頻度の高いものかどうかを判定する。プロセッサ１１は選択した語の出現回数をしきい値と比較することでそれを行う。しきい値の値はキーフレーズが生成されている文書の長さに依存する設計上の選択である。１実施例では、しきい値は、各々の語の頻度が高いと見なすためには少なくとも２回出現しなければならないように１に設定する。
【００２０】
ステップ７４の結果、句は最大長の非重複部分句に分割される。従って例えば「ニューメキシコ境界線」という句は、「ニューメキシコ」「メキシコ境界線」という部分句ではなく「ニューメキシコ境界線」という候補句だけを生成する。最大長の候補句だけを使用することで偽候補句を生成することがあるが、それらの候補句はその出現頻度が低い故にキーフレーズとして選択される可能性は低い。対照的に、最大長候補句から生成される部分句は、その語数が少ない故に頻繁に出現する可能性が高く、キーフレーズとして除外される可能性は低い。その結果、最大長候補句の部分句を用いて妥当なキーフレーズを生成するには、本方法を変更する必要がある。
【００２１】
「南」はここでの想定で頻度の高い語であるので、プロセッサ１１はステップ７４からステップ７６に分岐して対応する。プロセッサ１１は候補句の潜在的な開始語が識別されればステップ７６に入る。プロセッサ１１はステップ７６で、選択語が候補句の受容可能な開始部分かどうかを判定する。プロセッサ１１は選択語に付いて不良開始リストを探索することでそれを行う。不良開始リストにはキーフレーズに関して受容できない開始部分の語が含まれている。英語テキストの不良開始リストは簡潔なものになろうが、偽ないし不適切と思われるキーフレーズを生成する可能性を削減するため疑わしいときは語を不良開始リストに含める傾向にある。非英語文書に関しては、異なる語は不良開始リストに含めるべきである。例えば「ｏｆ」に相当するフランス語の「ｄｅ」は、フランス語の名詞句は「ｎｏｕｎ  ｄｅ  ａｄｊｅｃｔｉｖｅ」の形であるので、停止語に含めるべきではない。「ｄｅ  ａｄｊｅｃｔｉｖｅ」で始まるキーフレーズの生成を避けるため、「ｄｅ」はフランス語不良開始リストに含めるべきである。
【００２２】
「南」という語はここで想定するキーフレーズに関して受容可能な開始部分を為しているので、プロセッサ１１はステップ７６からステップ７８に分岐する。プロセッサ１１はステップ７８で新しい候補句を構築する過程を始めるが、それを現在候補句と称することにする。ステップ７８中、プロセッサ１１は選択語を現在候補句に追加する。それを行うと、プロセッサ１１はステップ７８からステップ８０に進んで選択句から隣接する頻度の高い用語を現在候補句に追加し始める。プロセッサ１１はステップ８０で選択句がまだ検討すべき追加用語を含んでいるかどうかを判定する。プロセッサ１１は選択句の全ての語をまだ検討していないのでステップ８０からステップ８１に分岐する。ステップ８１でプロセッサ１１は現在候補句に含める可能性のある選択句の次の語を選択する。選択句を想定し、左から右に順に進んで、プロセッサ１１はステップ８１で「太平洋」を選択する。その後、ステップ８２でプロセッサ１１は選択語は頻度の高いものであると判定する。それに対応して、プロセッサ１１はステップ８２からステップ７８に戻る。プロセッサ１１は「太平洋」をステップ７８で現在候補句に追加し、その結果「南太平洋」となる。それを行うと、プロセッサ１１はステップ８０に進み、選択句にまだ検討していない語が含まれることを見いだす。
【００２３】
プロセッサ１１はステップ８１で「会社」を選択し、ステップ８２に進む。プロセッサ１１は選択語は文書内で２回以上出現するのでそれは頻度の高いものであることが分かる。その結果、プロセッサ１１はステップ８２からステップ７８に分岐し、選択語を現在候補句に追加する。その結果、現在候補句は「南太平洋会社」となる。その後、プロセッサ１１はステップ７８からステップ８０に分岐する。
【００２４】
ステップ８０中、プロセッサ１１は選択句にまだ検討していない語が含まれていることを見いだす。従ってステップ８１でプロセッサ１１は選択句の次の語の「及ぼした」を選択する。プロセッサ１１は次のステップで「及ぼした」は選択文章内で頻度の高い語ではないことを見いだす。現在候補句の最も右側の語に隣接する頻度の低い語の出現によりそれは終端する。その結果、プロセッサ１１は選択語やいずれのものも現在候補句に追加しない。プロセッサ１１はこの状況にステップ８２からステップ８４に分岐することで対応する。
【００２５】
ステップ８４でプロセッサ１１は現在候補句の最終語が受容可能な終端部分かどうかをその語に関して不良終端リストを探索することで判定する。不良終端リスト上の語はキーフレーズを偽ないし不適切なものにする可能性のあるものである。不良開始リストにより、不良終端リストに載せた語は分析している自然言語の言語に依存して変化することがある。以前の想定では、「会社」は受容可能な終端部分となる。隣接し頻度の高い用語全体で構成され、受容可能に終了し始まる候補句を選択すると、プロセッサ１１はステップ８４からステップ８８に進む。
【００２６】
プロセッサ１１はステップ８８で現在候補句が２つ以上の語を含むかどうかを判定する。単一語の句は、語に付いての言語的な情報なしにはキーフレーズリストで偽のものとして出現する可能性があるので、本方法ではキーフレーズとして選択しない。そのような言語的な情報を得るために時間を取るよりも、単一語の句は句候補として受け入れない。現在候補句は２つ以上の語を含んでいるので、プロセッサ１１はステップ８８からステップ９０に進む。
【００２７】
プロセッサ１１はステップ９０で現在候補句をいままでリストした句候補と比較する。現在候補句は最初に生成されるので、ステップ９０を通して第１の経路で、プロセッサ１１は現在候補句は候補句のリストにないことを見いだす。それに対応してプロセッサ１１はステップ９４で現在候補句を候補句リストに追加し、その候補句に関してカウントを１に設定する。後にプロセッサ１１は候補句に関連したカウントをキーフレーズを選択するのに使用する。その後、プロセッサ１１はステップ９４からステップ９６に分岐して別の候補句の構築を始める。
【００２８】
別の候補句を構築する作業はステップ９６で選択句の全ての語が検討されたかどうかを判定することで始める。選択句の「大きな影響力」という語がまだ検討されていないので、プロセッサ１１はステップ９６からステップ７２に戻って対応して選択句のその検討を続行する。プロセッサ１１はステップ７２で「大きな」を選択語として選択する。その後、プロセッサ１１はステップ７４、７６、７８、８０、８１、８２、８４、８８を通してちょうど説明したように分岐して選択句から「大きな影響力」という別の候補句を構築する。
【００２９】
最終的にプロセッサ１１はステップ８８からステップ９０に分岐する。現在候補句が候補句のリストに既に含まれていれば、プロセッサ１１はステップ９０からステップ９２に分岐する。ステップ９２でプロセッサ１１は現在候補カウントのカウントを１だけ増分する。それを行えば、プロセッサ１１はステップ９２からステップ９６に分岐する。
【００３０】
ステップ９６に戻ると、プロセッサ１１は選択句の全ての語の検討がなされたことを見いだす。その結果、プロセッサ１１はステップ９６からステップ７０に進む。ステップ９６でプロセッサ１１は「４年後」を選択句として選択する。引き続いてステップ７２でプロセッサ１１は「４」を選択語として指定する。プロセッサ１１はステップ７４中に「４」は選択した文書内で頻度の高い語でないことが分かる。それに対応してプロセッサ１１はステップ７４からステップ９６に進む。プロセッサ１１はステップ９６で選択句にはまだ検討していない語が含まれていることを判定する。プロセッサ１１はステップ９６からステップ７２に戻って選択句の次に語を選択する。プロセッサ１１は「年」を選択語として選択して選択語は頻度の高いものであると判定する。その結果、プロセッサ１１はステップ７６に進み、ステップ７６で「年」に関して不良開始リストを探索するが、それが見つからないと「年」は受容可能な開始部分であることになる。
【００３１】
プロセッサ１１はステップ７６からステップ７８に分岐して現在候補句の構築を続行する。選択語はステップ７８で現在候補句に追加する。次のステップのステップ８０で、プロセッサ１１は選択句にまだ検討していない別の語が含まれているかどうかを判定する。そうであればステップ８１でプロセッサ１１は「後」を選択語として指定する。次にプロセッサ１１はステップ８２で「後」は選択文書内で頻度の高い語であることを見いだす。プロセッサ１１はステップ７８に分岐し選択語を現在候補句に追加して対応する。この動作の結果、現在候補句は「年後」になる。その後、プロセッサ１１はステップ７８からステップ８０に分岐する。
【００３２】
プロセッサ１１はステップ８０で選択句が追加語を含むかどうかを判定することで追加語を現在候補句に追加できるかどうかを判定する。プロセッサ１１は選択句の全ての語を検討し終ると、現在候補句に対して更に追加するものはなくなり、ステップ８０からステップ８４に進んで対応する。プロセッサ１１はステップ８４で「後」に関して不良終端リストを探索して現在候補句が受容可能に終了するかどうかを判定する。プロセッサ１１はステップ８４からステップ８６に分岐して不良終端リストに「後」が見つかることに対応する。そのステップでプロセッサ１１は現在候補句から最終語を除去して現在候補句を「年」とする。その後、プロセッサ１１はステップ８６からステップ８４に戻り再び現在候補句の最終語を検討する。不良終端リストに「年」はないので、プロセッサ１１はステップ８６からステップ８８に分岐して対応する。ステップ８８ではプロセッサ１１は現在候補句が複数句であるかどうかを判定する。現在候補句は１つの語しか含まないので、プロセッサ１１は現在候補句を捨ててステップ８８からステップ９６に分岐する。
【００３３】
プロセッサ１１はステップ９６で現在候補句の全ての語は既に検討してしまったので別の句を選択して検討しなければならないことを見いだす。その結果、プロセッサ１１はステップ９８に進んでまだ検討していない別の句があることを見いだす。プロセッサ１１はステップ７０に戻り、「料金対無料」を選択する。続いてプロセッサ１１は「料金」を選択して検討し、ステップ７２からステップ７４へ分岐する。
【００３４】
プロセッサ１１はステップ７４で「料金」は頻度の高い語ではないことを見いだす。それに対応してプロセッサ１１はステップ７２に戻って選択した句の次の語の「対」を選択する。プロセッサ１１は「対」は選択文書内で２回以上出現するので頻度の高い語であると見なす。それに従ってプロセッサ１１はステップ７４からステップ７６に分岐する。プロセッサ１１はステップ７６で選択語に関して不良開始リストを探索してそれをそこで発見する。それに対応してプロセッサ１１はステップ７６からステップ９６に分岐する。選択句の全ての語をまだ検討していないので、プロセッサ１１はステップ９６からステップ７２に戻る。プロセッサ１１はステップ７２で別の語を選択してステップ７４に進む。プロセッサ１１はステップ７４で選択した語の「無料」は選択文書内で頻度の高い用語であると判定する。更に次のステップで、プロセッサ１１は選択語は受容可能な開始部分であると判定する。それに対応してプロセッサ１１はステップ７８へ分岐して前述したようにステップ７８、８０、９４、８８、９６、９８を実行する。プロセッサ１１は全ての句を検討したことをステップ９８で見いだすまで命令４４の実行を続行する。それが為されると、プロセッサ１１はステップ９８からステップ１００に分岐して句候補を生成するタスクを完了する。
【００３５】
Ｃ．キーフレーズを選択する別の方法
図４は機械読み取り可能な形の文書からキーフレーズを選択する別の命令４０ａを流れ図形式で示したものである。命令４０ａは固体メモリ２８ないしフロッピィディスクドライブ２２に入れたフロッピィディスクに記憶することができる。命令４０ａはＬＩＳＰ及びＣ＋＋を含むどの様なコンピュータ言語でも実現することができる。
【００３６】
命令４０ａは命令４０とは、プロセッサ１１は命令４０を用いて選択するように同一句をキーフレーズとして必ずしも選択しなくてもよいという点で異なる。命令４０ａは更にプロセッサ１１がキーフレーズをより速く選択できるようにする点で命令４０と異なる。命令４０ａによりプロセッサ１１は文書から必要な情報を、命令４０では２回のパスを必要とするのに対して、１回のパスで抽出できる。命令４０ａは命令４０に比べてメモリの使用を増大してこの速度的な利点を達成する。それらの相違にも関わらず、命令４０ａは命令４０と非常に似ている。この類似故に、図４ではステップ４４ａと４５だけを例示し、命令４０ａはステップ４２ないし４６に相当するものは含んでいない。図４ではステップ４８ー６０はキーフレーズを選択する両方法に関して本質的に同一であるのでそれらのステップを例示していない。その結果、ステップ４８ー６０は命令４０ａの以下の説明では述べる必要がない。
【００３７】
プロセッサ１１はステップ４４ａで命令４０ａの実行を開始する。ステップ４４ａでプロセッサ１１は停止語及び受容可能な開始及び終端語を識別することで候補句表を生成する。ステップ４４ａでプロセッサ１１は候補句に含まれる語が頻度の高いものかどうかを考察しない。
【００３８】
ステップ４４ａでどの様に候補句表が構築されるかの説明を始める前に、まず句表の内容を考察する。句表は句カウント及び総称形式表示と表面形式表示の各々の候補句の２つの表示方法を含む。それらの表示が全く異なれば、候補句の語の大文字使用に関して異なることになる。候補句の総称形式表示は候補句の小文字バージョンであるが、文書内ではそれは出現しない。プロセッサ１１は候補句に関して総称形式を判定し句表内でその総称形式表示を探索することで、総称形式表示を句表へのキーとして使用する。プロセッサ１１が句表内で候補句の総称形式表示に遭遇すると、その候補句を句表に追加する必要はない。その代わり、プロセッサ１１は総称形式に関連した句カウントを増分する。表面形式表示は実際に大文字にした候補句の出現の１つを示すものである。表面形式表示によりプロセッサ１１は、コンピュータユーザに各々のキーフレーズを文書内で少なくとも１回実際に大文字にされたものとして提示できる。好適に表面形式表示は常に候補句の出現を最小の大文字で示す。
【００３９】
プロセッサ１１は総称及び表面形式の両方の候補句を語ＩＤ列として表現する。各々の語ＩＤは語の１つのＡＳＣＩＩ表示に対して一意的な整数である。その結果、同一語の異なる大文字化により、異なるＡＳＣＩＩ表示故に異なる語ＩＤを有することになる。例えば「ｈａｔｅ  ｓｐｅｅｃｈ」及び「Ｈａｔｅ  ｓｐｅｅｃｈ」という句は異なるＡＳＣＩＩ表示と異なる語ＩＤを有する。プロセッサ１１は語ＩＤを語ＩＤ表から得る。プロセッサ１１は句表と同時にステップ４４ａで語ＩＤ表を生成する。ステップ４４ａで語を選択して検討する度に、プロセッサ１１はその後のＡＳＣＩＩ表示に関して語ＩＤ表を探索する。語ＩＤ表に語のＡＳＣＩＩ表示が含まれなければ、プロセッサ１１はその表示を語ＩＤ表に加え、一意的な整数を指定して語ＩＤとして機能させる。プロセッサ１１は他の有用な情報を語ＩＤ表に格納して句表の生成速度を速める。文書の分析を始める前に、プロセッサ１１は語を停止、不良開始及び不良終端リストから表に追加し、その後に関連したフラグを設定して語表を初期化する。従って例えば「ｔｈｅ」という停止語を語ＩＤ表に追加する場合には、「ｔｈｅ」に関連した停止語フラグが設定される。それらのリストの語を語ＩＤ表に追加する結果、プロセッサ１１は特定の語に関した全ての情報を検索する際は語ＩＤ表だけを調べるだけでよい。
【００４０】
周知のハッシュ手法を用いてステップ４４ａの実行中に語ＩＤ表内及び句表の情報を効率的に探索できる。その結果、命令４０ａの実行中にそれらの表からどの様にプロセッサ１１が情報を検索するかに付いての説明は行わない。
【００４１】
句表と語ＩＤ表の説明を備えて、候補句を生成する命令４０ａの詳細を例示する図５を考察する。命令４０ａは命令４４に関して先述したのと実質的に同様の方法で候補句を生成する。その結果、以下の説明ではその先述の説明の知識を想定し、候補句を生成する２つの方法間の相違に焦点を当てる。命令４４と４４ａの間の相違は、命令４０ａは候補句を停止語を含むトークン化文書を文書内の語の頻度の先験的な知識なしに候補句を生成するので生じる。その結果、命令４０ａは停止語であるが希な用語でないものを探索する。語の頻度を使用せずに候補句を終了することで、命令４４を用いて生成する候補句に比べて候補句の平均長と数の両方が増大する。
【００４２】
命令４０ａの実行はステップ７０ａで始める。ステップ７０ａで、プロセッサ１１はステップ７０のように句ではなく、ある文章を候補句の潜在的な源として選択する。その後ステップ７２ａで、プロセッサ１１は選択語として選択文章の語の１つを指定する。ステップ７２ａからプロセッサ１１はステップ７４ａに進む。ステップ７４でプロセッサ１１は語ＩＤ表内の適切な項目を調べ、関連停止語フラグが設定されているかどうかを判定することで、選択語が停止語かどうかを判定する。そうであれば、選択語は句に関して受容可能な語ではなく、プロセッサ１１はステップ９６に進む。ステップ９６、９８の実行は、実質的に先述のものと同様に進められる。他方、選択語が停止語でなければ、プロセッサ１１はステップ７６に分岐する。
【００４３】
ステップ７６から、候補句の生成は命令４４に関して先述したものと実質的に同様の方法で３つの小さい相違点を有して進められる。第１には、プロセッサ１１はステップ７６、８２ａ、８６中にリストそれ自身を調べる代わりに、語ＩＤ表を調べて選択語が不良開始、不良終端ないし停止リストのいずれかにあるかどうかを判定する。プロセッサ１１が語ＩＤ表内に選択語を見つけることができなければ、ステップ７６でプロセッサ１１はその語の項目を表に加える。第２にステップ８２ａ中に、プロセッサ１１は図３のステップ８２の場合のように文書内のそれらの頻度よりも、それらが停止語かどうかに基づいて現在句から語を排除する。
【００４４】
候補句の生成後、プロセッサ１１はステップ９０に進んで、句表をどの様に変更するかを判定する用意をする。プロセッサ１１はこのタスクを語ＩＤ表を用いて現在候補句の総称形式及び表面形式表示を生成し、現在候補句の総称形式表示を句表に配置することで開始する。句表に総称形式表示があれば、現在候補句が句表内に既に含まれていることを示す。それに対してプロセッサ１１はステップ９２に進んで候補句に関連したカウントを増分する。ステップ９２でプロセッサ１１は更に候補句の現在表面形式表示が候補句の表面形式よりもより多くの大文字を含んでいれば、それを変更することができる。好適に、現在句が現在表面形式表示よりも多くの大文字を含んでいる場合には、表面形式表示の変更は行わない。他方、プロセッサ１１が現在候補の総称形式表示を見つけることができなければ、プロセッサ１１はステップ９４に向けてステップ９０を出る。ステップ９４では、プロセッサ１１は現在句の総称形式表示と表面形式表示の両方を句表に加え、関連句カウントを１に設定する。
【００４５】
ステップ４４ａで全ての可能な候補句を生成した後、プロセッサ１１は図４に示すステップ４５ａに進む。ステップ４５ａでは、句表から候補句の部分集合を選択する。プロセッサ１１はそれを文書内で最も頻繁に出現する候補句の部分集合を選択することで行う。ステップ４５ａで選択された句の数は出力するキーフレーズの数のＰを越えるはずであるが、さもなくば設計上の選択となる。ステップ４５ａの実行後、キーフレーズの選択は先述のように進める。
【図面の簡単な説明】
【図１】  機械読み取り可能文書からキーフレーズを自動的に選択するコンピュータシステムを示す。
【図２】  機械読み取り可能文書からキーフレーズを選択する方法の流れ図である。
【図３】  句から候補句を生成する方法の流れ図である。
【図４】  キーフレーズを選択する別の方法を流れ図形式で示す。
【図５】  候補句を生成する別の方法を流れ図形式で示す。
【符号の説明】
１０  コンピュータシステム
１１  プロセッサ
１２  モニタ
１３  プリンタ
１４  キーボード
１６  マウス
１８  タブレット
２０  スタイラスないしペン
２２  フロッピィディスクドライブ
２４  ＯＣＲ装置
２６  ハードコピー文書
２８  固体メモリ
【図１】
0003653141.tif 000002
【図２】
0003653141.tif 000003
【図３】
0003653141.tif 000004
【図４】
0003653141.tif 000005
【図５】
0003653141.tif 000006