特許第5697648号(P5697648)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤフー株式会社の特許一覧

特許5697648単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム
<>
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000002
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000003
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000004
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000005
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000006
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000007
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000008
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000009
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000010
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000011
  • 特許5697648-単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5697648
(24)【登録日】2015年2月20日
(45)【発行日】2015年4月8日
(54)【発明の名称】単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム
(51)【国際特許分類】
   G06F 17/27 20060101AFI20150319BHJP
   G10L 15/183 20130101ALI20150319BHJP
【FI】
   G06F17/27 655
   G10L15/183 200Z
【請求項の数】7
【全頁数】22
(21)【出願番号】特願2012-258722(P2012-258722)
(22)【出願日】2012年11月27日
(65)【公開番号】特開2014-106707(P2014-106707A)
(43)【公開日】2014年6月9日
【審査請求日】2013年6月14日
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100089118
【弁理士】
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】颯々野 学
【審査官】 本郷 彰
(56)【参考文献】
【文献】 特開2002−251402(JP,A)
【文献】 特開2003−122749(JP,A)
【文献】 特開2011−154061(JP,A)
【文献】 特開2011−096245(JP,A)
【文献】 特開2008−276561(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/27
G10L 15/183
(57)【特許請求の範囲】
【請求項1】
以上の文字を有する文を受け付ける受付部と、
1以上の単語と、単語と当該単語を分割した結果である2以上の分割単語の組である1以上の分割情報とを格納し得る単語分割用辞書を用いて、前記受付部が受け付けた文を構成する文字列と一致する最大長の単語を、前記単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を取得して、文を分割して得られる2以上の単語の集合である第一分割結果を取得する第一分割部と、
前記第一分割結果を出力する出力部と
前記受付部が受け付けた文を前記第一分割部とは異なるアルゴリズムにより分割して得られた2以上の単語の集合である第二分割結果と、前記第一分割結果とが異なる箇所に基づく分割情報を前記単語分割用辞書に蓄積する辞書登録部とを具備する単語分割装置。
【請求項2】
前記受付部が受け付けた文を、前記第一分割部とは異なるアルゴリズムにより文を分割して2以上の単語を取得する第二分割部を用いて、分割した2以上の単語の集合である第二分割結果を取得する第二分割結果取得部と、
前記第一分割結果と前記第二分割結果とが異なるか否かを判断する判断部と、
前記第一分割結果と前記第二分割結果とが異なると前記判断部が判断した場合、前記第一分割結果と前記第二分割結果とが異なる箇所に対応する文の中の文字列を取得し、当該異なる箇所に対応する前記第二分割結果に含まれる2以上の単語を取得し、前記取得した文字列である単語と、前記取得した2以上の単語とを有する分割情報を構成する分割情報取得部とをさらに具備し
前記辞書登録部は、前記分割情報取得部によって構成された分割情報を前記単語分割用辞書に蓄積することを特徴とする請求項1記載の単語分割装置。
【請求項3】
前記第一分割部とは異なるアルゴリズムにより、前記受付部が受け付けた文を分割して2以上の単語を取得する第二分割部をさらに具備する請求項2記載の単語分割装置。
【請求項4】
前記第二分割部は、
ビタビアルゴリズムを用いた形態素解析のアルゴリズムにより、文を分割して2以上の単語を取得する請求項2または請求項3記載の単語分割装置。
【請求項5】
前記単語分割用辞書を具備することを特徴とする請求項1〜4のいずれか1つに記載の単語分割装置。
【請求項6】
付部、第一分割部、出力部および辞書登録部により実現される単語分割方法であって、
前記受付部が、1以上の文字を有する文を受け付ける受付ステップと、
前記第一分割部が、1以上の単語と、単語と当該単語を分割した結果である2以上の分割単語の組である1以上の分割情報とを格納し得る単語分割用辞書を用いて、前記受付ステップで受け付けられた文を構成する文字列と一致する最大長の単語を、前記単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を取得して、文を分割して得られる2以上の単語の集合である第一分割結果を取得する第一分割ステップと、
前記出力部が、前記第一分割結果を出力する出力ステップと
前記辞書登録部が、前記受付ステップで受け付けられた文を前記第一分割ステップとは異なるアルゴリズムにより分割して得られた2以上の単語の集合である第二分割結果と、前記第一分割結果とが異なる箇所に基づく分割情報を前記単語分割用辞書に蓄積するステップとを具備する単語分割方法。
【請求項7】
ンピュータを、
1以上の文字を有する文を受け付ける受付部と、
1以上の単語と、単語と当該単語を分割した結果である2以上の分割単語の組である1以上の分割情報とを格納し得る単語分割用辞書を用いて、前記受付部が受け付けた文を構成する文字列と一致する最大長の単語を、前記単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を取得して、文を分割して得られる2以上の単語の集合である第一分割結果を取得する第一分割部と、
前記第一分割結果を出力する出力部と
前記受付部が受け付けた文を前記第一分割部とは異なるアルゴリズムにより分割して得られた2以上の単語の集合である第二分割結果と、前記第一分割結果とが異なる箇所に基づく分割情報を前記単語分割用辞書に蓄積する辞書登録部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文を2以上の単語に分割する単語分割装置等に関するものである。
【背景技術】
【0002】
従来、単語分割済みの第1のコーパスと単語非分割の第2のコーパスを有効に利用して、単語のn-gram確率を高い精度で計算し、自然言語処理の認識精度を上げる技術が存在した(特許文献1参照)。
【0003】
また、従来、ユーザが容易にカスタマイズ可能な形態素解析システムが存在した(特許文献2参照)。本システムでは、テキスト入力部へ入力された文字列を、汎用形態素解析部が形態素解析用辞書を参照して複数の形態素に分割する。次に、汎用形態素解析部により分割された複数の形態素に対して、パターンマッチングエンジンが、パターンファイル内にユーザにより記述された形態素の分割、又は結合を指示するパターンを参照し、変換処理を施す。そして、パターンマッチングエンジンにより変換された複数の形態素は、解析結果として出力生成部から出力される。
【0004】
さらに、従来、文や複合語などの単語列を、正しい単語の並びに分割する技術が存在した(特許文献3参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−31295号公報(第1頁、第1図等)
【特許文献2】特開平10−40252号公報(第1頁、第1図等)
【特許文献3】特開平7−262191号公報(第1頁、第1図等)
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術においては、文を2以上の単語に高速に分割できなかった。
【課題を解決するための手段】
【0007】
本第一の発明の単語分割装置は、1以上の単語と、単語と単語を分割した結果である2以上の分割単語の組である1以上の分割情報とを格納し得る単語分割用辞書と、1以上の文字を有する文を受け付ける受付部と、単語分割用辞書を用いて、受付部が受け付けた文を構成する文字列と一致する最大長の単語を、単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を取得して、文を分割して得られる2以上の単語の集合である第一分割結果を取得する第一分割部と、第一分割結果を出力する出力部とを具備する単語分割装置である。
【0008】
かかる構成により、非常に簡易な処理により文を2以上の単語に分割できるため、文を2以上の単語に高速に分割できる。
【0009】
また、本第二の発明の単語分割装置は、第一の発明に対して、受付部が受け付けた文を、第一分割部とは異なるアルゴリズムにより文を分割して2以上の単語を取得する第二分割部を用いて、分割した2以上の単語の集合である第二分割結果を取得する第二分割結果取得部と、第一分割結果と第二分割結果とが異なるか否かを判断する判断部と、第一分割結果と第二分割結果とが異なると判断部が判断した場合、第一分割結果と第二分割結果とが異なる箇所に対応する文の中の文字列を取得し、異なる箇所に対応する第二分割結果に含まれる2以上の単語を取得し、取得した文字列である単語と、取得した2以上の単語とを有する分割情報を構成する分割情報取得部と、分割情報を単語分割用辞書に蓄積する辞書登録部とをさらに具備する単語分割装置である。
【0010】
かかる構成により、単語分割用辞書を充実させることができる。
【0011】
また、本第三の発明の単語分割装置は、第二の発明に対して、第一分割部とは異なるアルゴリズムにより、受付部が受け付けた文を分割して2以上の単語を取得する第二分割部をさらに具備する単語分割装置である。
【0012】
かかる構成により、単語分割用辞書を充実させることができる。
【0013】
また、本第四の発明の単語分割装置は、第二または第三の発明に対して、第二分割部は、ビタビアルゴリズムを用いた形態素解析のアルゴリズムにより、文を分割して2以上の単語を取得する単語分割装置である。
【0014】
かかる構成により、単語分割用辞書に精度の高い分割情報を登録できる。
【発明の効果】
【0015】
本発明による単語分割装置によれば、文を2以上の単語に高速に分割できる。
【図面の簡単な説明】
【0016】
図1】実施の形態1における単語分割装置1のブロック図
図2】同単語分割装置1の動作について説明するフローチャート
図3】同単語分割用辞書11を示す図
図4】実施の形態2における単語分割装置2のブロック図
図5】同単語分割装置2の動作について説明するフローチャート
図6】同単語分割装置3のブロック図
図7】単語分割装置1の実験結果を示す図
図8】単語分割装置1の実験結果を示す図
図9】上記実施の形態におけるコンピュータシステムの概観図
図10】同実施の形態におけるコンピュータシステムのブロック図
図11】実施の形態2における単語分割装置2の他のブロック図
【発明を実施するための形態】
【0017】
以下、単語分割装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0018】
(実施の形態1)
本実施の形態において、文を2以上の単語に分割する単語分割装置1について説明する。
【0019】
図1は、本実施の形態における単語分割装置1のブロック図である。単語分割装置1は、単語分割用辞書11、受付部12、第一分割部13、および出力部14を備える。
【0020】
単語分割用辞書11は、1以上の単語と1以上の分割情報とを格納し得る。分割情報は、単語と2以上の分割単語の組である。分割単語は、単語を分割した結果である。分割情報は、例えば、「自由形式:自由/形式」「はないか:は/ない/か」である。分割情報「自由形式:自由/形式」の「自由形式」は単語であり、「自由/形式」の「自由」「形式」は、それぞれ分割単語である。また、分割情報「はないか:は/ない/か」の「はないか」は単語であり、「は/ない/か」の「は」「ない」「か」はそれぞれ分割単語である。なお、単語は、形態素や連語など、意味を持つあらゆる用語を含む、と考えても良い。また、分割単語も単語と言える。
【0021】
また、単語分割用辞書11において、1以上の単語と1以上の分割情報とを同一ファイルや同一データベースに保持されていていることが好適である。但し、1以上の単語と1以上の分割情報とは、別ファイルや別のデータベースに保持されていても良い。つまり、単語分割用辞書11の具体的なデータ構造は問わない。単語分割用辞書11は、1以上の単語と1以上の分割情報とを保持していれば良い。
【0022】
単語分割用辞書11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。単語分割用辞書11に単語や分割情報が記憶される過程は問わない。例えば、記録媒体を介して単語や分割情報が単語分割用辞書11で記憶されるようになってもよく、通信回線等を介して送信された単語や分割情報が単語分割用辞書11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された単語や分割情報が単語分割用辞書11で記憶されるようになってもよい。
【0023】
受付部12は、1以上の文字を有する文を受け付ける。文は不完全な文でも良い。つまり、文は連語などでもよい。また、文の言語は、問わない。文は、通常、日本語、中国語、韓国語、モンゴル語等、分かち書きしない言語の文である。ただし、文は、英語等の分かち書きしない言語でも良い。文は、例えば、URLを示す文字列、ファイル名を示す文字列などでも良い。また、ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【0024】
文の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部12は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0025】
第一分割部13は、受付部12が受け付けた文を分割し、2以上の単語の集合である第一分割結果を取得する。
さらに具体的には、第一分割部13は、単語分割用辞書を用いて、受付部12が受け付けた文を構成する文字列と一致する最大長の単語を、単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を取得して、文を分割して得られる2以上の単語の集合である第一分割結果を取得する。かかる処理をさらに詳細に説明すると、以下のような処理になる。第一分割部13は、単語分割用辞書を用いて、受付部12が受け付けた文を構成する1以上の文字列を取得する。そして、第一分割部13は、当該1以上の各文字列と一致する最大長の単語を単語分割用辞書から取得する。そして、第一分割部13は、単語分割用辞書から取得した1以上の各単語ごとに、単語に対応する2以上の分割単語を取得して、文を分割して得られる2以上の単語の集合である第一分割結果を取得する。
【0026】
第一分割部13は、さらに具体的には、例えば、以下のように処理を行う。まず、第一分割部13は、受付部12が受け付けた文の先頭である文のポインタから最大長の文字列に一致する単語を、単語分割用辞書11から取得する第一の処理を行う。そして、第一分割部13は、取得した単語に対応する2以上の分割単語を有する場合は、一致する単語に変えて2以上の分割単語を取得する第二の処理を行う。この第一の処理と第二の処理とを含めて、分割単語取得処理という。そして、第一分割部13は、文のポインタを、前記一致する単語の次の文字に移動する。そして、第一分割部13は、上記の分割単語取得処理を文の最後の文字を含む単語まで行う。その結果、第一分割部13は、文を分割して得られる2以上の単語の集合である第一分割結果が取得できる。なお、第一の処理において取得した単語が、分割情報に含まれる単語ではない場合、第一分割部13は、当該第一の処理において取得した単語をそのまま保持する。また、第一分割結果は、2以上の単語の集合であるが、当該2以上の区切りが判断できる態様のデータ構造を有する。
【0027】
また、第一分割部13が行う第一の処理の方法は問わない。第一分割部13が行う第一の処理は、いわゆる最長一致法(longest match あるいは maximum matchとも言う。)等の公知技術が利用可能である。最長一致法は、「岩波書店,岩波講座,ソフトウェア科学15 自然言語処理 126-127ページ 長尾真編」等に記載されている。
【0028】
また、第一分割部13は、文のポインタから最大長の文字列を、当該文のポインタが示す文字から文の最後の文字(文のポインタからN番目の文字だとする)までの文字列(これを文字列Aとする。)と一致する単語が単語分割用辞書11に存在するか否かを判断し、存在すれば当該文字列Aを取得し、存在しなければ、当該文のポインタが示す文字から文のポインタから(N−1)番目の文字までの文字列(これを文字列Bとする。)と一致する単語が単語分割用辞書11に存在するか否かを判断し、存在すれば当該文字列Bを取得する。存在しなければ、上記の処理と同様に、1文字ずつ文字列を少なくしていって、文のポインタが示す文字を先頭とする文字列の中で、最大長の文字列の単語を、単語分割用辞書11から検索する。つまり、第一分割部13は、文の中の未処理の文字列の最長文字列から、1文字ずつ減らしながら、順に単語分割用辞書11を検索して、ポインタpから最長の文字列を取得しても良い。
なお、第一分割部13は、文の中から最大長の文字列を検出するためのデータ構造として、公知技術である「トライ(trie)」が存在する。トライについて、以下の(1)〜(3)に記載されているので詳細な説明を省略する。
(1)徳永拓之著「日本語入力を支える技術」,89-99ページ
(2)インターネット ウェブページ,URL
「http://www.slideshare.net/higashiyama/ss-8738479」
(3)インターネット ウェブページ,URL
「http://nanika.osonae.com/DArray/dary.html」
【0029】
第一分割部13は、通常、MPUやメモリ等から実現され得る。第一分割部13の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0030】
出力部14は、第一分割部13が取得した第一分割結果を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。処理結果を他のプログラムに引渡す場合、単語分割装置1と他のプログラムとは、例えば、音声認識装置、機械翻訳装置などを実現する。つまり、文を分割して得られた第一分割結果は、例えば、音声認識処理、機械翻訳処理等に利用され得る。
【0031】
出力部14は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部14は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0032】
次に、単語分割装置1の動作について、図2のフローチャートを用いて説明する。
【0033】
(ステップS201)受付部12は、文を受け付けたか否かを判断する。文を受け付ければステップS202に行き、文を受け付けなければステップS201に戻る。
【0034】
(ステップS202)第一分割部13は、文のポインタpを1に設定する。文のポインタpは、文の中における、単語取得の先頭の位置を示す。
【0035】
(ステップS203)第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字から、最大長の文字列と一致する単語を検索する。そして、第一分割部13は、最大長の文字列である単語を単語分割用辞書11から取得する。
【0036】
(ステップS204)第一分割部13は、ステップS203で取得した単語が、分割情報に含まれる単語であるか否かを判断する。分割情報に含まれる単語であればステップS205に行き、分割情報に含まれる単語でなければステップS206に行く。
【0037】
(ステップS205)第一分割部13は、ステップS203で取得した単語に対応する2以上の分割単語を、単語分割用辞書11から取得する。そして、第一分割部13は、2以上の分割単語をバッファに追記する。なお、バッファの初期値はNULLである。また、第一分割部13は、2以上の各分割単語に区切り文字を入れて、2以上の分割単語をバッファに追記する。区切り文字は、例えば、「/」「 (スペース)」「,」等、何でも良い。ステップS207に行く。
【0038】
(ステップS206)第一分割部13は、ステップS203で取得した単語をバッファに追記する。なお、第一分割部13は、ステップS203で取得した単語と、前または/および後の単語との間には、区切り文字を配置する。
【0039】
(ステップS207)第一分割部13は、ポインタpを、最大長の文字列長の分だけ進める。
【0040】
(ステップS208)第一分割部13は、すべての分割処理が終了したか否かを判断する。すべての分割処理が終了していればステップS209に行き、終了していなければステップS203に戻る。なお、ポインタpが文の最後の文字の次の位置である場合、すべての分割処理が終了した、と言える。
【0041】
(ステップS209)出力部14は、バッファ内の2以上の単語を出力する。ステップS201に戻る。
【0042】
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
また、図2のフローチャートにおいて、受け付けられた文の先頭から処理を開始し、文の終わりまで順に処理を行った。しかし、例えば、受け付けられた文の最後から処理を開始し、文の後から前の方向に処理を進めて行っても良い。つまり、ステップS202で、第一分割部13は、文のポインタpを文の最後に設定し、ステップS207で、ポインタpを、最大長の文字列長の分だけ、文の前に戻っても良い。かかる場合、ステップS203で、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字から前にポインタを進めなて、最大長の文字列と一致する単語を検索する。そして、第一分割部13は、最大長の文字列である単語を単語分割用辞書11から取得する。
【0043】
以下、本実施の形態における単語分割装置1の具体的な動作について説明する。
【0044】
今、図3が単語分割用辞書11である。単語分割用辞書11を構成するレコードは、「ID」「単語」「分割単語」を有する。単語分割用辞書11のレコードは、品詞や出現確率等の他の情報を有しても良い。また、単語分割用辞書11のレコードは、単語または分割情報に分類される。
【0045】
単語に分類されるレコードは、属性「分割単語」の値がNULL(図3の「−」)である。また、単語に分類されるレコードは、例えば、図3の「ID=5,6,8,9,10,11,12,13」のレコードである。また、分割情報に分類されるレコードは、属性「分割単語」の値が2以上の分割単語を有する。属性「分割単語」における分割単語は、ここでは、区切り文字「/」で区切られている。さらに、分割情報に分類されるレコードは、例えば、図3の「ID=1,2,3,4,7」のレコードである。なお、単語分割用辞書11のレコードは、「単語か分割情報かを示すフラグ」を属性値として有しても良い。
【0046】
(具体例1)
かかる状況において、受付部12は、文「正夫はしっかり者だ」を受け付けた、とする。次に、第一分割部13は、文のポインタpを1に設定する。つまり、ポインタpは文の「正」の位置に設定された。
【0047】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「正」から、最大長の文字列と一致する単語「正夫」を検索し、取得する。
【0048】
次に、第一分割部13は、取得した単語「正夫」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「正夫」に対応する分割情報が「−(NULL)」であると判断する。
【0049】
そして、第一分割部13は、取得した単語「正夫」をバッファに追記する。
【0050】
次に、第一分割部13は、単語「正夫」の文字列長「2」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「2」だけ進め、ポインタpを文の「は」の位置に設定する。
【0051】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0052】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「は」から、最大長の文字列と一致する単語「は」を検索し、取得する。
【0053】
次に、第一分割部13は、取得した単語「は」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「は」に対応する分割情報が「−(NULL)」であると判断する。
【0054】
そして、第一分割部13は、取得した単語「は」をバッファに追記する。なお、第一分割部13は、単語「は」の前に区切り文字「/」を入れて、バッファに追記する。そして、現在のバッファには「正夫/は」が格納された。
【0055】
次に、第一分割部13は、単語「は」の文字列長「1」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「1」だけ進め、ポインタpを文の「し」の位置に設定する。
【0056】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0057】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「し」から、最大長の文字列と一致する単語「しっかり者」を検索し、取得する。
【0058】
次に、第一分割部13は、取得した単語「しっかり者」が、分割情報に含まれる単語であるか否かを判断する。つまり、単語「しっかり者」に対応する分割単語がNULLでないので、第一分割部13は、単語「しっかり者」が、分割情報に含まれる単語であると判断する。
【0059】
そして、第一分割部13は、単語「しっかり者」に対応する分割情報「しっかり/者」を、単語分割用辞書11から取得する。
【0060】
そして、第一分割部13は、区切り文字「/」と取得した単語「しっかり/者」とをバッファに追記する。そして、現在のバッファには「正夫/は/しっかり/者」が格納された。
【0061】
次に、第一分割部13は、単語「しっかり者」の文字列長「5」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「5」だけ進め、ポインタpを文の「だ」の位置に設定する。
【0062】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0063】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「だ」から、最大長の文字列と一致する単語「だ」を検索し、取得する。
【0064】
次に、第一分割部13は、取得した単語「だ」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「だ」に対応する分割情報が「−(NULL)」であると判断する。
【0065】
そして、第一分割部13は、区切り文字「/」と取得した単語「だ」とをバッファに追記する。そして、現在のバッファには「正夫/は/しっかり/者/だ」が格納された。
【0066】
次に、第一分割部13は、単語「だ」の文字列長「1」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「1」だけ進め、ポインタpを文の「だ」の次の位置に設定する。
【0067】
次に、第一分割部13は、分割処理が終了した、と判断する。
【0068】
そして、出力部14は、バッファ内の2以上の分割された単語列「正夫/は/しっかり/者/だ」を出力する。
【0069】
(具体例2)
受付部12は、文「そうはいってもまだ子供」を受け付けた、とする。次に、第一分割部13は、文のポインタpを1に設定する。つまり、ポインタpは文の「そ」の位置に設定された。
【0070】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「そ」から、最大長の文字列と一致する単語「そうはいっても」を検索し、取得する。
【0071】
次に、第一分割部13は、取得した単語「そうはいっても」が、分割情報に含まれる単語であるか否かを判断する。つまり、単語「そうはいっても」に対応する分割単語がNULLでないので、第一分割部13は、単語「そうはいっても」が、分割情報に含まれる単語であると判断する。
【0072】
そして、第一分割部13は、単語「そうはいっても」に対応する分割情報「そう/は/いって/も」を、単語分割用辞書11から取得する。
【0073】
そして、第一分割部13は、取得した単語「そう/は/いって/も」をバッファに追記する。そして、現在のバッファには「そう/は/いって/も」が格納された。
【0074】
次に、第一分割部13は、単語「そうはいっても」の文字列長「7」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「7」だけ進め、ポインタpを文の「ま」の位置に設定する。
【0075】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0076】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「ま」から、最大長の文字列と一致する単語「まだ」を検索し、取得する。
【0077】
次に、第一分割部13は、取得した単語「まだ」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「は」に対応する分割情報が「−(NULL)」であると判断する。
【0078】
そして、第一分割部13は、区切り文字「/」と取得した単語「まだ」とをバッファに追記する。そして、現在のバッファには「そう/は/いって/も/まだ」が格納された。
【0079】
次に、第一分割部13は、単語「まだ」の文字列長「2」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「2」だけ進め、ポインタpを文の「子」の位置に設定する。
【0080】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0081】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「子」から、最大長の文字列と一致する単語「子供」を検索し、取得する。
【0082】
次に、第一分割部13は、取得した単語「子供」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「は」に対応する分割情報が「−(NULL)」であると判断する。
【0083】
そして、第一分割部13は、区切り文字「/」と取得した単語「子供」とをバッファに追記する。そして、現在のバッファには「そう/は/いって/も/まだ/子供」が格納された。
【0084】
次に、第一分割部13は、単語「まだ」の文字列長「2」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「2」だけ進め、ポインタpを文の「供」の次の位置に設定する。
【0085】
次に、第一分割部13は、分割処理が終了した、と判断する。
【0086】
そして、出力部14は、バッファ内の2以上の分割された単語列「そう/は/いって/も/まだ/子供」を出力する。
【0087】
以上、本実施の形態によれば、非常に簡易な処理により、文を2以上の単語に分割できる。そのため、文の単語への分割が非常に高速に行える。
【0088】
なお、本実施の形態において、第一分割部13が最大長の文字列である単語を単語分割用辞書11から取得するアルゴリズムは問わない。
また、本実施の形態において、第二分割部21の代わりに、1以上の第二分割結果の集合である第二分割結果格納部26を用いても良い。かかる場合、判断部23は、第一分割結果と、第二分割結果格納部26に格納されている第二分割結果とが異なるか否かを判断する。そして、かかる場合、単語分割装置2は、単語分割用辞書11、受付部12、第一分割部13、出力部14、判断部23、分割情報取得部24、辞書登録部25、および第二分割結果格納部26を備える。かかる場合の単語分割装置2のブロック図を図11に示す。
そして、図11において、分割情報取得部24は、判断部23経由で、第二分割結果格納部26から第二分割結果を取得する。
なお、第二分割結果格納部26の第二分割結果の集合は、一定以上の多量のデータであり、人手で作成した単語分割済みのデータであることが好適である。また、第一分割結果と第二分割結果格納部26に格納されている第二分割結果とに関して、分割対象の文は同じである。
【0089】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における単語分割装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、1以上の単語と、単語と当該単語を分割した結果である2以上の分割単語の組である1以上の分割情報とを有する単語分割用辞書を格納しており、コンピュータを、1以上の文字を有する文を受け付ける受付部と、前記受付部が受け付けた文の先頭である文のポインタから最大長の文字列に一致する単語を、前記単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を有する場合は、前記一致する単語に変えて前記2以上の分割単語を取得する分割単語取得処理を行い、前記文のポインタを前記一致する単語の次の文字に移動した後、前記分割単語取得処理を文の最後の文字を含む単語まで行い、文を分割して得られる2以上の単語の集合である第一分割結果を取得する第一分割部と、前記第一分割結果を出力する出力部として機能させるためのプログラム、である。
【0090】
(実施の形態2)
本実施の形態において、文の分割処理を行いながら、単語分割用辞書を充実させることができる単語分割装置1について説明する。
【0091】
図4は、本実施の形態における単語分割装置2のブロック図である。単語分割装置2は、単語分割用辞書11、受付部12、第一分割部13、出力部14、第二分割部21、第二分割結果取得部22、判断部23、分割情報取得部24、辞書登録部25を備える。
【0092】
第二分割部21は、第一分割部13とは異なるアルゴリズムにより、受付部12が受け付けた文を分割して2以上の単語を取得する。この2以上の単語を第二分割結果とも言う。
【0093】
第二分割部21は、文を分割し2以上の単語を取得する処理において、一定以上の精度を有することが確認できているものであることが好適である。例えば、第二分割部21は、ビタビアルゴリズムを用いた形態素解析のアルゴリズムにより、文を分割して2以上の単語を取得する。
【0094】
第二分割結果取得部22は、第二分割部21が取得した2以上の単語の集合である第二分割結果を取得する。なお、第二分割結果取得部22は、第二分割部21から第二分割結果を取得するだけの処理である。
【0095】
また、後述する判断部23に、第二分割部21が第二分割結果を渡しても良い。かかる場合、第二分割結果取得部22は、何も処理を行わないが、第二分割結果を第二分割結果取得部22が判断部23に渡した、と考えても良い。
【0096】
判断部23は、第一分割結果と第二分割結果とが異なるか否かを判断する。なお、第一分割結果は、第一分割部13が取得した2以上の単語の集合である。
【0097】
分割情報取得部24は、第一分割結果と第二分割結果とが異なると判断部23が判断した場合、分割情報を構成する。
【0098】
分割情報は、第一分割結果と第二分割結果とが異なる箇所に対応する文の中の文字列と、当該文字列に対応する2以上の区切られた単語であり、第二分割結果に含まれる2以上の単語とを有する。つまり、分割情報取得部24は、まず、第一分割結果と第二分割結果とが異なる箇所を特定する。次に、分割情報取得部24は、受付部12が受け付けた文の中から、当該箇所に対応する文の中の文字列を取得する。次に、分割情報取得部24は、第二分割結果の中から、当該文字列に対応する2以上の分割単語を取得する。そして、分割情報取得部24は、文の中の文字列と、2以上の分割単語とを有する分割情報を構成する。なお、文の中の文字列は、分割情報を構成する単語である。
【0099】
辞書登録部25は、分割情報取得部24が取得した分割情報を単語分割用辞書11に蓄積する。
【0100】
第二分割部21、第二分割結果取得部22、判断部23、分割情報取得部24、および辞書登録部25は、通常、MPUやメモリ等から実現され得る。第二分割部21等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0101】
次に、単語分割装置2の動作について、図5のフローチャートを用いて説明する。図5のフローチャートにおいて、図2のフローチャートと同一ステップについて、説明を省略する。
【0102】
(ステップS501)第二分割部21が、受付部12が受け付けた文に対して、分割処理を行い、2以上の単語を取得する。この2以上の単語は第二分割結果である。
【0103】
(ステップS502)第二分割結果取得部22は、第二分割結果を取得する。
【0104】
(ステップS503)判断部23は、第一分割結果を取得する。
【0105】
(ステップS504)判断部23は、カウンタi、およびjに1を代入する。カウンタiは第一分割結果に含まれる分割単語のカウンタであり、カウンタjは第二分割結果に含まれる分割単語のカウンタである。
【0106】
(ステップS505)判断部23は、第二分割結果の中にj番目の分割単語が存在するか否かを判断する。j番目の分割単語が存在すればステップS506に行き、j番目の分割単語が存在しなければステップS201に戻る。
【0107】
(ステップS506)判断部23は、第一分割結果の中のi番目の分割単語と、第二分割結果の中のj番目の分割単語とが一致するか否かを判断する。一致する場合はステップS511に行き、一致しない場合はステップS507に行く。
【0108】
(ステップS507)分割情報取得部24は、第一分割結果の中の分割単語と、第二分割結果の中の分割単語との、最後の文字が一致するまで、第二分割結果の中から、2以上の分割単語を取得する。なお、この2以上の分割単語は、j番目の分割単語から連続する分割単語である。
【0109】
(ステップS508)分割情報取得部24は、分割情報を構成する。つまり、分割情報取得部24は、ステップS507で取得した1以上の分割単語から区切り文字を削除し、単語を取得する。そして、分割情報取得部24は、当該単語と、ステップS507で取得した2以上の分割単語とを用いて、分割情報を構成する。なお、分割情報取得部24は、ステップS507で取得した1以上の分割単語から区切り文字を削除し単語を取得するのではなく、受付部12が受け付けた文から単語を取得しても良い。
【0110】
(ステップS509)辞書登録部25は、ステップS508で構成された分割情報を、単語分割用辞書11に登録する。
【0111】
(ステップS510)判断部23は、カウンタiおよびjを、ステップS507で、最後の文字が一致した分割単語まで進める。
【0112】
(ステップS511)判断部23は、カウンタiおよびjを、それぞれ1ずつ進める。ステップS505に戻る。
【0113】
なお、図5のフローチャートにおいて、第一分割結果と第二分割結果とが異なる場合でも、出力部14は第一分割結果を出力した。しかし、第一分割結果と第二分割結果とが異なる場合に、出力部14は第二分割結果を出力しても良い。また、単語分割用辞書11が予め決められた条件を満たすほど充実する前は、出力部14は第二分割結果を出力し、充実した後は、出力部14は第一分割結果を出力しても良い。
【0114】
また、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0115】
以下、本実施の形態における単語分割装置2の具体的な動作について説明する。
【0116】
今、図3が単語分割用辞書11である。
【0117】
かかる状況において、受付部12は、文「間違いはないか」を受け付けた、とする。次に、第一分割部13は、文のポインタpを1に設定する。つまり、ポインタpは文の「間」の位置に設定された。
【0118】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「間」から、最大長の文字列と一致する単語「間違い」を検索し、取得する。
【0119】
次に、第一分割部13は、取得した単語「間違い」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「間違い」に対応する分割情報が「−(NULL)」であると判断する。
【0120】
そして、第一分割部13は、取得した単語「間違い」をバッファに追記する。
【0121】
次に、第一分割部13は、単語「間違い」の文字列長「3」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「3」だけ進め、ポインタpを文の「は」の位置に設定する。
【0122】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0123】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「は」から、最大長の文字列と一致する単語「はな」を検索し、取得する。
【0124】
次に、第一分割部13は、取得した単語「はな」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「はな」に対応する分割情報が「−(NULL)」であると判断する。
【0125】
そして、第一分割部13は、取得した単語「はな」をバッファに追記する。なお、第一分割部13は、単語「はな」の前に区切り文字「/」を入れて、バッファに追記する。そして、現在のバッファには「間違い/はな」が格納された。
【0126】
次に、第一分割部13は、単語「はな」の文字列長「2」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「2」だけ進め、ポインタpを文の「い」の位置に設定する。
【0127】
次に、第一分割部13は、まだ、分割処理が終了していない、と判断する。
【0128】
次に、第一分割部13は、単語分割用辞書11に存在する単語であり、文の中のpに対応する文字「い」から、最大長の文字列と一致する単語「いか」を検索し、取得する。
【0129】
次に、第一分割部13は、取得した単語「いか」が、分割情報に含まれる単語であるか否かを判断する。つまり、第一分割部13は、単語「いか」に対応する分割情報が「−(NULL)」であると判断する。
【0130】
そして、第一分割部13は、区切り文字「/」と取得した単語「いか」とをバッファに追記する。そして、現在のバッファには「間違い/はな/いか」が格納された。
【0131】
次に、第一分割部13は、単語「いか」の文字列長「2」を算出する。次に、第一分割部13は、ポインタpを、最大長の文字列長の分「2」だけ進め、ポインタpを文の「が」の次の位置に設定する。
【0132】
次に、第一分割部13は、分割処理が終了した、と判断する。
【0133】
そして、出力部14は、バッファ内の2以上の分割された単語列「間違い/はな/いか」を出力する。
【0134】
次に、第二分割部21が、受付部12が受け付けた文「間違いはないか」に対して、分割処理を行い、2以上の単語「間違い/は/ない/か」を取得した、とする。
【0135】
次に、第二分割結果取得部22は、第二分割結果「間違い/は/ない/か」を取得する。また、判断部23は、第一分割結果「間違い/はな/いか」を取得する。
【0136】
次に、判断部23は、カウンタi、およびjに1を代入する。
【0137】
次に、判断部23は、第二分割結果の中に1番目の分割単語が存在すると判断する。また、次に、判断部23は、第一分割結果の中の1番目の分割単語と、第二分割結果の中に1番目の分割単語とが一致すると判断する。そして、判断部23は、カウンタiおよびjを、それぞれ1ずつ進める。
【0138】
次に、判断部23は、第二分割結果の中に2番目の分割単語が存在すると判断する。また、次に、判断部23は、第一分割結果の中の2番目の分割単語「はな」と、第二分割結果の中の2番目の分割単語「は」とが一致しない、と判断する。
【0139】
次に、分割情報取得部24は、第一分割結果の中の分割単語と、第二分割結果の中の分割単語との、最後の文字が一致するまで、第二分割結果の中から、2以上の分割単語を取得する。つまり、分割情報取得部24は、第二分割結果の中の「は/ない/か」を取得する。
【0140】
次に、分割情報取得部24は、第二分割結果の中の「は/ない/か」から区切り文字を除き、単語「はないか」を取得する。そして、分割情報取得部24は、単語「はないか」と2以上の分割単語「は/ない/か」を用いて、分割情報を構成する。
【0141】
次に、辞書登録部25は、構成された分割情報を、単語分割用辞書11に登録する。この分割情報は、単語「はないか」と2以上の分割単語「は/ない/か」とを有する情報である。
【0142】
次に、判断部23は、カウンタiおよびjを、最後の文字が一致した分割単語まで進める。つまり、判断部23は、カウンタiを2進め、カウンタjを3進める。
【0143】
次に、判断部23は、第二分割結果の中に5番目の分割単語が存在しない、と判断する。そして、処理を終了する。
【0144】
以上、本実施の形態によれば、文の分割処理を行いながら、単語分割用辞書を充実させることができる。
【0145】
なお、本実施の形態によれば、単語分割装置は第二分割部21を有した。しかし、第二分割部21は、単語分割装置の外部の装置に存在しても良い。かかる場合の単語分割装置3のブロック図を図6に示す。なお、ここでは、単語分割装置3は、第二分割部21を具備する単語分割装置4から、第二分割結果を受け取るものとする。つまり、かかる場合、例えば、第二分割結果取得部22は、第二分割部21が取得した2以上の単語の集合である第二分割結果を、単語分割装置4から受信する。
【0146】
さらに、本実施の形態における単語分割装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、1以上の単語と、単語と当該単語を分割した結果である2以上の分割単語の組である1以上の分割情報とを有する単語分割用辞書を格納しており、コンピュータを、1以上の文字を有する文を受け付ける受付部と、前記受付部が受け付けた文の先頭である文のポインタから最大長の文字列に一致する単語を、前記単語分割用辞書から取得し、当該取得した単語に対応する2以上の分割単語を有する場合は、前記一致する単語に変えて前記2以上の分割単語を取得する分割単語取得処理を行い、前記文のポインタを前記一致する単語の次の文字に移動した後、前記分割単語取得処理を文の最後の文字を含む単語まで行い、文を分割して得られる2以上の単語の集合である第一分割結果を取得する第一分割部と、前記第一分割結果を出力する出力部として機能させるためのプログラム、である。
【0147】
上記プログラムにおいて、コンピュータを、前記受付部が受け付けた文を、前記第一分割部とは異なるアルゴリズムにより文を分割して2以上の単語を取得する第二分割部を用いて、分割した2以上の単語の集合である第二分割結果を取得する第二分割結果取得部と、前記第一分割結果と前記第二分割結果とが異なるか否かを判断する判断部と、前記第一分割結果と前記第二分割結果とが異なると前記判断部が判断した場合、前記第一分割結果と前記第二分割結果とが異なる箇所に対応する文の中の文字列を取得し、当該異なる箇所に対応する前記第二分割結果に含まれる2以上の単語を取得し、前記取得した文字列である単語と、前記取得した2以上の単語とを有する分割情報を構成する分割情報取得部と、前記分割情報を前記単語分割用辞書に蓄積する辞書登録部として、さらに機能させることは好適である。
【0148】
上記プログラムにおいて、コンピュータを、前記第一分割部とは異なるアルゴリズムにより、前記受付部が受け付けた文を分割して2以上の単語を取得する第二分割部をさらに具備するものとして、さらに機能させることは好適である。
【0149】
上記プログラムにおいて、コンピュータを、前記第二分割部は、ビタビアルゴリズムを用いた形態素解析のアルゴリズムにより、文を分割して2以上の単語を取得するものとして機能させることは好適である。
(実験1)
【0150】
以下、単語分割装置1を用いた実験1の結果について説明する。なお、単語分割装置1を実現するソフトウェアは、「MA-2」という名称である。また、他の単語分割装置として、公知技術である「MeCab 0.98」を用いた。「MeCab 0.98」は、「http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html」に記載されている。また、他の単語分割装置として、出願人が開発した単語分割装置であり、Viterbiアルゴリズムを用いた単語分割装置「MA-1」も用いた。図7に、上記の3つの装置に、UTF−8日本語テキスト388.5MBを入力し、各装置の処理速度(KB/sec)を測定した。単語分割装置1である「MA-2」は、「MeCab 0.98」の4.3倍、「WebMA2(Version 3.7.0)」の7.5倍の処理速度であった。なお、単語分割装置1である「MA-2」によれば、新聞1年分を約30秒で解析可能であることが分かる。
(実験2)
【0151】
次に、単語分割装置1「MA-2」を用いた実験2の結果について説明する。実験2の結果を、図8に記載する。実験2において、他の単語分割装置として、公知技術である「JUMAN 6.0」「MeCab 0.98」「KyTea 0.3.0」「ChaSen 2.3.3」を用いた。「JUMAN 6.0」は「http://nlp.ist.i.kyoto-u.ac.jp/index.php?cmd=read&page=JUMAN&alias%5B%5D=%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0JUMAN」、「KyTea 0.3.0」は「http://www.phontron.com/kytea/index-ja.html」、「ChaSen 2.3.3」は「http://chasen.naist.jp/hiki/ChaSen/」に記載されている。また、本実験において、上記の5つの装置に、ウェブ・テキスト8万文を入力し、各装置に解析させた場合の処理時間を測定した(図8参照)。単語分割装置1「MA-2」の処理速度は他より極めて速いことが分かる。なお、単語分割装置1のアルゴリズムおよびモデルは、図8に示す「深さ優先探索+連語」である。
【0152】
また、図9は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の単語分割装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図9は、このコンピュータシステム300の概観図であり、図10は、システム300のブロック図である。
【0153】
図9において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
【0154】
図10において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、MPU3013、CD−ROMドライブ3012に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0155】
コンピュータシステム300に、上述した実施の形態の単語分割装置の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
【0156】
プログラムは、コンピュータ301に、上述した実施の形態の単語分割装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0157】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0158】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0159】
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(端末情報送信部、端末情報受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
【0160】
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0161】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0162】
以上のように、本発明にかかる単語分割装置は、文を2以上の単語に高速に分割できる、という効果を有し、単語分割装置等として有用である。
【符号の説明】
【0163】
1、2、3、4 単語分割装置
11 単語分割用辞書
12 受付部
13 第一分割部
14 出力部
21 第二分割部
22 第二分割結果取得部
23 判断部
24 分割情報取得部
25 辞書登録部
図1
図2
図3
図4
図5
図6
図8
図9
図10
図11
図7