単語抽出装置、単語抽出方法及びプログラム
【課題】辞書を用いずに、テキストに頻出する単語を精度良く抽出する。
【解決手段】単語抽出装置1は、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出する対象文字列抽出部と、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除する第1の削除部と、前記第1の削除部により文字列を削除した後の対象文字列の集合に含まれる文字列を単語とする単語抽出部とを備える。
【解決手段】単語抽出装置1は、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出する対象文字列抽出部と、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除する第1の削除部と、前記第1の削除部により文字列を削除した後の対象文字列の集合に含まれる文字列を単語とする単語抽出部とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、単語抽出装置、単語抽出方法及びプログラムに関する。
【背景技術】
【0002】
現在、ネットワーク上では、日々新しい言葉が誕生している。このため、ネットワーク上に流れる大量のテキストを解析するには、これら新しい言葉、或いは、注目されているフレーズを自動的に収集することが重要である。
従来では、人手により、新しい単語をテキスト解析の辞書に追加する方法が一般的であった。また、新しい単語を抽出する試みとしては、日本語の文字種を足掛かりに、日本語の文法知識を用いる方法がある。また、特許文献1には、形態素解析で得られた単語の並びの出現頻度と、予め決めた単語連結のパターンとに基づいて、用語を抽出する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−342321号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、日本語の文字種を足掛かりに、日本語の文法知識を用いる方法では、英単語を含む単語への対応が困難である、という問題がある。また、例えば、「打ち合わせを行う」というテキストでは、単語の境界が連続する平仮名「せを」の部分に存在するように、必ずしも文字種により単語を分割できるとは限らない。また、特許文献1に記載された技術では、形態素解析により適切な単語の並びが得られるとは限らず、また、想定していないパターンで連結された単語は抽出することができない、という問題がある。
【0005】
本発明は上記の点に鑑みてなされたものであり、その目的は、辞書を用いずに、テキストに頻出する単語を精度良く抽出することができる単語抽出装置、単語抽出方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出する対象文字列抽出部と、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除する第1の削除部と、前記第1の削除部により文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とする単語抽出部と、を備えることを特徴とする単語抽出装置である。
【0007】
また、本発明の一態様は、上記の単語抽出装置において、前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中から開始する文字列、或いは、前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中で終了する文字列の数を、当該文字列のテキスト中での出現回数から差し引いた結果が前記所定回数より小さい文字列を対象文字列の集合から削除する第2の削除部を備えることを特徴とする。
【0008】
また、本発明の一態様は、上記の単語抽出装置において、前記対象文字列の出現回数が、当該対象文字列の部分文字列であって、空白を除く文字の数が当該対象文字列より1文字少ない他の対象文字列の出現回数から前記所定回数を減算した結果より小さい場合に、当該対象文字列を前記対象文字列の集合から削除する第3の削除部を備えることを特徴とする。
【0009】
また、本発明の一態様は、上記の単語抽出装置において、予め設定された所定文字から始まる文字列を前記対象文字列の集合から削除する第4の削除部を備えることを特徴とする。
【0010】
また、本発明の一態様は、上記の単語抽出装置において、前記対象文字列抽出部は、前記テキストに所定回数以上出現する前記所定文字数の文字列を前記テキストから抽出し、当該抽出した文字列から始まり、かつ、前記テキストに所定回数以上出現する文字列を前記対象文字列として抽出することを特徴とする。
【0011】
また、本発明の一態様は、単語抽出装置が、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、前記単語抽出装置が、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、前記単語抽出装置が、前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、を有することを特徴とする単語抽出方法である。
【0012】
また、本発明の一態様は、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、テキストに所定回数以上出現する対象文字列を抽出し、他の対象文字列の部分文字列であって包含される位置以外に出現する回数が所定回数より小さい文字列以外の対象文字列を単語として抽出する。すなわち、他の対象文字列の部分文字列を単語から除外している。これにより、辞書を用いることなく、テキストに頻出する単語を精度良く抽出することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態による単語抽出装置の機能構成を示すブロック図である。
【図2】本実施形態による単語抽出部の機能構成を示すブロック図である。
【図3】本実施形態による単語抽出部における処理の説明図である。
【図4】本実施形態による単語抽出部における処理の説明図である。
【図5】本実施形態による単語抽出部における処理の説明図である。
【図6】本実施形態による単語抽出部における処理の説明図である。
【図7】本実施形態による単語抽出部における処理の説明図である。
【図8】本実施形態による単語抽出部における処理の説明図である。
【図9】本実施形態による単語抽出処理の手順を示すフローチャートである。
【図10】本実施形態による単語抽出処理の手順を示すフローチャートである。
【図11】本実施形態による単語抽出処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の一実施形態による単語抽出装置1の機能構成を示すブロック図である。
同図に示すように、コンピュータから構成される単語抽出装置1は、テキスト入力部11と、単語抽出部12と、未知語検出部13と、単語格納部14とを含んで構成される。
【0016】
テキスト入力部11は、単語の抽出元となるテキスト(以下、対象テキストとする)の入力を受け付け、入力された対象テキストを単語抽出部12に出力する。このテキストは、一つのドキュメントでもよいし、短い文章の集合でもよい。単語抽出部12は、入力された対象テキストに頻出する単語を抽出し、抽出した単語を外部装置(例えば、表示装置、印刷装置、或いは、他の端末装置等)に出力する。単語の抽出方法の詳細については後述する。未知語検出部13は、単語格納部14に格納されていない単語を未知語として検出し、検出した未知語を外部装置(例えば、表示装置、印刷装置、或いは、他の端末装置等)に出力する。また、未知語検出部13は、検出した未知語を単語格納部14の単語辞書ファイルに書き込む。単語辞書ファイルは、単語の辞書であり、単語抽出部12により抽出された単語の一覧である。単語格納部14は、単語辞書ファイルを記憶する。
【0017】
図2は、本実施形態による単語抽出部12の機能構成を示すブロック図である。
単語抽出部12は、処理対象文字列抽出部121と、処理対象文字列追加部122と、英数文字列除外部123と、部分文字列除外部124と、接頭語・接尾語除外部125と、単語出力部126とを含んで構成される。
処理対象文字列抽出部121は、対象テキストに閾値α回以上出現する最小文字数(本実施形態では2文字)の文字列を処理対象文字列として抽出し、抽出した処理対象文字列を処理対象文字列追加部122に出力する。閾値αは、テキストに出現する回数に関する閾値であって、2以上の整数である。以下、抽出した処理対象文字列の集合を処理集合とする。なお、本実施形態では、最小文字数を2としたが、最小文字列は2以上の整数であればよい。処理対象文字列追加部122は、処理対象文字列から始まる3文字(最小文字数+1)以上の文字列であって、閾値α回以上対象テキストに出現する文字列を処理対象文字列とし、処理集合に追加する。そして、処理対象文字列追加部122は、処理対象文字列の処理集合を英数文字列除外部123に出力する。処理対象文字列抽出部121と処理対象文字列追加部122とが、対象テキストに閾値α回以上出現する2文字(最小文字数)以上の文字列を抽出する対象文字列抽出部である。
【0018】
英数文字列除外部123は、英単語(アルファベットの文字列)、数字列、又は、片仮名単語(片仮名の文字列)の途中から始まる文字列、或いは、英単語(アルファベットの文字列)、数字列、又は、片仮名単語(片仮名の文字列)の途中で終わる文字列を処理対象文字列の処理集合から削除し、処理集合に残った処理対象文字列を部分文字列除外部124に出力する。また、英数文字列除外部123は、対象テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中から開始する文字列、或いは、対象テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中で終了する文字列の数を、当該文字列のテキスト中での出現回数から差し引いた結果が前記所定回数より小さい文字列を対象文字列の集合から削除する。部分文字列除外部124は、他の処理対象文字列の部分文字列を処理集合から削除する。そして、部分文字列除外部124は、処理集合に残った処理対象文字列を単語候補とし、単語候補を接頭語・接尾語除外部125に出力する。具体的には、部分文字列除外部(第1の削除部)124は、他の処理対象文字列の部分文字列であって、対象テキストにおいて他の処理対象文字列に包含される位置以外に出現する回数が閾値αより小さい文字列を処理集合から削除する。以下、単語候補の集合を候補集合とする。
【0019】
接頭語・接尾語除外部125は、候補集合から接頭語及び接尾語を削除し、残った単語候補を単語出力部126に出力する。具体的には、接頭語・接尾語除外部(第3の削除部)125は、対象文字列Aの出現回数が、対象文字列Aの部分文字列であって、空白を除く文字の数が自身より1文字少ない他の対象文字列の出現回数から閾値αを減算した結果より小さい場合に、対象文字列Aを対象文字列の処理集合から削除する。単語出力部(単語抽出部)126は、接頭語・接尾語除外部125により入力された単語候補を単語として出力する。
【0020】
次に、図3から図8を参照して、本実施形態による単語抽出部12における処理について説明する。図3から図8は、本実施形態による単語抽出部12における処理の説明図である。
まず、図3に示す対象テキストがテキスト入力部11から単語抽出部12に入力される。図3に示す対象テキストは、文章a「今日の打ち合わせは9時から会議室Bで行います。」と、文章b「明日、打ち合わせをしましょう。会議室を予約して下さい。」と、文章c「会議室A予約済みです。」と、文章d「会議室Aにて19時より打ち合わせ。」との集合である。図3に示す縦軸a〜dは文章a〜dを示しており、横軸の数字(1〜26)は何番目の文字かを示す。以下、文章xのy番目の文字位置を「xy」で示す。
【0021】
次に、単語抽出部12の処理対象文字列抽出部121が、先頭の文字位置(例えば、文章aでは文字位置「a1」)から順に、各文章a〜dにおける2文字の文字列(例えば、文字位置「a1」では「明日」)を抽出する。そして、処理対象文字列抽出部121は、対象文字列において、抽出した各文字列の出現回数を計数し、計数した出現回数が閾値α(本例では、2)以上である文字列を処理対象文字列として抽出する(図4参照)。ただし、処理対象文字列抽出部(第4の削除部)121は、単語の左端とはならない文字「々」「〃」「ヽ」「ー」「 (空白)」「ヵ」「ヶ」「・」「,」「!」「/」「:」「=」「;」「?」「。」「、」から始まる文字列を処理対象文字列から除外してもよい。単語の左端とはならない文字は予め設定されている。
【0022】
以下、文字列が文字位置「x1」と文字位置「x2」とに出現することを出現位置(x1,x2)と表記する。図4に示す例では、対象文字列抽出部121は、「明日」(出現位置(a1,b1))と、「打ち」(出現位置(a4,b4,d12))と、「ち合」(出現位置(a5,b5,d13))と、「合せ」(出現位置(a6,b6,d14))と、「9時」(出現位置(a9,d8))と、「会議」(出現位置(a13,b15,c1,d1))と、「議室」(出現位置(a14,b16,c2,d2))と、「予約」(出現位置(b19,c5))と、「室A」(出現位置(c3,d3))とを処理対象文字列として抽出する。この時点で、処理対象文字列の処理集合は、(「明日」、「打ち」、「ち合」、「合せ」、「9時」、「会議」、「議室」、「予約」、「室A」)である。
【0023】
次に、単語抽出部12の処理対象文字列追加部122が、処理対象文字列で始まる3文字以上の文字列であって、閾値α(=2)回以上対象テキストに出現する文字列を処理対象文字列の処理集合に追加する(図5参照)。
図5に示す例では、処理対象文字列追加部122は、処理対象文字列「打ち」から始まる文字列「打ち合」(出現位置(a4,b4,d12)及び文字列「打ち合せ」(出現位置(a4,b4,d12))と、処理対象文字列「ち合」から始まる文字列「ち合せ」(出現位置(a5,b5,d13)と、処理対象文字列「会議」から始まる文字列「会議室」(出現位置(a13,b15,c1,d1))及び文字列「会議室A」(出現位置(c1,d1))と、処理対象文字列「議室」から始まる文字列「議室A」(出現位置(c2,d2))とを処理対象文字列とする。この時点で、処理対象文字列の処理集合は、(「明日」、「打ち」、「ち合」、「合せ」、「9時」、「会議」、「議室」、「予約」、「室A」、「打ち合」、「打ち合せ」、「ち合せ」、「会議室」、「会議室A」、「議室A」)である。
【0024】
次に、単語抽出部12の英数文字列除外部123が、英単語、数字列、及び、片仮名単語の途中から始まる文字列を処理対象文字列から除外する。英単語の途中から始まる文字列を除外する処理について具体的に説明する。まず、英数文字列除外部123は、アルファベットで始まる処理対象文字列を抽出する。そして、英数文字列除外部123は、抽出した各処理対象文字列について、出現位置の直前(左側)の文字がアルファベットであるものの数を計数し、計数した回数を出現回数から減算する。そして、英数文字列除外部123は、減算処理した出現回数が閾値α(=2)より小さいものを処理対象文字列の処理集合から削除する。英数文字列除外部123は、数字及び片仮名についても同様の処理を行う。
【0025】
図6に示す具体例を用いて、数字列の途中から始まる文字列を除外する処理を説明する。まず、英数文字列除外部123は、数字で始まる処理対象文字列「9時」を抽出する。次に、英数文字列除外部123は、抽出した処理対象文字列「9時」について、直前の文字が数字であるもの(d8)を計数し、計数した数1を出現回数2から減算する。そして、英数文字列除外部123は、減算した出現回数(2−1=1)が閾値α(=2)より小さいため、文字列「9時」を処理対象文字列から除外する。この時点で、処理対象文字列の処理集合は、(「明日」、「打ち」、「ち合」、「合せ」、「会議」、「議室」、「予約」、「室A」、「打ち合」、「打ち合せ」、「ち合せ」、「会議室」、「会議室A」、「議室A」)である。
【0026】
次に、単語抽出部12の部分文字列除外部124が、他の処理対象文字列の部分文字列を処理対象文字列から除外する(図7参照)。具体的には、処理対象文字列S1が処理対象文字列S2の部分文字列である場合、処理対象文字列S1の出現回数と、処理対象文字列S1が処理対象文字列S2に包含される回数との差が閾値α(=2)より小さい場合に、処理対象文字列S1を処理対象文字列から除外する。
【0027】
図7を参照して、部分文字列を処理対象文字列から除外する処理を具体的に説明する。処理対象文字列「打ち合」は、処理対象文字列「打ち合せ」の部分文字列であり、処理対象文字列「打ち合」の出現回数3と、処理対象文字列「打ち合」が処理対象文字列「打ち合せ」に包含される回数3との差(3−3=0)が閾値α(=2)より小さい。このため、部分文字列除外部124は、文字列「打ち合」を処理対象文字列から除外する。文字列「ち合せ」「議室A」「打ち」「ち合」「合せ」「会議」「議室」「室A」についても同様である。一方、処理対象文字列「会議室」は、処理対象文字列「会議室A」の部分文字列であるが、処理対象文字列「会議室」の出現回数4と、処理対象文字列「会議室」が処理対象文字列「会議室A」に包含される回数2との差(4−2=2)は閾値α(=2)と等しい。このため、部分文字列除外部124は、文字列「会議室」を処理対象文字列として残す。この時点で、処理対象文字列の処理集合は、(「明日」、「予約」、「打ち合せ」、「会議室」、「会議室A」)である。部分文字列除外部124は、処理集合に残った文字列を単語候補とする。
【0028】
次に、単語抽出部12の接頭語・接尾語除外部125が、単語候補から接頭語及び接尾語を除外する(図8参照)。具体的には、まず、接頭語・接尾語除外部125は、次の条件1〜3全てに合致する単語候補を接頭語候補とする。
(条件1)3文字以上。
(条件2)アルファベットの連続する2文字、数字の連続する2文字、又は、片仮名の連続する2文字以外から始まる。
(条件3)正規表現R1「(^.\s*)([^\s].*$)」に合致する。ただし、「\s」は空白を示す。
正規表現R1は、任意の1文字とそれに続く0以上の空白からなる文字列(前半「(^.\s*)」)と、空白以外から始まる文字列(後半「([^\s].*$)」)とを連結した文字列を示す。
【0029】
次に、接頭語・接尾語除外部125は、各接頭語候補について、正規表現R1の後半「([^\s].*$)」に合致する文字列をキーKとし、キーKを記憶する。
【0030】
また、接頭語・接尾語除外部125は、上述の条件1及び2と、次の条件4全てに合致する単語候補を接尾語候補とする。
(条件4)正規表現R2「(^.*[^\s])(\s*.$)」に合致する。
正規表現R2は、0文字以上の任意の文字と空白以外の1文字(前半「(^.*[^\s])」)からなる文字列と、0以上の空白と任意の1文字からなる文字列(後半「(\s*.$)」)とを連結した文字列を示す。
【0031】
次に、接頭語・接尾語除外部125は、各接頭語候補について、正規表現R2の前半「(^.*[^\s])」に合致する文字列をキーKとし、キーKを記憶する。
【0032】
次に、接頭語・接尾語除外部125は、文字数の多いキーKから順に、全てのキーKに対して次の処理0〜2を行う。
(処理0)cに0を代入する。nに0を代入する。
(処理1)正規表現「[^\s]\s*(キーK)」又は正規表現「(キーK)\s*[^\s]」に合致する単語候補wの出現回数cを計数する。
(処理2)キーKの出現回数nを計数する。
(処理3)「c<n−閾値α」の場合には、単語候補wを単語候補の候補集合から削除する。
【0033】
最後に、接頭語・接尾語除外部125は、残った単語候補を単語集合に追加する。そして、単語出力部126が、単語集合にある文字列を単語として出力する。
【0034】
図8を参照して、接頭語及び接尾語を単語候補から除外する処理を具体的に説明する。まず、接頭語・接尾語除外部125は、上述した条件1〜4に合致する単語候補「打ち合せ」「会議室A」及び「会議室」を抽出する。そして、接頭語・接尾語除外部125は、抽出した単語候補からキーKを生成する。「打ち合せ」のキーK「ち合せ」については、正規表現「[^\s]\s*(キーK)」に合致する「打ち合せ」の出現回数はc=2であり、キーK「ち合せ」の出現回数n=2である。よって、キーK「ち合せ」はc>n−閾値αであり、キーK「ち合せ」により削除する単語候補はない。また、「打ち合せ」のキーK「打ち合」については、正規表現「(キーK)\s*[^\s]」に合致する単語候補「打ち合せ」の出現回数はc=2であり、キーK「打ち合」の出現回数n=2である。よって、キーK「打ち合」はc>n−閾値αであり、キーK「打ち合」により削除する単語候補はない。このため、接頭語・接尾語除外部125は、単語候補「打ち合せ」を単語候補に残す。「会議室A」及び「会議室」についても同様である。
【0035】
この結果、「打ち合せ」と、「会議室A」と、「会議室」と、「明日」と、「予約」とが単語候補に残る。単語出力部126は、残った単語候補「打ち合せ」、「会議室A」、「会議室」、「明日」、及び「予約」を単語として出力する。
【0036】
次に、図9から図11を参照して、単語抽出部12による単語抽出処理の流れについて説明する。図9から図11は、本実施形態による単語抽出処理の手順を示すフローチャートである。
まず、単語抽出部12の処理対象文字列抽出部121が、テキスト入力部11により入力された対象テキスト(テキストファイル)を読み込む(ステップS101)。次に、処理対象文字列抽出部121は、文字位置に1を設定する(ステップS102)。次に、処理対象文字列抽出部121は、抽出文字数に2を設定する(ステップS103)。次に、処理対象文字列抽出部121は、文字位置から抽出文字数分の文字列を抽出する(ステップS104)。そして、処理対象文字列抽出部121は、抽出した文字列と、その文字列の文字位置を記録する(ステップS105)。
【0037】
次に、処理対象文字列抽出部121は、文字位置が対象テキストの最終(最後の文字の位置)であるか否かを判定する(ステップS106)。処理対象文字列抽出部121は、文字位置が最終でない場合(ステップS106:No)には、文字位置に1を加算して(ステップS107)、ステップS104へ戻る。一方、処理対象文字列抽出部121は、文字位置が最終である場合(ステップS106:Yes)には、記録した文字位置に基づいて、抽出した文字列夫々について、対象テキストに出現する回数を算出する(ステップS108)。そして、処理対象文字列抽出部121は、算出した出現回数が閾値α以上の文字列を処理対象文字列とし、その文字位置とともに保存する(ステップS109)。
【0038】
次に、単語抽出部12の処理対象文字列追加部122が、抽出文字数に3を設定する(ステップS110)。次に、処理対象文字列追加部122は、処理対象文字列の全ての文字位置から抽出文字数分の文字列を抽出する(ステップS111)。次に、処理対象文字列追加部122は、ステップS111において抽出した文字列の出現回数を算出する(ステップS112)。処理対象文字列追加部122は、算出した出現回数が閾値α以上である文字列を処理対象文字列とし、その文字位置とともに保存する(ステップS113)。次に、処理対象文字列追加部122は、ステップS111において抽出した文字列のうち、出現回数が閾値α以上である文字列があるか否かを判定する(ステップS114)。出現回数が閾値α以上の文字列がある場合(ステップS114:No)には、抽出文字数に1を加算して(ステップS115)、ステップS111へ戻る。一方、出現回数が閾値α以上の文字列がない場合(ステップS114:Yes)には、処理対象文字列追加部112は、最後の処理対象文字列である(全ての処理対象文字列についてステップS110からS115までの処理を行った)か否かを判定する(ステップS116)。最後の処理対象文字列でない場合(ステップS116:No)には、次の処理対象文字列に移動して(ステップS117)、ステップS110へ戻る。
【0039】
一方、最後の処理対象文字列である場合(ステップS116:Yes)には、単語抽出部12の部分文字列除外部124が、処理対象文字列を文字数の降順にソートする(ステップS118)。以下、このソートした処理対象文字列の順番をレコード番号とする。そして、部分文字列除外部124は、3文字以上の処理対象文字列があるか否かを判定する(ステップS119)。3文字以上の処理対象文字列がない場合(ステップS119:No)には、ステップS129へ移行する。
【0040】
一方、3文字以上の処理対象文字列がある場合(ステップS119:Yes)には、部分文字列除外部124は、文字数が2番目に多い先頭の処理対象文字列のレコード番号を取得する(ステップS120)。次に、部分文字列除外部124は、レコード番号に対応する処理対象文字列を照合文字列とする(ステップS121)。次に、部分文字列除外部124は、照合文字列よりも文字数の多い処理対象文字列のいずれにもこの照合文字列が包含されないか否かを判定する(ステップS122,S123)。照合文字列がいずれの処理対象文字列にも包含されない場合(ステップS123:Yes)には、ステップS127へ移行する。
【0041】
一方、照合文字列がいずれかの処理対象文字列に包含される場合(ステップS123:No)には、部分文字列除外部124は、照合文字列の出現回数から、包含する処理対象文字列である被参照文字列の出現回数を減算する(ステップS124)。次に、部分文字列除外部124は、減算した出現回数が閾値αより小さいか否かを判定する(ステップS125)。出現回数が閾値α以上である場合(ステップS125:No)にはステップS127へ移行する。一方、減算した出現回数が閾値αより小さい場合(ステップS125:Yes)には、部分文字列除外部124は、照合文字列を削除対象として記録する(ステップS126)。
【0042】
次に、部分文字列除外部124は、照合文字列が最後の処理対象文字列であるか否かを判定する(ステップS127)。照合文字列が最後の処理対象文字列でない場合(ステップS127:No)には、部分文字列除外部124は、レコード番号に1を加算して(ステップS128)、ステップS121へ戻る。一方、照合文字列が最後の処理対象文字列である場合(ステップS127:Yes)には、単語出力部126が、処理対象文字列の処理集合から削除対象文字列を削除し、残った処理対象文字列を単語として単語辞書ファイルに書き込んで保存する(ステップS129)。
【0043】
このように、本実施形態によれば、所定回数(閾値α)以上出現する2文字以上の文字列を抽出し、英数文字列除外部123、部分文字列除外部124及び接頭語・接尾語除外部125による処理で、抽出した文字列にフィルタリングして単語を抽出する。これにより、辞書を用いずに、対象テキストに頻出する単語を抽出することができる。このため、ネットワーク上に流れる新しい言葉やフレーズを自動的に収集することができる。
また、英数文字列除外部123において、英単語、数字列、又は、片仮名単語の途中から始まる文字列を処理対象文字列から除外しているため、例えば、対象テキストに文字列「2000」「2010」「2020」があった場合に、文字列「20」を単語として抽出することを防ぐことができる。
また、接頭語・接尾語除外部125により接頭語及び接尾語を除外しているため、接頭語又は接尾語を含む文字列を単語として抽出することを防ぐことができる。
【0044】
また、図9から図11に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、単語抽出処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0045】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0046】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、各単語の期間毎の出現頻度に基づいて、現在注目されている言葉やフレーズを抽出してもよい。この場合、単語格納部14は、単語辞書ファイルに記憶された各単語の期間毎の出現頻度を記憶する。具体的には、出現頻度の上昇率の大きい単語や、現在の出現頻度が前期間の出現頻度に比べて著しく大きい単語を注目されている言葉とする等が考えられる。
【符号の説明】
【0047】
1…単語抽出装置 11…テキスト入力部 12…単語抽出部 13…未知語検出部 14…単語格納部 121…処理対象文字列抽出部 122…処理対象文字列追加部 123…英数文字列除外部 124…部分文字列除外部 125…接頭語・接尾語除外部 126…単語出力部
【技術分野】
【0001】
本発明は、単語抽出装置、単語抽出方法及びプログラムに関する。
【背景技術】
【0002】
現在、ネットワーク上では、日々新しい言葉が誕生している。このため、ネットワーク上に流れる大量のテキストを解析するには、これら新しい言葉、或いは、注目されているフレーズを自動的に収集することが重要である。
従来では、人手により、新しい単語をテキスト解析の辞書に追加する方法が一般的であった。また、新しい単語を抽出する試みとしては、日本語の文字種を足掛かりに、日本語の文法知識を用いる方法がある。また、特許文献1には、形態素解析で得られた単語の並びの出現頻度と、予め決めた単語連結のパターンとに基づいて、用語を抽出する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−342321号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、日本語の文字種を足掛かりに、日本語の文法知識を用いる方法では、英単語を含む単語への対応が困難である、という問題がある。また、例えば、「打ち合わせを行う」というテキストでは、単語の境界が連続する平仮名「せを」の部分に存在するように、必ずしも文字種により単語を分割できるとは限らない。また、特許文献1に記載された技術では、形態素解析により適切な単語の並びが得られるとは限らず、また、想定していないパターンで連結された単語は抽出することができない、という問題がある。
【0005】
本発明は上記の点に鑑みてなされたものであり、その目的は、辞書を用いずに、テキストに頻出する単語を精度良く抽出することができる単語抽出装置、単語抽出方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出する対象文字列抽出部と、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除する第1の削除部と、前記第1の削除部により文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とする単語抽出部と、を備えることを特徴とする単語抽出装置である。
【0007】
また、本発明の一態様は、上記の単語抽出装置において、前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中から開始する文字列、或いは、前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中で終了する文字列の数を、当該文字列のテキスト中での出現回数から差し引いた結果が前記所定回数より小さい文字列を対象文字列の集合から削除する第2の削除部を備えることを特徴とする。
【0008】
また、本発明の一態様は、上記の単語抽出装置において、前記対象文字列の出現回数が、当該対象文字列の部分文字列であって、空白を除く文字の数が当該対象文字列より1文字少ない他の対象文字列の出現回数から前記所定回数を減算した結果より小さい場合に、当該対象文字列を前記対象文字列の集合から削除する第3の削除部を備えることを特徴とする。
【0009】
また、本発明の一態様は、上記の単語抽出装置において、予め設定された所定文字から始まる文字列を前記対象文字列の集合から削除する第4の削除部を備えることを特徴とする。
【0010】
また、本発明の一態様は、上記の単語抽出装置において、前記対象文字列抽出部は、前記テキストに所定回数以上出現する前記所定文字数の文字列を前記テキストから抽出し、当該抽出した文字列から始まり、かつ、前記テキストに所定回数以上出現する文字列を前記対象文字列として抽出することを特徴とする。
【0011】
また、本発明の一態様は、単語抽出装置が、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、前記単語抽出装置が、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、前記単語抽出装置が、前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、を有することを特徴とする単語抽出方法である。
【0012】
また、本発明の一態様は、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、テキストに所定回数以上出現する対象文字列を抽出し、他の対象文字列の部分文字列であって包含される位置以外に出現する回数が所定回数より小さい文字列以外の対象文字列を単語として抽出する。すなわち、他の対象文字列の部分文字列を単語から除外している。これにより、辞書を用いることなく、テキストに頻出する単語を精度良く抽出することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態による単語抽出装置の機能構成を示すブロック図である。
【図2】本実施形態による単語抽出部の機能構成を示すブロック図である。
【図3】本実施形態による単語抽出部における処理の説明図である。
【図4】本実施形態による単語抽出部における処理の説明図である。
【図5】本実施形態による単語抽出部における処理の説明図である。
【図6】本実施形態による単語抽出部における処理の説明図である。
【図7】本実施形態による単語抽出部における処理の説明図である。
【図8】本実施形態による単語抽出部における処理の説明図である。
【図9】本実施形態による単語抽出処理の手順を示すフローチャートである。
【図10】本実施形態による単語抽出処理の手順を示すフローチャートである。
【図11】本実施形態による単語抽出処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の一実施形態による単語抽出装置1の機能構成を示すブロック図である。
同図に示すように、コンピュータから構成される単語抽出装置1は、テキスト入力部11と、単語抽出部12と、未知語検出部13と、単語格納部14とを含んで構成される。
【0016】
テキスト入力部11は、単語の抽出元となるテキスト(以下、対象テキストとする)の入力を受け付け、入力された対象テキストを単語抽出部12に出力する。このテキストは、一つのドキュメントでもよいし、短い文章の集合でもよい。単語抽出部12は、入力された対象テキストに頻出する単語を抽出し、抽出した単語を外部装置(例えば、表示装置、印刷装置、或いは、他の端末装置等)に出力する。単語の抽出方法の詳細については後述する。未知語検出部13は、単語格納部14に格納されていない単語を未知語として検出し、検出した未知語を外部装置(例えば、表示装置、印刷装置、或いは、他の端末装置等)に出力する。また、未知語検出部13は、検出した未知語を単語格納部14の単語辞書ファイルに書き込む。単語辞書ファイルは、単語の辞書であり、単語抽出部12により抽出された単語の一覧である。単語格納部14は、単語辞書ファイルを記憶する。
【0017】
図2は、本実施形態による単語抽出部12の機能構成を示すブロック図である。
単語抽出部12は、処理対象文字列抽出部121と、処理対象文字列追加部122と、英数文字列除外部123と、部分文字列除外部124と、接頭語・接尾語除外部125と、単語出力部126とを含んで構成される。
処理対象文字列抽出部121は、対象テキストに閾値α回以上出現する最小文字数(本実施形態では2文字)の文字列を処理対象文字列として抽出し、抽出した処理対象文字列を処理対象文字列追加部122に出力する。閾値αは、テキストに出現する回数に関する閾値であって、2以上の整数である。以下、抽出した処理対象文字列の集合を処理集合とする。なお、本実施形態では、最小文字数を2としたが、最小文字列は2以上の整数であればよい。処理対象文字列追加部122は、処理対象文字列から始まる3文字(最小文字数+1)以上の文字列であって、閾値α回以上対象テキストに出現する文字列を処理対象文字列とし、処理集合に追加する。そして、処理対象文字列追加部122は、処理対象文字列の処理集合を英数文字列除外部123に出力する。処理対象文字列抽出部121と処理対象文字列追加部122とが、対象テキストに閾値α回以上出現する2文字(最小文字数)以上の文字列を抽出する対象文字列抽出部である。
【0018】
英数文字列除外部123は、英単語(アルファベットの文字列)、数字列、又は、片仮名単語(片仮名の文字列)の途中から始まる文字列、或いは、英単語(アルファベットの文字列)、数字列、又は、片仮名単語(片仮名の文字列)の途中で終わる文字列を処理対象文字列の処理集合から削除し、処理集合に残った処理対象文字列を部分文字列除外部124に出力する。また、英数文字列除外部123は、対象テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中から開始する文字列、或いは、対象テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中で終了する文字列の数を、当該文字列のテキスト中での出現回数から差し引いた結果が前記所定回数より小さい文字列を対象文字列の集合から削除する。部分文字列除外部124は、他の処理対象文字列の部分文字列を処理集合から削除する。そして、部分文字列除外部124は、処理集合に残った処理対象文字列を単語候補とし、単語候補を接頭語・接尾語除外部125に出力する。具体的には、部分文字列除外部(第1の削除部)124は、他の処理対象文字列の部分文字列であって、対象テキストにおいて他の処理対象文字列に包含される位置以外に出現する回数が閾値αより小さい文字列を処理集合から削除する。以下、単語候補の集合を候補集合とする。
【0019】
接頭語・接尾語除外部125は、候補集合から接頭語及び接尾語を削除し、残った単語候補を単語出力部126に出力する。具体的には、接頭語・接尾語除外部(第3の削除部)125は、対象文字列Aの出現回数が、対象文字列Aの部分文字列であって、空白を除く文字の数が自身より1文字少ない他の対象文字列の出現回数から閾値αを減算した結果より小さい場合に、対象文字列Aを対象文字列の処理集合から削除する。単語出力部(単語抽出部)126は、接頭語・接尾語除外部125により入力された単語候補を単語として出力する。
【0020】
次に、図3から図8を参照して、本実施形態による単語抽出部12における処理について説明する。図3から図8は、本実施形態による単語抽出部12における処理の説明図である。
まず、図3に示す対象テキストがテキスト入力部11から単語抽出部12に入力される。図3に示す対象テキストは、文章a「今日の打ち合わせは9時から会議室Bで行います。」と、文章b「明日、打ち合わせをしましょう。会議室を予約して下さい。」と、文章c「会議室A予約済みです。」と、文章d「会議室Aにて19時より打ち合わせ。」との集合である。図3に示す縦軸a〜dは文章a〜dを示しており、横軸の数字(1〜26)は何番目の文字かを示す。以下、文章xのy番目の文字位置を「xy」で示す。
【0021】
次に、単語抽出部12の処理対象文字列抽出部121が、先頭の文字位置(例えば、文章aでは文字位置「a1」)から順に、各文章a〜dにおける2文字の文字列(例えば、文字位置「a1」では「明日」)を抽出する。そして、処理対象文字列抽出部121は、対象文字列において、抽出した各文字列の出現回数を計数し、計数した出現回数が閾値α(本例では、2)以上である文字列を処理対象文字列として抽出する(図4参照)。ただし、処理対象文字列抽出部(第4の削除部)121は、単語の左端とはならない文字「々」「〃」「ヽ」「ー」「 (空白)」「ヵ」「ヶ」「・」「,」「!」「/」「:」「=」「;」「?」「。」「、」から始まる文字列を処理対象文字列から除外してもよい。単語の左端とはならない文字は予め設定されている。
【0022】
以下、文字列が文字位置「x1」と文字位置「x2」とに出現することを出現位置(x1,x2)と表記する。図4に示す例では、対象文字列抽出部121は、「明日」(出現位置(a1,b1))と、「打ち」(出現位置(a4,b4,d12))と、「ち合」(出現位置(a5,b5,d13))と、「合せ」(出現位置(a6,b6,d14))と、「9時」(出現位置(a9,d8))と、「会議」(出現位置(a13,b15,c1,d1))と、「議室」(出現位置(a14,b16,c2,d2))と、「予約」(出現位置(b19,c5))と、「室A」(出現位置(c3,d3))とを処理対象文字列として抽出する。この時点で、処理対象文字列の処理集合は、(「明日」、「打ち」、「ち合」、「合せ」、「9時」、「会議」、「議室」、「予約」、「室A」)である。
【0023】
次に、単語抽出部12の処理対象文字列追加部122が、処理対象文字列で始まる3文字以上の文字列であって、閾値α(=2)回以上対象テキストに出現する文字列を処理対象文字列の処理集合に追加する(図5参照)。
図5に示す例では、処理対象文字列追加部122は、処理対象文字列「打ち」から始まる文字列「打ち合」(出現位置(a4,b4,d12)及び文字列「打ち合せ」(出現位置(a4,b4,d12))と、処理対象文字列「ち合」から始まる文字列「ち合せ」(出現位置(a5,b5,d13)と、処理対象文字列「会議」から始まる文字列「会議室」(出現位置(a13,b15,c1,d1))及び文字列「会議室A」(出現位置(c1,d1))と、処理対象文字列「議室」から始まる文字列「議室A」(出現位置(c2,d2))とを処理対象文字列とする。この時点で、処理対象文字列の処理集合は、(「明日」、「打ち」、「ち合」、「合せ」、「9時」、「会議」、「議室」、「予約」、「室A」、「打ち合」、「打ち合せ」、「ち合せ」、「会議室」、「会議室A」、「議室A」)である。
【0024】
次に、単語抽出部12の英数文字列除外部123が、英単語、数字列、及び、片仮名単語の途中から始まる文字列を処理対象文字列から除外する。英単語の途中から始まる文字列を除外する処理について具体的に説明する。まず、英数文字列除外部123は、アルファベットで始まる処理対象文字列を抽出する。そして、英数文字列除外部123は、抽出した各処理対象文字列について、出現位置の直前(左側)の文字がアルファベットであるものの数を計数し、計数した回数を出現回数から減算する。そして、英数文字列除外部123は、減算処理した出現回数が閾値α(=2)より小さいものを処理対象文字列の処理集合から削除する。英数文字列除外部123は、数字及び片仮名についても同様の処理を行う。
【0025】
図6に示す具体例を用いて、数字列の途中から始まる文字列を除外する処理を説明する。まず、英数文字列除外部123は、数字で始まる処理対象文字列「9時」を抽出する。次に、英数文字列除外部123は、抽出した処理対象文字列「9時」について、直前の文字が数字であるもの(d8)を計数し、計数した数1を出現回数2から減算する。そして、英数文字列除外部123は、減算した出現回数(2−1=1)が閾値α(=2)より小さいため、文字列「9時」を処理対象文字列から除外する。この時点で、処理対象文字列の処理集合は、(「明日」、「打ち」、「ち合」、「合せ」、「会議」、「議室」、「予約」、「室A」、「打ち合」、「打ち合せ」、「ち合せ」、「会議室」、「会議室A」、「議室A」)である。
【0026】
次に、単語抽出部12の部分文字列除外部124が、他の処理対象文字列の部分文字列を処理対象文字列から除外する(図7参照)。具体的には、処理対象文字列S1が処理対象文字列S2の部分文字列である場合、処理対象文字列S1の出現回数と、処理対象文字列S1が処理対象文字列S2に包含される回数との差が閾値α(=2)より小さい場合に、処理対象文字列S1を処理対象文字列から除外する。
【0027】
図7を参照して、部分文字列を処理対象文字列から除外する処理を具体的に説明する。処理対象文字列「打ち合」は、処理対象文字列「打ち合せ」の部分文字列であり、処理対象文字列「打ち合」の出現回数3と、処理対象文字列「打ち合」が処理対象文字列「打ち合せ」に包含される回数3との差(3−3=0)が閾値α(=2)より小さい。このため、部分文字列除外部124は、文字列「打ち合」を処理対象文字列から除外する。文字列「ち合せ」「議室A」「打ち」「ち合」「合せ」「会議」「議室」「室A」についても同様である。一方、処理対象文字列「会議室」は、処理対象文字列「会議室A」の部分文字列であるが、処理対象文字列「会議室」の出現回数4と、処理対象文字列「会議室」が処理対象文字列「会議室A」に包含される回数2との差(4−2=2)は閾値α(=2)と等しい。このため、部分文字列除外部124は、文字列「会議室」を処理対象文字列として残す。この時点で、処理対象文字列の処理集合は、(「明日」、「予約」、「打ち合せ」、「会議室」、「会議室A」)である。部分文字列除外部124は、処理集合に残った文字列を単語候補とする。
【0028】
次に、単語抽出部12の接頭語・接尾語除外部125が、単語候補から接頭語及び接尾語を除外する(図8参照)。具体的には、まず、接頭語・接尾語除外部125は、次の条件1〜3全てに合致する単語候補を接頭語候補とする。
(条件1)3文字以上。
(条件2)アルファベットの連続する2文字、数字の連続する2文字、又は、片仮名の連続する2文字以外から始まる。
(条件3)正規表現R1「(^.\s*)([^\s].*$)」に合致する。ただし、「\s」は空白を示す。
正規表現R1は、任意の1文字とそれに続く0以上の空白からなる文字列(前半「(^.\s*)」)と、空白以外から始まる文字列(後半「([^\s].*$)」)とを連結した文字列を示す。
【0029】
次に、接頭語・接尾語除外部125は、各接頭語候補について、正規表現R1の後半「([^\s].*$)」に合致する文字列をキーKとし、キーKを記憶する。
【0030】
また、接頭語・接尾語除外部125は、上述の条件1及び2と、次の条件4全てに合致する単語候補を接尾語候補とする。
(条件4)正規表現R2「(^.*[^\s])(\s*.$)」に合致する。
正規表現R2は、0文字以上の任意の文字と空白以外の1文字(前半「(^.*[^\s])」)からなる文字列と、0以上の空白と任意の1文字からなる文字列(後半「(\s*.$)」)とを連結した文字列を示す。
【0031】
次に、接頭語・接尾語除外部125は、各接頭語候補について、正規表現R2の前半「(^.*[^\s])」に合致する文字列をキーKとし、キーKを記憶する。
【0032】
次に、接頭語・接尾語除外部125は、文字数の多いキーKから順に、全てのキーKに対して次の処理0〜2を行う。
(処理0)cに0を代入する。nに0を代入する。
(処理1)正規表現「[^\s]\s*(キーK)」又は正規表現「(キーK)\s*[^\s]」に合致する単語候補wの出現回数cを計数する。
(処理2)キーKの出現回数nを計数する。
(処理3)「c<n−閾値α」の場合には、単語候補wを単語候補の候補集合から削除する。
【0033】
最後に、接頭語・接尾語除外部125は、残った単語候補を単語集合に追加する。そして、単語出力部126が、単語集合にある文字列を単語として出力する。
【0034】
図8を参照して、接頭語及び接尾語を単語候補から除外する処理を具体的に説明する。まず、接頭語・接尾語除外部125は、上述した条件1〜4に合致する単語候補「打ち合せ」「会議室A」及び「会議室」を抽出する。そして、接頭語・接尾語除外部125は、抽出した単語候補からキーKを生成する。「打ち合せ」のキーK「ち合せ」については、正規表現「[^\s]\s*(キーK)」に合致する「打ち合せ」の出現回数はc=2であり、キーK「ち合せ」の出現回数n=2である。よって、キーK「ち合せ」はc>n−閾値αであり、キーK「ち合せ」により削除する単語候補はない。また、「打ち合せ」のキーK「打ち合」については、正規表現「(キーK)\s*[^\s]」に合致する単語候補「打ち合せ」の出現回数はc=2であり、キーK「打ち合」の出現回数n=2である。よって、キーK「打ち合」はc>n−閾値αであり、キーK「打ち合」により削除する単語候補はない。このため、接頭語・接尾語除外部125は、単語候補「打ち合せ」を単語候補に残す。「会議室A」及び「会議室」についても同様である。
【0035】
この結果、「打ち合せ」と、「会議室A」と、「会議室」と、「明日」と、「予約」とが単語候補に残る。単語出力部126は、残った単語候補「打ち合せ」、「会議室A」、「会議室」、「明日」、及び「予約」を単語として出力する。
【0036】
次に、図9から図11を参照して、単語抽出部12による単語抽出処理の流れについて説明する。図9から図11は、本実施形態による単語抽出処理の手順を示すフローチャートである。
まず、単語抽出部12の処理対象文字列抽出部121が、テキスト入力部11により入力された対象テキスト(テキストファイル)を読み込む(ステップS101)。次に、処理対象文字列抽出部121は、文字位置に1を設定する(ステップS102)。次に、処理対象文字列抽出部121は、抽出文字数に2を設定する(ステップS103)。次に、処理対象文字列抽出部121は、文字位置から抽出文字数分の文字列を抽出する(ステップS104)。そして、処理対象文字列抽出部121は、抽出した文字列と、その文字列の文字位置を記録する(ステップS105)。
【0037】
次に、処理対象文字列抽出部121は、文字位置が対象テキストの最終(最後の文字の位置)であるか否かを判定する(ステップS106)。処理対象文字列抽出部121は、文字位置が最終でない場合(ステップS106:No)には、文字位置に1を加算して(ステップS107)、ステップS104へ戻る。一方、処理対象文字列抽出部121は、文字位置が最終である場合(ステップS106:Yes)には、記録した文字位置に基づいて、抽出した文字列夫々について、対象テキストに出現する回数を算出する(ステップS108)。そして、処理対象文字列抽出部121は、算出した出現回数が閾値α以上の文字列を処理対象文字列とし、その文字位置とともに保存する(ステップS109)。
【0038】
次に、単語抽出部12の処理対象文字列追加部122が、抽出文字数に3を設定する(ステップS110)。次に、処理対象文字列追加部122は、処理対象文字列の全ての文字位置から抽出文字数分の文字列を抽出する(ステップS111)。次に、処理対象文字列追加部122は、ステップS111において抽出した文字列の出現回数を算出する(ステップS112)。処理対象文字列追加部122は、算出した出現回数が閾値α以上である文字列を処理対象文字列とし、その文字位置とともに保存する(ステップS113)。次に、処理対象文字列追加部122は、ステップS111において抽出した文字列のうち、出現回数が閾値α以上である文字列があるか否かを判定する(ステップS114)。出現回数が閾値α以上の文字列がある場合(ステップS114:No)には、抽出文字数に1を加算して(ステップS115)、ステップS111へ戻る。一方、出現回数が閾値α以上の文字列がない場合(ステップS114:Yes)には、処理対象文字列追加部112は、最後の処理対象文字列である(全ての処理対象文字列についてステップS110からS115までの処理を行った)か否かを判定する(ステップS116)。最後の処理対象文字列でない場合(ステップS116:No)には、次の処理対象文字列に移動して(ステップS117)、ステップS110へ戻る。
【0039】
一方、最後の処理対象文字列である場合(ステップS116:Yes)には、単語抽出部12の部分文字列除外部124が、処理対象文字列を文字数の降順にソートする(ステップS118)。以下、このソートした処理対象文字列の順番をレコード番号とする。そして、部分文字列除外部124は、3文字以上の処理対象文字列があるか否かを判定する(ステップS119)。3文字以上の処理対象文字列がない場合(ステップS119:No)には、ステップS129へ移行する。
【0040】
一方、3文字以上の処理対象文字列がある場合(ステップS119:Yes)には、部分文字列除外部124は、文字数が2番目に多い先頭の処理対象文字列のレコード番号を取得する(ステップS120)。次に、部分文字列除外部124は、レコード番号に対応する処理対象文字列を照合文字列とする(ステップS121)。次に、部分文字列除外部124は、照合文字列よりも文字数の多い処理対象文字列のいずれにもこの照合文字列が包含されないか否かを判定する(ステップS122,S123)。照合文字列がいずれの処理対象文字列にも包含されない場合(ステップS123:Yes)には、ステップS127へ移行する。
【0041】
一方、照合文字列がいずれかの処理対象文字列に包含される場合(ステップS123:No)には、部分文字列除外部124は、照合文字列の出現回数から、包含する処理対象文字列である被参照文字列の出現回数を減算する(ステップS124)。次に、部分文字列除外部124は、減算した出現回数が閾値αより小さいか否かを判定する(ステップS125)。出現回数が閾値α以上である場合(ステップS125:No)にはステップS127へ移行する。一方、減算した出現回数が閾値αより小さい場合(ステップS125:Yes)には、部分文字列除外部124は、照合文字列を削除対象として記録する(ステップS126)。
【0042】
次に、部分文字列除外部124は、照合文字列が最後の処理対象文字列であるか否かを判定する(ステップS127)。照合文字列が最後の処理対象文字列でない場合(ステップS127:No)には、部分文字列除外部124は、レコード番号に1を加算して(ステップS128)、ステップS121へ戻る。一方、照合文字列が最後の処理対象文字列である場合(ステップS127:Yes)には、単語出力部126が、処理対象文字列の処理集合から削除対象文字列を削除し、残った処理対象文字列を単語として単語辞書ファイルに書き込んで保存する(ステップS129)。
【0043】
このように、本実施形態によれば、所定回数(閾値α)以上出現する2文字以上の文字列を抽出し、英数文字列除外部123、部分文字列除外部124及び接頭語・接尾語除外部125による処理で、抽出した文字列にフィルタリングして単語を抽出する。これにより、辞書を用いずに、対象テキストに頻出する単語を抽出することができる。このため、ネットワーク上に流れる新しい言葉やフレーズを自動的に収集することができる。
また、英数文字列除外部123において、英単語、数字列、又は、片仮名単語の途中から始まる文字列を処理対象文字列から除外しているため、例えば、対象テキストに文字列「2000」「2010」「2020」があった場合に、文字列「20」を単語として抽出することを防ぐことができる。
また、接頭語・接尾語除外部125により接頭語及び接尾語を除外しているため、接頭語又は接尾語を含む文字列を単語として抽出することを防ぐことができる。
【0044】
また、図9から図11に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、単語抽出処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0045】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0046】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、各単語の期間毎の出現頻度に基づいて、現在注目されている言葉やフレーズを抽出してもよい。この場合、単語格納部14は、単語辞書ファイルに記憶された各単語の期間毎の出現頻度を記憶する。具体的には、出現頻度の上昇率の大きい単語や、現在の出現頻度が前期間の出現頻度に比べて著しく大きい単語を注目されている言葉とする等が考えられる。
【符号の説明】
【0047】
1…単語抽出装置 11…テキスト入力部 12…単語抽出部 13…未知語検出部 14…単語格納部 121…処理対象文字列抽出部 122…処理対象文字列追加部 123…英数文字列除外部 124…部分文字列除外部 125…接頭語・接尾語除外部 126…単語出力部
【特許請求の範囲】
【請求項1】
文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出する対象文字列抽出部と、
他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除する第1の削除部と、
前記第1の削除部により文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とする単語抽出部と、
を備えることを特徴とする単語抽出装置。
【請求項2】
前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中から開始する文字列、或いは、前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中で終了する文字列の数を、当該文字列のテキスト中での出現回数から差し引いた結果が前記所定回数より小さい文字列を対象文字列の集合から削除する第2の削除部
を備えることを特徴とする請求項1に記載の単語抽出装置。
【請求項3】
前記対象文字列の出現回数が、当該対象文字列の部分文字列であって、空白を除く文字の数が当該対象文字列より1文字少ない他の対象文字列の出現回数から前記所定回数を減算した結果より小さい場合に、当該対象文字列を前記対象文字列の集合から削除する第3の削除部
を備えることを特徴とする請求項1又は2に記載の単語抽出装置。
【請求項4】
予め設定された所定文字から始まる文字列を前記対象文字列の集合から削除する第4の削除部
を備えることを特徴とする請求項1から3いずれか1項に記載の単語抽出装置。
【請求項5】
前記対象文字列抽出部は、前記テキストに所定回数以上出現する前記所定文字数の文字列を前記テキストから抽出し、当該抽出した文字列から始まり、かつ、前記テキストに所定回数以上出現する文字列を前記対象文字列として抽出する
ことを特徴とする請求項1から4いずれか1項に記載の単語抽出装置。
【請求項6】
単語抽出装置が、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、
前記単語抽出装置が、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、
前記単語抽出装置が、前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、
を有することを特徴とする単語抽出方法。
【請求項7】
文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、
他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、
前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、
をコンピュータに実行させるためのプログラム。
【請求項1】
文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出する対象文字列抽出部と、
他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除する第1の削除部と、
前記第1の削除部により文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とする単語抽出部と、
を備えることを特徴とする単語抽出装置。
【請求項2】
前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中から開始する文字列、或いは、前記テキストに含まれる連続するアルファベット、連続する数字、または連続する片仮名の途中で終了する文字列の数を、当該文字列のテキスト中での出現回数から差し引いた結果が前記所定回数より小さい文字列を対象文字列の集合から削除する第2の削除部
を備えることを特徴とする請求項1に記載の単語抽出装置。
【請求項3】
前記対象文字列の出現回数が、当該対象文字列の部分文字列であって、空白を除く文字の数が当該対象文字列より1文字少ない他の対象文字列の出現回数から前記所定回数を減算した結果より小さい場合に、当該対象文字列を前記対象文字列の集合から削除する第3の削除部
を備えることを特徴とする請求項1又は2に記載の単語抽出装置。
【請求項4】
予め設定された所定文字から始まる文字列を前記対象文字列の集合から削除する第4の削除部
を備えることを特徴とする請求項1から3いずれか1項に記載の単語抽出装置。
【請求項5】
前記対象文字列抽出部は、前記テキストに所定回数以上出現する前記所定文字数の文字列を前記テキストから抽出し、当該抽出した文字列から始まり、かつ、前記テキストに所定回数以上出現する文字列を前記対象文字列として抽出する
ことを特徴とする請求項1から4いずれか1項に記載の単語抽出装置。
【請求項6】
単語抽出装置が、文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、
前記単語抽出装置が、他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、
前記単語抽出装置が、前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、
を有することを特徴とする単語抽出方法。
【請求項7】
文字数が所定文字数以上の文字列であって、テキストに所定回数以上出現する文字列を対象文字列として前記テキストから抽出するステップと、
他の対象文字列の部分文字列であって、前記テキストにおいて前記他の対象文字列に包含される位置以外に出現する回数が前記所定回数より小さい文字列を前記対象文字列抽出部により抽出された対象文字列の集合から削除するステップと、
前記文字列を削除した後の前記対象文字列の集合に含まれる文字列を単語とするステップと、
をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−194870(P2012−194870A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−59263(P2011−59263)
【出願日】平成23年3月17日(2011.3.17)
【出願人】(397065480)エヌ・ティ・ティ・コムウェア株式会社 (187)
【Fターム(参考)】
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願日】平成23年3月17日(2011.3.17)
【出願人】(397065480)エヌ・ティ・ティ・コムウェア株式会社 (187)
【Fターム(参考)】
[ Back to top ]