自然言語処理装置、自然言語処理方法及び自然言語処理プログラム
【課題】本発明の実施形態が解決する課題は、複数の形態素単位で同義語変換を行なう自然言語処理装置を提供することである。
【解決手段】
実施形態の自然言語処理装置は、同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、形態素解析の結果と同義語辞書とを用いて、形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が同義語変換対象語と一致するかを判定し、一致すると判定した同義語変換対象語を対応する同義語に変換する同義語変換部と、を備える。
【解決手段】
実施形態の自然言語処理装置は、同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、形態素解析の結果と同義語辞書とを用いて、形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が同義語変換対象語と一致するかを判定し、一致すると判定した同義語変換対象語を対応する同義語に変換する同義語変換部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、自然言語処理装置、自然言語処理方法及び自然言語処理プログラムに関する
【背景技術】
【0002】
変換対象の語句と、当該変換対象の同義語とが対応付けられて登録されている同義語辞書を用いて、文の同義語を変換する技術がある。
【0003】
例えば、文を形態素解析で区切った文字列のうち、同義語辞書に登録されている変換対象と一致する文字列を同義語で変換する。このときの変換対象は1単語や1形態素単位で同義語辞書に登録されている。このとき、同義語辞書で定義されている変換対象が、同義語変換対象の文において、複数の形態素である場合は同義語変換が行なわれない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−77491号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態が解決する課題は、複数の形態素単位で同義語変換を行なう自然言語処理装置を提供することである。
【課題を解決するための手段】
【0006】
実施形態の自然言語処理装置は、同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、形態素解析の結果と同義語辞書とを用いて、形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が同義語変換対象語と一致するかを判定し、一致すると判定した同義語変換対象語を対応する同義語に変換する同義語変換部と、を備える。
【図面の簡単な説明】
【0007】
【図1】第1の実施形態に係る自然言語処理装置のハードウェア構成の一例を示すブロック図。
【図2】第1の実施形態に係る自然言語処理装置の機能構成の一例を示すブロック図。
【図3】第1の実施形態に係る自然言語処理装置の形態素解析の処理結果の一例を示す図。
【図4】第1の実施形態に係る自然言語処理装置の同義語辞書記憶部に格納されている同義語辞書の一例を示す図。
【図5】第1の実施形態に係る自然言語処理装置の動作の一例を示すフローチャート。
【図6】第1の実施形態に係る自然言語処理装置の入力部によって入力された文書群の一例。
【図7】第1の実施形態に係る自然言語処理装置の同義語変換処理の一例を示すフローチャート。
【図8】第1の実施形態に係る自然言語処理装置の複合語変換処理の一例を示すフローチャート。
【図9】第1の実施形態に係る自然言語処理装置の同義語変換対象判定処理の一例を示すフローチャート。
【図10】第1の実施形態に係る自然言語処理装置の単語変換処理の一例を示すフローチャート。
【図11】第2の実施形態に係る自然言語処理装置の機能構成の一例を示すブロック図。
【図12】第2の実施形態に係る自然言語処理装置の付属語辞書記憶部に格納されている付属語辞書の一例を示す図。
【図13】第2の実施形態に係る自然言語処理装置の複合語変換処理の一例を示すフローチャート。
【図14】第2の実施形態に係る自然言語処理装置の付属語判定処理の一例を示すフローチャート。
【図15】第2の実施形態に係る自然言語処理装置の同義語変換対象判定処理の一例を示すフローチャート。
【発明を実施するための形態】
【0008】
以下、図面を参照して、本発明の自然言語処理装置の各実施形態について説明する。
【0009】
(第1の実施形態)
図1乃至図10を参照して、本発明の第1の実施形態について説明する。
【0010】
図1は、本実施形態に係る自然言語処理装置30のハードウェア構成を示すブロック図である。図1に示すように、自然言語処理装置30は、コンピュータ10と、外部記憶装置20とを備える。
【0011】
外部記憶装置20は、例えばハードディスクドライブ(HDD:Hard Disk Drive)である。外部記憶装置20はプログラム21を格納しており、コンピュータ10がプログラム21を実行する。
【0012】
図2は、図1に示す自然言語処理装置30の機能構成を示すブロック図である。
【0013】
図2に示すように、本実施形態の自然言語処理装置30は、入力部31、形態素解析部32、同義語変換部33、文字列生成部34、出力部35及び同義語辞書記憶部38を備える。本実施形態の同義語装置30は、文書中の各文に含まれる語を、同義語辞書を用いて、該当する同義語に変換する機能を有する。
【0014】
本実施形態において、これらの各部31〜35の機能は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現される。このプログラム21は、コンピュータが読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が、例えばネットワークを介して外部装置からコンピュータ10にダウンロードされても構わない。
【0015】
入力部31は、ユーザの操作に応じて、当該ユーザによって指定された文書を入力する。このとき、入力部は複数の文書(以下、文書群という)を入力してもよい。
【0016】
入力部31によって入力される文書は、自立語と付属語を含む文によって構成される。 なお、入力部31によって入力される文書には当該文書を識別するための文書IDが付与されている。
【0017】
形態素解析部32は、入力部31によって入力された文書に形態素解析処理を行い、当該文書中に含まれる各文を形態素毎に分割する。形態素とは、意味を担う最小の言語要素のことである。
【0018】
また、形態素解析部32は、分割した形態素の組を生成する。形態素の組は、例えば自立語と付属語からなる。
【0019】
図3を参照して、形態素解析部32による形態素解析処理結果の一例を示す。ここでは、入力部31によって入力される文書中に、例文1「私は職場で社内インターネットを用いる」と例文2「花子は会社で人気がある」が含まれる場合の一例について説明する。
【0020】
図3に示すように、例文1の形態素解析処理結果は、「私(名詞)」「は(助詞)」「職場(名詞)」「で(助詞)」「社内(名詞)」「インターネット(名詞)」「を(助詞)」「用いて(動詞)」「いる(接尾辞)」となる。
【0021】
例文2の形態素解析処理結果は、「花子(名詞)」「は(助詞)」「会社(名詞)」「で(助詞)」「人気(名詞)」「が(助詞)」「ある(名詞)」となる。
【0022】
同義語変換部33は、形態素解析部32によって生成された各形態素を、後述する同義語辞書記憶部38に記憶されている同義語辞書に基づいて変換する同義語変換処理を行う。本実施形態では、複数の形態素を結合した組を複合語といい、1つの形態素を単語という。
【0023】
同義語変換部33は、複合語変換部36と、単語変換部37とを備える。複合語変換部36は、同義語変換処理対象の文に含まれる複合語を同義語辞書に基づいて変換する。単語変換部37は、同義語変換処理対象の文に含まれる単語を同義語辞書に基づいて変換する。
【0024】
同義語辞書記憶部38は、例えば外部記憶装置20に格納される。同義語辞書記憶部38には、同義語と変換対象語とが対応して格納されている。ここで、図4に同義語辞書の一例である同義語辞書テーブル380を示す。
【0025】
図4に示したように、本実施形態の同義語辞書記憶部38には、同義語辞書テーブル380が格納されている。同義語辞書テーブル380は、同義語381と変換対象語382の項目が対応付けられて1行に格納されている。同義語381は同義語変換処理後の語である。
【0026】
本実施形態の同義語辞書テーブル380は、1行目に変換対象語382「職場」に対応して同義語381「オフィス」が格納されている。同様に、同義語辞書テーブル380の2行目は、変換対象語382「会社」に対して同義語381「オフィス」が、3行目は変換対象語382「社内インターネット」に対して、同義語381「イントラネット」がそれぞれ対応して格納されている。
【0027】
なお、同義語辞書テーブル380はM行であるとする。すなわち、本実施形態では同義語辞書テーブル380に格納されている同義語381と変換対象語382のペアはM個である。
【0028】
文字列生成部34は、同義語変換部33における変換処理結果を用いて、文字列を生成する文字列生成処理を行う。
【0029】
出力部35は、文字列生成部34で生成された文字列を出力する。
【0030】
図5を参照して、本実施形態に係る自然言語処理装置30の動作の一例について説明する。図5は、本実施形態に係る自然言語処理装置30の動作の一例を示すフローチャートである。なお、本実施形態におけるフローチャートでは日本工業規格(JIS)で決められた図形を用いている。
【0031】
入力部31は、ユーザの操作に応じて、当該ユーザによって指定された文書群を入力する(ステップS1)。本実施形態では、社員の会社生活に関するアンケートの文書群が入力部31によって入力されたものとする。
【0032】
図6に入力された文書群40の一例を示す。なお、本実施形態の入力部31は、平文の形式で文書群を入力する。
【0033】
図6に示すように、入力部31によって入力された文書群40に含まれる各文書データ42は、各文書データを識別するための文書ID41が付与されている。
【0034】
具体的には、文書群40は、文書ID「1」が付与された文書データ「私は職場で社内インターネットを用いている。無線LANで用いている。」と、文書ID「2」が付与された文書データ「私は社内の食堂でうどんを食べた。」と、文書ID「3」が付与された文書データ「家でインターネットを始めた。」と、文書ID「4」が付与された文書データ「佐藤さんはイントラネットを開始した。」と、文書ID「5」が付与された文書データ「花子は会社で人気がある。」とが含まれている。
【0035】
以下、文書群40に含まれる文書のうち、文書ID「1」の「私は職場で社内インターネットを用いている。無線LANで用いている。」における処理について具体的に説明する。なお、「私は職場で社内インターネットを用いている。」を第1の文とし、「無線LANで用いている。」を第2の文とする。他の文書データについては同様であるため、詳しい説明を省略する。
【0036】
図5の説明に戻る。形態素解析部32は、入力された文書群40に含まれる各文書データ42を構成する各文、すなわち、文書群40に含まれる各文書データ42中の全ての文に形態素解析処理を行う(ステップS2)。
【0037】
文書ID「1」における第1の文の形態素解析処理結果は、「私(名詞)」「は(助詞)」「職場(名詞)」「で(助詞)」「社内(名詞)」「インターネット(名詞)」「を(助詞)」「用いて(動詞)」「いる(接尾辞)」である。第2の文の形態素解析処理結果は、「無線(名詞)」「LAN(名詞)」「で(助詞)」「用いて(動詞)」「いる(接尾辞)」である。
【0038】
同義語変換部33は、同義語辞書記憶部38に格納された同義語辞書テーブル380を用いて、形態素解析部32によって生成された形態素を同義語に変換する同義語変換処理を行う(ステップS3)。
【0039】
ここで、図7〜図10を参照して、ステップS3における同義語変換処理について具体的に説明する。図7は、本実施形態の同義語変換処理の一例を示すフローチャートである。
【0040】
まず、同義語変換部33は、文書データ42に含まれる文ごとに、形態素解析部32によって生成された形態素の組と、同義語辞書記憶部38内の同義語辞書を受信する(ステップS30)。
【0041】
具体的には、同義語変換部33は、 文書ID「1」における第1の文の形態素の組「私(名詞)」「は(助詞)」「職場(名詞)」「で(助詞)」「社内(名詞)」「インターネット(名詞)」「を(助詞)」「用いて(動詞)」「いる(接尾辞)」と、第2の文の形態素の組「無線(名詞)」「LAN(名詞)」「で(助詞)」「用いて(動詞)」「いる(接尾辞)」、及び同義語辞書テーブル380を受信する。
【0042】
なお、形態素解析結果の形態素の組を形態素結果リストLと定義し、このリストLの要素数をNとする。形態素結果リストLは同義語変換部33によって文書データ42に含まれる文ごとに作成される。
【0043】
また、形態素結果リストLの変数をiとする。すなわち、形態素結果リストLに含まれるi番目の形態素をL[i]と記載する。
【0044】
具体的には、第1の文において、L[0]=私、L[1]=は、L[2]=職場、L[3]=で、L[4]=社内、L[5]=インターネット、L[6]=を、L[7]=用いて、L[8]=いる、となる。また、第1の文においてN=9である。
【0045】
第2の文においては、L[0]=無線、L[1]=LAN、L[2]=で、L[3]=用いて、L[4]=いる、となる。また、第2の文においてN=5である。
【0046】
同義語変換部33は、同義語変換処理後の語を格納する配列を初期化する(ステップS31)。同義語変換処理後の語を格納する配列を「newlist」とする。また、配列newlistには、複合語変換処理フラグ(flag1)が含まれているとする。このnewlistも形態素結果リストLと同様に文ごとに作成されるとする。
【0047】
同義語変換部33は、変数iを初期化する(ステップS32)。すなわち、変数iに0を代入する。
【0048】
続いて、ステップS33に進む。すなわち、同義語変換部33は変数iが(N−1)以下であるかどうか判定する(ステップS33)。ステップS33において変数iが(N−1)以下である場合、同義語変換部33は、ステップS33〜ステップS40までの処理をループする。
【0049】
すなわち、i≦N−1である場合、同義語変換部33はsw1=L[i]とする(ステップS34)。なお、sw1はnewlistの要素の候補である。
【0050】
ここで、第1の文においてi=4である場合のステップS34からの処理について具体的に説明する。ステップS34において、sw1=L[4]=社内である。
【0051】
また、同義語変換部33は、複合語変換処理フラグの初期値を「false」とする(ステップS35)。すなわち、同義語変換部33は、flag1=falseとする。
【0052】
続いて、同義語変換部33の複合語変換部36が複合語変換処理を行う(ステップS36)。
【0053】
ここで、図8を参照して本実施形態の複合語変換処理について説明する。なお、同義語辞書テーブル380の変換対象語382が格納されているリストをPとする。また、ここでは、j、kという変数を用いて複合語変換処理について説明する。j、kは整数であり、0≦j≦M、0≦k≦N+1である。
【0054】
まず、複合語変換部36はjを初期化する(ステップS50)。すなわち、jに0を代入する。
【0055】
続いて、複合語変換部36はjがM−1以下であるかどうかの判定を行う(ステップS51)。
【0056】
ステップS51においてjがM−1以下である場合、複合語変換部36はステップS51〜ステップS58の処理をループする。
【0057】
すなわち、複合語変換部36はsw1がP[j]と前方一致するかどうかを判定する(ステップS52)。なお、前方一致とは文字列gdがP[j]の先頭の文字から所定の文字までと一致することを意味する。
【0058】
この場合、P[j]は、P[0]=職場、P[1]=会社、P[2]=社内インターネット、である。
【0059】
sw1が、P[j]と前方一致しない場合(ステップS52がNo)、複合語変換部36はjに1を追加する(ステップS60)。その後、複合語変換部36は、ステップS51の判定に戻る(ステップS61)。
ステップS51においてjがM−1より大きい場合、すなわち、同義語辞書テーブル380に格納されたすべての変換対象語382に対してsw1が前方一致しているか否かを判定し終えた場合、複合語変換部36は、ステップS61以降の処理へ進む。すなわち、複合語変換部36は複合語変換処理を終了する。
【0060】
なお、例えばsw1=L[2]=職場の場合は、P[j]と前方一致しないため複合語変換部36は複合語変換処理を終了し、図7のステップS37へ進む。
【0061】
sw1が、P[j]と前方一致する場合(ステップS52がYes)、複合語変換部36はk=i+1とする(ステップS53)。続いて、複合語変換部36は文字列gd=sw1+L[k]とする(ステップS54)。
【0062】
すなわち、複合語変換部36はステップS53とステップS54の処理によって、sw1の形態素とsw1の次に出現する形態素とを結合し、文字列gdを生成する。
【0063】
i=4の場合、sw1=L[4]=社内であり、ステップS52においてP[2]と前方一致するため、ステップS53に進む。複合語変換部36はステップS53とS54の処理で、第1の文の中でsw1=社内の次に出現する形態素である「インターネット」(L=K[4+1])をsw1に結合し、文字列gd=「社内インターネット」が生成する。
【0064】
ここで、複合語変換部36は、ステップS54で生成された文字列gdに対して同義語変換対象判定処理を行う(ステップS55)。
ここで、図9を参照して同義語変換対象判定処理について説明する。図9は複合語変換部36による同義語変換対象判定処理の一例を示すフローチャートである。
【0065】
まず、複合語変換部36は、文字列gdがP[j]と前方一致し、かつ完全一致はしないか否かを判定する(ステップS550)。なお、完全一致とは、文字列gdがP[j]の最初から最後まででのすべての文字と一致することを意味する。
【0066】
文字列gdがP[j]と前方一致し、かつ完全一致はしない場合(ステップS550がYes)、複合語変換部36はkにk+1を代入し(ステップS551)、文字列gdにgd+L[k]を代入する(ステップS552)。その後、複合語変換部36はステップS550に戻り、処理を繰り返す。
【0067】
文字列gdがP[j]と前方一致しない、もしくは前方一致かつ完全一致する場合(ステップS551がNo)、複合語変換部36は同義語変換対象判定処理を終了する。
【0068】
ここで、gd=「社内インターネット」は、変換対象リストP[j]のうちP[2]=社内「インターネット」と完全一致するため、ステップS550においてNoと判定される。
したがって、複合語変換部36はそのまま何も処理せずに同義語変換対象判定処理を終了する。
【0069】
図8のステップS56の説明に戻る。複合語変換部36はステップS55で生成した文字列gdが、P[j]と完全一致するか否かを判定する(ステップS56)。
【0070】
文字列gbがP[j]と完全一致する場合(ステップS56がYes)、複合語変換部36は、P[j]に対応する同義語381をnewlistの末尾に追加する(ステップS57)。
【0071】
その後、複合語変換部36は、複合語変換処理フラグを複合語変換が行われたことを示す「true」に変換する(ステップS58)。複合語変換部36は、形態素結果リストLの変数iにkを代入し(ステップS59)、複合語変換処理を終了する。
【0072】
gd=「社内インターネット」は、変換対象リストP[j]のうちP[2]=社内「インターネット」と完全一致するため、ステップS56の判定はYesとなる。したがって、ステップS57においてP[2]に対応する同義語=「イントラネット」が、newlistの末尾の要素に「イントラネット」が追加される。すなわち、P[2]に対応する同義語=「イントラネット」がgd=「社内インターネット」同期変換後の語となる。
【0073】
文字列gbがP[j]と完全一致しない場合(ステップS56がNo)、複合語変換部36は、jにj+1を代入する(ステップS60)。その後、複合語変換部36は、ステップS51の判定に戻る(ステップS61)。
【0074】
ステップS51において、jが同義語辞書記憶部38に格納された同義語辞書の行数Mより大きい場合、複合語変換部36はステップS61に進み複合語変換処理を終了する。
【0075】
図7の説明に戻る。ステップS36の複合語変換処理が終了すると、複合語変換部33は複合語変換処理フラグがtrueか否かを確認する(ステップS37)。
【0076】
複合語変換処理フラグがtrueである場合(ステップS37がYes)、同義語変換部33はi=i+1とする(ステップS39)。その後、同義語変換部33はステップS33の判定に戻る(ステップS40)。
【0077】
複合語変換処理フラグがfalseである場合(ステップS37がNo)、同義語変換部33はnewlistiの末尾にsw1を追加し(ステップS38)、iをi+1とし(ステップS39)、ステップS33の判定に戻る(ステップS40)。
【0078】
sw1=L[4]である場合、複合語変換処理フラグはtrueであるため、ステップS37では、Yesと判定される。したがって、iをi+1とし(ステップS39)、ステップS33の判定に戻り(ステップS40)、他のiについても同様な処理を行う。
【0079】
ステップS33の判定においてiがN−1より大きい場合、同義語変換部33はステップS33〜ステップS40のループを終了し、ステップS41に進む。すなわち、同義語変換部33の単語変換部37は単語変換処理を行う(ステップS41)。単語変換処理が終了すると、本実施形態の同義語変換処理は終了する。
【0080】
ステップS40の処理の終了後には、newlist=「私、は、職場、で、イントラネット、 を、用いて、いる」が生成されている。
【0081】
なお、ここでは、変換対象が2形態素の場合の処理を一例として説明したが、本実施形態の同義語変換処理によると、3以上の形態素の場合でも同様に同義語に変換できる。例えば、ステップS2の形態素解析の結果、「社」「内」「インターネット」と解析された場合でも、社内インターネットはイントラネットに変換できる。なお、この場合ステップS550の判定において、Yesと判定される。
【0082】
次に、newlist=「私、は、職場、で、イントラネット、 を、用いて、いる」を用いた場合の、ステップS41における単語変換処理について図10を参照して説明する。なお、ここではxという変数を用いて説明する。
【0083】
まず、単語変換部37が単語変換処理後の語が格納されるリストであるnewlist2を作成する(ステップS70)。なお、配列newlistには、単語変換処理フラグ(flag2)が含まれているとする。
【0084】
また、単語変換部37はxを初期化する(ステップS71)。すなわち、単語変換部37はxに0を代入する。
【0085】
xが(newlistの配列数−1)以下である場合(ステップS72)、単語変換部37はステップS72からステップS85までの処理のループを行う。
【0086】
具体的には単語変換部37は、単語変換処理フラグの初期値をfalseにする(ステップS73)。すなわち、単語変換部37は、flag2=falseとする。
【0087】
また、単語変換部37は、sw2=newlist[x]とする(ステップS74)。なお、sw2はnewlist2の要素の候補である。例えばx=2の場合、sw2=newlist[2]、すなわちsw2=職場となる。また、単語変換部37はjを初期化する(ステップS75)。
続いて、単語変換部37はステップS76の判定を行う。jが(M−1)以下である場合、単語変換部37はステップS77の処理に進む。
【0088】
すなわち、jが(M−1)以下である場合、単語変換部37は、sw2がP[j]と完全一致するか否かを判定する(ステップS77)。sw2がP[j]と完全一致する場合(ステップS77がYes)、単語変換部37は、newlist2の末尾にP[j]に対応する同義語を追加する(ステップS80)。その後、単語変換部37は単語変換処理フラグをtrueに変更し(ステップS81)、ステップS82へ進む。
【0089】
sw2がP[j]と完全一致しない場合(ステップS77がNo)、単語変換部37は、jに1を追加する(ステップS78)。ここで、単語変換部37はステップS76に戻る(ステップS79)。
【0090】
sw2=newlist[2]=職場は、P[0]と完全一致するので、単語変換部37はnewlist2の最後の配列にP[0]に対応する同義語=「オフィス」が追加される(ステップS80)。なお、x=0とx=1の場合におけるS72〜S85のループ処理により、newlist2=「私、は」となっている。したがって、sw2=newlist[2]=職場の場合、newlist2=「私、は、 オフィス」となる。
【0091】
また、単語変換部37はステップS76においてjが(M−1)よりも大きい場合、ステップS82へ進む。
【0092】
単語変換部37は、単語変換処理フラグがtrueであるか否かを判定する(ステップS82)。単語変換処理フラグがfalseである場合(ステップS82がNo)、単語変換部37はnewlist2の末尾にsw2を追加する(ステップS83)。その後、単語変換部37はxに1を追加する(ステップS84)。
【0093】
また、単語変換処理フラグがtrueである場合(ステップS82がYes)、単語変換部37はxにx+1を代入する(ステップS84)。その後、単語変換部37は、ステップS72の判定に戻る(ステップS85)。
【0094】
ステップS72において、xが(newlistの配列数−1)より大きい場合は、単語変換部37は処理を終了する。すなわち、図5のステップS3における同義語変換処理が終了する。このとき、newlist2=「私、は、オフィス、で、イントラネット、 を、用いて、いる」となっている。
【0095】
図5のステップS4に戻る。ステップS4では、文字列生成部34がS3で作成されたnewlist2の要素を、格納順に結合する(ステップS4)。ここでは、ステップS85までの処理で得られたnewlist2私、は、オフィス、で、イントラネット、 を、用いて、いる」を結合し、「私はオフィスでイントラネットを用いている。」という文字列が生成される。
【0096】
そして、出力部35が、文字列生成部34によって生成された文字列を出力する(ステップS5)。これにより、本実施形態の自然言語処理装置30の処理が終了する。
【0097】
上述したように、第1の実施形態の自然言語処理装置30によると、複数の形態素単位で同義語変換を行なうことが可能となる。すなわち、同義語変換の精度を向上することが可能となる。なお、本実施形態の自然言語処理装置30においては、形態素解析の方法は限定されない。例えば日本語文法の形態素であっても、学校文法の形態素であっても本実施形態の自然言語処理装置30は処理を行うことが可能である。
【0098】
(第2の実施形態)
以下、図11乃至図15を参照し、本発明の第2の実施形態について説明する。なお、第1の実施形態と同一の構成には同一の符号を付与し、説明は省略する。
【0099】
図11は、本実施形態の自然言語処理装置50の機能構成を示すブロック図である。図11に示すように、自然言語処理装置50の機能構成は、自然言語処理装置30の機能構成に付属語判定部39と、付属語辞書記憶部40とが含まれる。
【0100】
付属語判定部39は、付属語辞書記憶部40に記憶された付属語辞書を用いて、対象の語が付属語かどうかを判定する付属語判定処理を行う。付属語は、単独で文節を構成できない語であり、具体的には助詞と助動詞である。付属語辞書は例えばH個の要素からなるリストS[r](0≦r≦H−1)で表現される。
【0101】
図12に付属語辞書の一例である付属語辞書リスト401を示す。図12に示すように、付属語辞書リスト401は、S[0]=での、S[1]=の、・・・、である。
【0102】
付属語判定処理は、同義語変換処理の中で行われる。図13に、本実施形態における同義語変換処理の一例を示す。なお、ステップS50〜ステップS61は、第1の実施形態における同義語変換処理と同一であるため説明は省略する。すなわち、ここではステップS62とステップS63について説明する。
【0103】
なお、本実施形態では「私は社内でのインターネットを用いる。」という文が入力された場合について具体的に説明する。形態素リストL[i]は、L[0]=私、L[1]=は、L[2]=社内、L[3]=で、L[4]=の、L[5]=インターネット、L[6]=を、L[7]=用いる、である。
【0104】
ここではi=2の場合の処理について具体的に説明し、他の処理については同様であるため省略する。
【0105】
図13に示すように、本実施形態ではステップS53においてk=i+1とした後、付属語判定部39は付属語判定処理を行う(ステップS62)。
【0106】
図13のステップS62の処理を、図14を用いて説明する。まず、付属語判定部39はybにL[k]を代入する(ステップS100)。すなわち、yb=L[3]=「で」である。
【0107】
ここで、付属語判定部39はrを初期化する(ステップS101)。rの初期化とはrに0を代入することである。続いて付属語判定部39はステップS102の判定を行う。
【0108】
ステップS102においてr≦(H−1)であれば、付属語判定部39はステップS102〜ステップS107の処理をループする。
【0109】
すなわち、r≦(H−1)であれば付属語判定部39はybがS[r]と前方一致か否かを判定する(ステップS103)。ybがS[r]と前方一致である場合(ステップS103がYes)、付属語判定部39はkに1を追加する(ステップS104)。そして、付属語判定部39は、yb=yb+L[k]とする(ステップS105)。続いて付属語判定部39はrに1を追加し、(ステップS106)ステップS107に進む。ステップS107に処理が進むと、付属語判定部39はステップS102に戻り、処理を繰り返す。
【0110】
ybがS[r]と前方一致でない場合(ステップS103がNo)、付属語判定部39はybがS[r]と完全一致するか否かを判定する(ステップS108)。ybがS[r]と完全一致する場合(ステップS108がYes)、付属語判定部39はkに1を追加し(ステップS109)、付属語判定処理を終了する。
【0111】
ybがS[r]と完全一致しない場合(ステップS108がNo)、付属語判定部39はrに1を追加する(ステップS106)。その後、
ステップS102においてr>(H−1)であれば、付属語判定部39はステップS107以降の処理に進む。すなわち、付属語判定処理を終了する。これにより、図12のステップS62についての説明が終了する。
【0112】
続いて、図13のステップS63における同義語変換対象判定処理について図15を参照して説明する。
【0113】
図15に示すように、本実施形態の同義語変換対象判定処理は第1の実施形態における同義語変換対象判定処理のステップS551とステップS552の間に、ステップS553の付属語判定処理を追加したものである。ステップS553における付属語判定処理は図12のステップS62における付属語判定処理と同一であるため、説明は省略する。
【0114】
例えば、ステップS103において、yb=L[3]=「で」はS[0]=「での」と前方一致するため、付属語判定部39はyb=L[3]+L[3+1]=「で」+「の」とし、ステップS103の判定に戻る。この場合、ybはS[0]と完全一致するため、付属語判定部39はステップS109に進み、kにk+1を代入する。すなわち、k=5とする。その後、付属語判定部39は付属語判定処理を終了する。なお、このときステップS54において作成される文字列gdは、L[2]+L[5]=「社内インターネット」となる。
【0115】
引き続き、第1の実施形態と同じ処理が行われ、図5のステップS5において「私はイントラネットを用いる」が生成される。
【0116】
上述のように、第2の実施形態によると、変換対象の中に助詞がある場合、すなわち社内でのインターネットと社内インターネット、のように助詞が含まれていても互いに意味が同じ場合、同義語変換を実現することができる。
【0117】
以上、本発明のいくつかの実施形態を説明したが、これら実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、同義語変換部33は、同義語辞書テーブル380に適用例外条件という項目を追加、入力された文に含まれる形態素が変換対象語382と一致した場合であっても適用例条件に格納された条件を満たす場合は同義語変換対象からはずす処理を行う例外判定部を備えても良い。
【0118】
適用例外383には例えば接辞が格納される。接辞とは、単語の前後などにくっついて単語の意味を変化させたり補ったりするものであり、例えば接頭語、接尾語、接周語などがある。また、日本語には無いが、単語を2つに分割し中に割り込む接中語もある。適用例外に接頭語が格納されている場合、例外判定部は対応する変換対象語の一つ前の形態素を確認し、この形態素が適用例外と一致する場合は同義語変換処理を行わない。これにより、不適切な同義語変換を防止することができる。
【0119】
また、本実施形態では図5のステップS3における同義語変換処理の後、文字列を生成し、出力する処理を行っているが、文書クラスタリングを行なっても良い。本実施形態による同義語変換処理を行ってから文書クラスタリングを行なうことにより、同義語を考慮した適切な分類を実現することができる。
【符号の説明】
【0120】
10…コンピュータ、20…外部記憶装置、21…プログラム、30…同義語変換装置、31…入力部、32…形態素解析部、33…同義語変換部、34…文字列生成部、35…出力部、36…複合語変換部、37…単語変換部、38…同義語辞書記憶部
【技術分野】
【0001】
本発明の実施形態は、自然言語処理装置、自然言語処理方法及び自然言語処理プログラムに関する
【背景技術】
【0002】
変換対象の語句と、当該変換対象の同義語とが対応付けられて登録されている同義語辞書を用いて、文の同義語を変換する技術がある。
【0003】
例えば、文を形態素解析で区切った文字列のうち、同義語辞書に登録されている変換対象と一致する文字列を同義語で変換する。このときの変換対象は1単語や1形態素単位で同義語辞書に登録されている。このとき、同義語辞書で定義されている変換対象が、同義語変換対象の文において、複数の形態素である場合は同義語変換が行なわれない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−77491号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態が解決する課題は、複数の形態素単位で同義語変換を行なう自然言語処理装置を提供することである。
【課題を解決するための手段】
【0006】
実施形態の自然言語処理装置は、同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、形態素解析の結果と同義語辞書とを用いて、形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が同義語変換対象語と一致するかを判定し、一致すると判定した同義語変換対象語を対応する同義語に変換する同義語変換部と、を備える。
【図面の簡単な説明】
【0007】
【図1】第1の実施形態に係る自然言語処理装置のハードウェア構成の一例を示すブロック図。
【図2】第1の実施形態に係る自然言語処理装置の機能構成の一例を示すブロック図。
【図3】第1の実施形態に係る自然言語処理装置の形態素解析の処理結果の一例を示す図。
【図4】第1の実施形態に係る自然言語処理装置の同義語辞書記憶部に格納されている同義語辞書の一例を示す図。
【図5】第1の実施形態に係る自然言語処理装置の動作の一例を示すフローチャート。
【図6】第1の実施形態に係る自然言語処理装置の入力部によって入力された文書群の一例。
【図7】第1の実施形態に係る自然言語処理装置の同義語変換処理の一例を示すフローチャート。
【図8】第1の実施形態に係る自然言語処理装置の複合語変換処理の一例を示すフローチャート。
【図9】第1の実施形態に係る自然言語処理装置の同義語変換対象判定処理の一例を示すフローチャート。
【図10】第1の実施形態に係る自然言語処理装置の単語変換処理の一例を示すフローチャート。
【図11】第2の実施形態に係る自然言語処理装置の機能構成の一例を示すブロック図。
【図12】第2の実施形態に係る自然言語処理装置の付属語辞書記憶部に格納されている付属語辞書の一例を示す図。
【図13】第2の実施形態に係る自然言語処理装置の複合語変換処理の一例を示すフローチャート。
【図14】第2の実施形態に係る自然言語処理装置の付属語判定処理の一例を示すフローチャート。
【図15】第2の実施形態に係る自然言語処理装置の同義語変換対象判定処理の一例を示すフローチャート。
【発明を実施するための形態】
【0008】
以下、図面を参照して、本発明の自然言語処理装置の各実施形態について説明する。
【0009】
(第1の実施形態)
図1乃至図10を参照して、本発明の第1の実施形態について説明する。
【0010】
図1は、本実施形態に係る自然言語処理装置30のハードウェア構成を示すブロック図である。図1に示すように、自然言語処理装置30は、コンピュータ10と、外部記憶装置20とを備える。
【0011】
外部記憶装置20は、例えばハードディスクドライブ(HDD:Hard Disk Drive)である。外部記憶装置20はプログラム21を格納しており、コンピュータ10がプログラム21を実行する。
【0012】
図2は、図1に示す自然言語処理装置30の機能構成を示すブロック図である。
【0013】
図2に示すように、本実施形態の自然言語処理装置30は、入力部31、形態素解析部32、同義語変換部33、文字列生成部34、出力部35及び同義語辞書記憶部38を備える。本実施形態の同義語装置30は、文書中の各文に含まれる語を、同義語辞書を用いて、該当する同義語に変換する機能を有する。
【0014】
本実施形態において、これらの各部31〜35の機能は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現される。このプログラム21は、コンピュータが読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が、例えばネットワークを介して外部装置からコンピュータ10にダウンロードされても構わない。
【0015】
入力部31は、ユーザの操作に応じて、当該ユーザによって指定された文書を入力する。このとき、入力部は複数の文書(以下、文書群という)を入力してもよい。
【0016】
入力部31によって入力される文書は、自立語と付属語を含む文によって構成される。 なお、入力部31によって入力される文書には当該文書を識別するための文書IDが付与されている。
【0017】
形態素解析部32は、入力部31によって入力された文書に形態素解析処理を行い、当該文書中に含まれる各文を形態素毎に分割する。形態素とは、意味を担う最小の言語要素のことである。
【0018】
また、形態素解析部32は、分割した形態素の組を生成する。形態素の組は、例えば自立語と付属語からなる。
【0019】
図3を参照して、形態素解析部32による形態素解析処理結果の一例を示す。ここでは、入力部31によって入力される文書中に、例文1「私は職場で社内インターネットを用いる」と例文2「花子は会社で人気がある」が含まれる場合の一例について説明する。
【0020】
図3に示すように、例文1の形態素解析処理結果は、「私(名詞)」「は(助詞)」「職場(名詞)」「で(助詞)」「社内(名詞)」「インターネット(名詞)」「を(助詞)」「用いて(動詞)」「いる(接尾辞)」となる。
【0021】
例文2の形態素解析処理結果は、「花子(名詞)」「は(助詞)」「会社(名詞)」「で(助詞)」「人気(名詞)」「が(助詞)」「ある(名詞)」となる。
【0022】
同義語変換部33は、形態素解析部32によって生成された各形態素を、後述する同義語辞書記憶部38に記憶されている同義語辞書に基づいて変換する同義語変換処理を行う。本実施形態では、複数の形態素を結合した組を複合語といい、1つの形態素を単語という。
【0023】
同義語変換部33は、複合語変換部36と、単語変換部37とを備える。複合語変換部36は、同義語変換処理対象の文に含まれる複合語を同義語辞書に基づいて変換する。単語変換部37は、同義語変換処理対象の文に含まれる単語を同義語辞書に基づいて変換する。
【0024】
同義語辞書記憶部38は、例えば外部記憶装置20に格納される。同義語辞書記憶部38には、同義語と変換対象語とが対応して格納されている。ここで、図4に同義語辞書の一例である同義語辞書テーブル380を示す。
【0025】
図4に示したように、本実施形態の同義語辞書記憶部38には、同義語辞書テーブル380が格納されている。同義語辞書テーブル380は、同義語381と変換対象語382の項目が対応付けられて1行に格納されている。同義語381は同義語変換処理後の語である。
【0026】
本実施形態の同義語辞書テーブル380は、1行目に変換対象語382「職場」に対応して同義語381「オフィス」が格納されている。同様に、同義語辞書テーブル380の2行目は、変換対象語382「会社」に対して同義語381「オフィス」が、3行目は変換対象語382「社内インターネット」に対して、同義語381「イントラネット」がそれぞれ対応して格納されている。
【0027】
なお、同義語辞書テーブル380はM行であるとする。すなわち、本実施形態では同義語辞書テーブル380に格納されている同義語381と変換対象語382のペアはM個である。
【0028】
文字列生成部34は、同義語変換部33における変換処理結果を用いて、文字列を生成する文字列生成処理を行う。
【0029】
出力部35は、文字列生成部34で生成された文字列を出力する。
【0030】
図5を参照して、本実施形態に係る自然言語処理装置30の動作の一例について説明する。図5は、本実施形態に係る自然言語処理装置30の動作の一例を示すフローチャートである。なお、本実施形態におけるフローチャートでは日本工業規格(JIS)で決められた図形を用いている。
【0031】
入力部31は、ユーザの操作に応じて、当該ユーザによって指定された文書群を入力する(ステップS1)。本実施形態では、社員の会社生活に関するアンケートの文書群が入力部31によって入力されたものとする。
【0032】
図6に入力された文書群40の一例を示す。なお、本実施形態の入力部31は、平文の形式で文書群を入力する。
【0033】
図6に示すように、入力部31によって入力された文書群40に含まれる各文書データ42は、各文書データを識別するための文書ID41が付与されている。
【0034】
具体的には、文書群40は、文書ID「1」が付与された文書データ「私は職場で社内インターネットを用いている。無線LANで用いている。」と、文書ID「2」が付与された文書データ「私は社内の食堂でうどんを食べた。」と、文書ID「3」が付与された文書データ「家でインターネットを始めた。」と、文書ID「4」が付与された文書データ「佐藤さんはイントラネットを開始した。」と、文書ID「5」が付与された文書データ「花子は会社で人気がある。」とが含まれている。
【0035】
以下、文書群40に含まれる文書のうち、文書ID「1」の「私は職場で社内インターネットを用いている。無線LANで用いている。」における処理について具体的に説明する。なお、「私は職場で社内インターネットを用いている。」を第1の文とし、「無線LANで用いている。」を第2の文とする。他の文書データについては同様であるため、詳しい説明を省略する。
【0036】
図5の説明に戻る。形態素解析部32は、入力された文書群40に含まれる各文書データ42を構成する各文、すなわち、文書群40に含まれる各文書データ42中の全ての文に形態素解析処理を行う(ステップS2)。
【0037】
文書ID「1」における第1の文の形態素解析処理結果は、「私(名詞)」「は(助詞)」「職場(名詞)」「で(助詞)」「社内(名詞)」「インターネット(名詞)」「を(助詞)」「用いて(動詞)」「いる(接尾辞)」である。第2の文の形態素解析処理結果は、「無線(名詞)」「LAN(名詞)」「で(助詞)」「用いて(動詞)」「いる(接尾辞)」である。
【0038】
同義語変換部33は、同義語辞書記憶部38に格納された同義語辞書テーブル380を用いて、形態素解析部32によって生成された形態素を同義語に変換する同義語変換処理を行う(ステップS3)。
【0039】
ここで、図7〜図10を参照して、ステップS3における同義語変換処理について具体的に説明する。図7は、本実施形態の同義語変換処理の一例を示すフローチャートである。
【0040】
まず、同義語変換部33は、文書データ42に含まれる文ごとに、形態素解析部32によって生成された形態素の組と、同義語辞書記憶部38内の同義語辞書を受信する(ステップS30)。
【0041】
具体的には、同義語変換部33は、 文書ID「1」における第1の文の形態素の組「私(名詞)」「は(助詞)」「職場(名詞)」「で(助詞)」「社内(名詞)」「インターネット(名詞)」「を(助詞)」「用いて(動詞)」「いる(接尾辞)」と、第2の文の形態素の組「無線(名詞)」「LAN(名詞)」「で(助詞)」「用いて(動詞)」「いる(接尾辞)」、及び同義語辞書テーブル380を受信する。
【0042】
なお、形態素解析結果の形態素の組を形態素結果リストLと定義し、このリストLの要素数をNとする。形態素結果リストLは同義語変換部33によって文書データ42に含まれる文ごとに作成される。
【0043】
また、形態素結果リストLの変数をiとする。すなわち、形態素結果リストLに含まれるi番目の形態素をL[i]と記載する。
【0044】
具体的には、第1の文において、L[0]=私、L[1]=は、L[2]=職場、L[3]=で、L[4]=社内、L[5]=インターネット、L[6]=を、L[7]=用いて、L[8]=いる、となる。また、第1の文においてN=9である。
【0045】
第2の文においては、L[0]=無線、L[1]=LAN、L[2]=で、L[3]=用いて、L[4]=いる、となる。また、第2の文においてN=5である。
【0046】
同義語変換部33は、同義語変換処理後の語を格納する配列を初期化する(ステップS31)。同義語変換処理後の語を格納する配列を「newlist」とする。また、配列newlistには、複合語変換処理フラグ(flag1)が含まれているとする。このnewlistも形態素結果リストLと同様に文ごとに作成されるとする。
【0047】
同義語変換部33は、変数iを初期化する(ステップS32)。すなわち、変数iに0を代入する。
【0048】
続いて、ステップS33に進む。すなわち、同義語変換部33は変数iが(N−1)以下であるかどうか判定する(ステップS33)。ステップS33において変数iが(N−1)以下である場合、同義語変換部33は、ステップS33〜ステップS40までの処理をループする。
【0049】
すなわち、i≦N−1である場合、同義語変換部33はsw1=L[i]とする(ステップS34)。なお、sw1はnewlistの要素の候補である。
【0050】
ここで、第1の文においてi=4である場合のステップS34からの処理について具体的に説明する。ステップS34において、sw1=L[4]=社内である。
【0051】
また、同義語変換部33は、複合語変換処理フラグの初期値を「false」とする(ステップS35)。すなわち、同義語変換部33は、flag1=falseとする。
【0052】
続いて、同義語変換部33の複合語変換部36が複合語変換処理を行う(ステップS36)。
【0053】
ここで、図8を参照して本実施形態の複合語変換処理について説明する。なお、同義語辞書テーブル380の変換対象語382が格納されているリストをPとする。また、ここでは、j、kという変数を用いて複合語変換処理について説明する。j、kは整数であり、0≦j≦M、0≦k≦N+1である。
【0054】
まず、複合語変換部36はjを初期化する(ステップS50)。すなわち、jに0を代入する。
【0055】
続いて、複合語変換部36はjがM−1以下であるかどうかの判定を行う(ステップS51)。
【0056】
ステップS51においてjがM−1以下である場合、複合語変換部36はステップS51〜ステップS58の処理をループする。
【0057】
すなわち、複合語変換部36はsw1がP[j]と前方一致するかどうかを判定する(ステップS52)。なお、前方一致とは文字列gdがP[j]の先頭の文字から所定の文字までと一致することを意味する。
【0058】
この場合、P[j]は、P[0]=職場、P[1]=会社、P[2]=社内インターネット、である。
【0059】
sw1が、P[j]と前方一致しない場合(ステップS52がNo)、複合語変換部36はjに1を追加する(ステップS60)。その後、複合語変換部36は、ステップS51の判定に戻る(ステップS61)。
ステップS51においてjがM−1より大きい場合、すなわち、同義語辞書テーブル380に格納されたすべての変換対象語382に対してsw1が前方一致しているか否かを判定し終えた場合、複合語変換部36は、ステップS61以降の処理へ進む。すなわち、複合語変換部36は複合語変換処理を終了する。
【0060】
なお、例えばsw1=L[2]=職場の場合は、P[j]と前方一致しないため複合語変換部36は複合語変換処理を終了し、図7のステップS37へ進む。
【0061】
sw1が、P[j]と前方一致する場合(ステップS52がYes)、複合語変換部36はk=i+1とする(ステップS53)。続いて、複合語変換部36は文字列gd=sw1+L[k]とする(ステップS54)。
【0062】
すなわち、複合語変換部36はステップS53とステップS54の処理によって、sw1の形態素とsw1の次に出現する形態素とを結合し、文字列gdを生成する。
【0063】
i=4の場合、sw1=L[4]=社内であり、ステップS52においてP[2]と前方一致するため、ステップS53に進む。複合語変換部36はステップS53とS54の処理で、第1の文の中でsw1=社内の次に出現する形態素である「インターネット」(L=K[4+1])をsw1に結合し、文字列gd=「社内インターネット」が生成する。
【0064】
ここで、複合語変換部36は、ステップS54で生成された文字列gdに対して同義語変換対象判定処理を行う(ステップS55)。
ここで、図9を参照して同義語変換対象判定処理について説明する。図9は複合語変換部36による同義語変換対象判定処理の一例を示すフローチャートである。
【0065】
まず、複合語変換部36は、文字列gdがP[j]と前方一致し、かつ完全一致はしないか否かを判定する(ステップS550)。なお、完全一致とは、文字列gdがP[j]の最初から最後まででのすべての文字と一致することを意味する。
【0066】
文字列gdがP[j]と前方一致し、かつ完全一致はしない場合(ステップS550がYes)、複合語変換部36はkにk+1を代入し(ステップS551)、文字列gdにgd+L[k]を代入する(ステップS552)。その後、複合語変換部36はステップS550に戻り、処理を繰り返す。
【0067】
文字列gdがP[j]と前方一致しない、もしくは前方一致かつ完全一致する場合(ステップS551がNo)、複合語変換部36は同義語変換対象判定処理を終了する。
【0068】
ここで、gd=「社内インターネット」は、変換対象リストP[j]のうちP[2]=社内「インターネット」と完全一致するため、ステップS550においてNoと判定される。
したがって、複合語変換部36はそのまま何も処理せずに同義語変換対象判定処理を終了する。
【0069】
図8のステップS56の説明に戻る。複合語変換部36はステップS55で生成した文字列gdが、P[j]と完全一致するか否かを判定する(ステップS56)。
【0070】
文字列gbがP[j]と完全一致する場合(ステップS56がYes)、複合語変換部36は、P[j]に対応する同義語381をnewlistの末尾に追加する(ステップS57)。
【0071】
その後、複合語変換部36は、複合語変換処理フラグを複合語変換が行われたことを示す「true」に変換する(ステップS58)。複合語変換部36は、形態素結果リストLの変数iにkを代入し(ステップS59)、複合語変換処理を終了する。
【0072】
gd=「社内インターネット」は、変換対象リストP[j]のうちP[2]=社内「インターネット」と完全一致するため、ステップS56の判定はYesとなる。したがって、ステップS57においてP[2]に対応する同義語=「イントラネット」が、newlistの末尾の要素に「イントラネット」が追加される。すなわち、P[2]に対応する同義語=「イントラネット」がgd=「社内インターネット」同期変換後の語となる。
【0073】
文字列gbがP[j]と完全一致しない場合(ステップS56がNo)、複合語変換部36は、jにj+1を代入する(ステップS60)。その後、複合語変換部36は、ステップS51の判定に戻る(ステップS61)。
【0074】
ステップS51において、jが同義語辞書記憶部38に格納された同義語辞書の行数Mより大きい場合、複合語変換部36はステップS61に進み複合語変換処理を終了する。
【0075】
図7の説明に戻る。ステップS36の複合語変換処理が終了すると、複合語変換部33は複合語変換処理フラグがtrueか否かを確認する(ステップS37)。
【0076】
複合語変換処理フラグがtrueである場合(ステップS37がYes)、同義語変換部33はi=i+1とする(ステップS39)。その後、同義語変換部33はステップS33の判定に戻る(ステップS40)。
【0077】
複合語変換処理フラグがfalseである場合(ステップS37がNo)、同義語変換部33はnewlistiの末尾にsw1を追加し(ステップS38)、iをi+1とし(ステップS39)、ステップS33の判定に戻る(ステップS40)。
【0078】
sw1=L[4]である場合、複合語変換処理フラグはtrueであるため、ステップS37では、Yesと判定される。したがって、iをi+1とし(ステップS39)、ステップS33の判定に戻り(ステップS40)、他のiについても同様な処理を行う。
【0079】
ステップS33の判定においてiがN−1より大きい場合、同義語変換部33はステップS33〜ステップS40のループを終了し、ステップS41に進む。すなわち、同義語変換部33の単語変換部37は単語変換処理を行う(ステップS41)。単語変換処理が終了すると、本実施形態の同義語変換処理は終了する。
【0080】
ステップS40の処理の終了後には、newlist=「私、は、職場、で、イントラネット、 を、用いて、いる」が生成されている。
【0081】
なお、ここでは、変換対象が2形態素の場合の処理を一例として説明したが、本実施形態の同義語変換処理によると、3以上の形態素の場合でも同様に同義語に変換できる。例えば、ステップS2の形態素解析の結果、「社」「内」「インターネット」と解析された場合でも、社内インターネットはイントラネットに変換できる。なお、この場合ステップS550の判定において、Yesと判定される。
【0082】
次に、newlist=「私、は、職場、で、イントラネット、 を、用いて、いる」を用いた場合の、ステップS41における単語変換処理について図10を参照して説明する。なお、ここではxという変数を用いて説明する。
【0083】
まず、単語変換部37が単語変換処理後の語が格納されるリストであるnewlist2を作成する(ステップS70)。なお、配列newlistには、単語変換処理フラグ(flag2)が含まれているとする。
【0084】
また、単語変換部37はxを初期化する(ステップS71)。すなわち、単語変換部37はxに0を代入する。
【0085】
xが(newlistの配列数−1)以下である場合(ステップS72)、単語変換部37はステップS72からステップS85までの処理のループを行う。
【0086】
具体的には単語変換部37は、単語変換処理フラグの初期値をfalseにする(ステップS73)。すなわち、単語変換部37は、flag2=falseとする。
【0087】
また、単語変換部37は、sw2=newlist[x]とする(ステップS74)。なお、sw2はnewlist2の要素の候補である。例えばx=2の場合、sw2=newlist[2]、すなわちsw2=職場となる。また、単語変換部37はjを初期化する(ステップS75)。
続いて、単語変換部37はステップS76の判定を行う。jが(M−1)以下である場合、単語変換部37はステップS77の処理に進む。
【0088】
すなわち、jが(M−1)以下である場合、単語変換部37は、sw2がP[j]と完全一致するか否かを判定する(ステップS77)。sw2がP[j]と完全一致する場合(ステップS77がYes)、単語変換部37は、newlist2の末尾にP[j]に対応する同義語を追加する(ステップS80)。その後、単語変換部37は単語変換処理フラグをtrueに変更し(ステップS81)、ステップS82へ進む。
【0089】
sw2がP[j]と完全一致しない場合(ステップS77がNo)、単語変換部37は、jに1を追加する(ステップS78)。ここで、単語変換部37はステップS76に戻る(ステップS79)。
【0090】
sw2=newlist[2]=職場は、P[0]と完全一致するので、単語変換部37はnewlist2の最後の配列にP[0]に対応する同義語=「オフィス」が追加される(ステップS80)。なお、x=0とx=1の場合におけるS72〜S85のループ処理により、newlist2=「私、は」となっている。したがって、sw2=newlist[2]=職場の場合、newlist2=「私、は、 オフィス」となる。
【0091】
また、単語変換部37はステップS76においてjが(M−1)よりも大きい場合、ステップS82へ進む。
【0092】
単語変換部37は、単語変換処理フラグがtrueであるか否かを判定する(ステップS82)。単語変換処理フラグがfalseである場合(ステップS82がNo)、単語変換部37はnewlist2の末尾にsw2を追加する(ステップS83)。その後、単語変換部37はxに1を追加する(ステップS84)。
【0093】
また、単語変換処理フラグがtrueである場合(ステップS82がYes)、単語変換部37はxにx+1を代入する(ステップS84)。その後、単語変換部37は、ステップS72の判定に戻る(ステップS85)。
【0094】
ステップS72において、xが(newlistの配列数−1)より大きい場合は、単語変換部37は処理を終了する。すなわち、図5のステップS3における同義語変換処理が終了する。このとき、newlist2=「私、は、オフィス、で、イントラネット、 を、用いて、いる」となっている。
【0095】
図5のステップS4に戻る。ステップS4では、文字列生成部34がS3で作成されたnewlist2の要素を、格納順に結合する(ステップS4)。ここでは、ステップS85までの処理で得られたnewlist2私、は、オフィス、で、イントラネット、 を、用いて、いる」を結合し、「私はオフィスでイントラネットを用いている。」という文字列が生成される。
【0096】
そして、出力部35が、文字列生成部34によって生成された文字列を出力する(ステップS5)。これにより、本実施形態の自然言語処理装置30の処理が終了する。
【0097】
上述したように、第1の実施形態の自然言語処理装置30によると、複数の形態素単位で同義語変換を行なうことが可能となる。すなわち、同義語変換の精度を向上することが可能となる。なお、本実施形態の自然言語処理装置30においては、形態素解析の方法は限定されない。例えば日本語文法の形態素であっても、学校文法の形態素であっても本実施形態の自然言語処理装置30は処理を行うことが可能である。
【0098】
(第2の実施形態)
以下、図11乃至図15を参照し、本発明の第2の実施形態について説明する。なお、第1の実施形態と同一の構成には同一の符号を付与し、説明は省略する。
【0099】
図11は、本実施形態の自然言語処理装置50の機能構成を示すブロック図である。図11に示すように、自然言語処理装置50の機能構成は、自然言語処理装置30の機能構成に付属語判定部39と、付属語辞書記憶部40とが含まれる。
【0100】
付属語判定部39は、付属語辞書記憶部40に記憶された付属語辞書を用いて、対象の語が付属語かどうかを判定する付属語判定処理を行う。付属語は、単独で文節を構成できない語であり、具体的には助詞と助動詞である。付属語辞書は例えばH個の要素からなるリストS[r](0≦r≦H−1)で表現される。
【0101】
図12に付属語辞書の一例である付属語辞書リスト401を示す。図12に示すように、付属語辞書リスト401は、S[0]=での、S[1]=の、・・・、である。
【0102】
付属語判定処理は、同義語変換処理の中で行われる。図13に、本実施形態における同義語変換処理の一例を示す。なお、ステップS50〜ステップS61は、第1の実施形態における同義語変換処理と同一であるため説明は省略する。すなわち、ここではステップS62とステップS63について説明する。
【0103】
なお、本実施形態では「私は社内でのインターネットを用いる。」という文が入力された場合について具体的に説明する。形態素リストL[i]は、L[0]=私、L[1]=は、L[2]=社内、L[3]=で、L[4]=の、L[5]=インターネット、L[6]=を、L[7]=用いる、である。
【0104】
ここではi=2の場合の処理について具体的に説明し、他の処理については同様であるため省略する。
【0105】
図13に示すように、本実施形態ではステップS53においてk=i+1とした後、付属語判定部39は付属語判定処理を行う(ステップS62)。
【0106】
図13のステップS62の処理を、図14を用いて説明する。まず、付属語判定部39はybにL[k]を代入する(ステップS100)。すなわち、yb=L[3]=「で」である。
【0107】
ここで、付属語判定部39はrを初期化する(ステップS101)。rの初期化とはrに0を代入することである。続いて付属語判定部39はステップS102の判定を行う。
【0108】
ステップS102においてr≦(H−1)であれば、付属語判定部39はステップS102〜ステップS107の処理をループする。
【0109】
すなわち、r≦(H−1)であれば付属語判定部39はybがS[r]と前方一致か否かを判定する(ステップS103)。ybがS[r]と前方一致である場合(ステップS103がYes)、付属語判定部39はkに1を追加する(ステップS104)。そして、付属語判定部39は、yb=yb+L[k]とする(ステップS105)。続いて付属語判定部39はrに1を追加し、(ステップS106)ステップS107に進む。ステップS107に処理が進むと、付属語判定部39はステップS102に戻り、処理を繰り返す。
【0110】
ybがS[r]と前方一致でない場合(ステップS103がNo)、付属語判定部39はybがS[r]と完全一致するか否かを判定する(ステップS108)。ybがS[r]と完全一致する場合(ステップS108がYes)、付属語判定部39はkに1を追加し(ステップS109)、付属語判定処理を終了する。
【0111】
ybがS[r]と完全一致しない場合(ステップS108がNo)、付属語判定部39はrに1を追加する(ステップS106)。その後、
ステップS102においてr>(H−1)であれば、付属語判定部39はステップS107以降の処理に進む。すなわち、付属語判定処理を終了する。これにより、図12のステップS62についての説明が終了する。
【0112】
続いて、図13のステップS63における同義語変換対象判定処理について図15を参照して説明する。
【0113】
図15に示すように、本実施形態の同義語変換対象判定処理は第1の実施形態における同義語変換対象判定処理のステップS551とステップS552の間に、ステップS553の付属語判定処理を追加したものである。ステップS553における付属語判定処理は図12のステップS62における付属語判定処理と同一であるため、説明は省略する。
【0114】
例えば、ステップS103において、yb=L[3]=「で」はS[0]=「での」と前方一致するため、付属語判定部39はyb=L[3]+L[3+1]=「で」+「の」とし、ステップS103の判定に戻る。この場合、ybはS[0]と完全一致するため、付属語判定部39はステップS109に進み、kにk+1を代入する。すなわち、k=5とする。その後、付属語判定部39は付属語判定処理を終了する。なお、このときステップS54において作成される文字列gdは、L[2]+L[5]=「社内インターネット」となる。
【0115】
引き続き、第1の実施形態と同じ処理が行われ、図5のステップS5において「私はイントラネットを用いる」が生成される。
【0116】
上述のように、第2の実施形態によると、変換対象の中に助詞がある場合、すなわち社内でのインターネットと社内インターネット、のように助詞が含まれていても互いに意味が同じ場合、同義語変換を実現することができる。
【0117】
以上、本発明のいくつかの実施形態を説明したが、これら実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、同義語変換部33は、同義語辞書テーブル380に適用例外条件という項目を追加、入力された文に含まれる形態素が変換対象語382と一致した場合であっても適用例条件に格納された条件を満たす場合は同義語変換対象からはずす処理を行う例外判定部を備えても良い。
【0118】
適用例外383には例えば接辞が格納される。接辞とは、単語の前後などにくっついて単語の意味を変化させたり補ったりするものであり、例えば接頭語、接尾語、接周語などがある。また、日本語には無いが、単語を2つに分割し中に割り込む接中語もある。適用例外に接頭語が格納されている場合、例外判定部は対応する変換対象語の一つ前の形態素を確認し、この形態素が適用例外と一致する場合は同義語変換処理を行わない。これにより、不適切な同義語変換を防止することができる。
【0119】
また、本実施形態では図5のステップS3における同義語変換処理の後、文字列を生成し、出力する処理を行っているが、文書クラスタリングを行なっても良い。本実施形態による同義語変換処理を行ってから文書クラスタリングを行なうことにより、同義語を考慮した適切な分類を実現することができる。
【符号の説明】
【0120】
10…コンピュータ、20…外部記憶装置、21…プログラム、30…同義語変換装置、31…入力部、32…形態素解析部、33…同義語変換部、34…文字列生成部、35…出力部、36…複合語変換部、37…単語変換部、38…同義語辞書記憶部
【特許請求の範囲】
【請求項1】
同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、
文書データを形態素解析する形態素解析部と、
前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する同義語変換部と、
を備える自然言語処理装置。
【請求項2】
付属語の形態素を含む複数の形態素を同義語変換対象語と判定する付属語判定部を備える第1の請求項に記載の自然言語処理装置。
【請求項3】
前記同義語辞書は例外条件を記憶し、
前記同義語変換対象語の接辞が例外条件と一致するか否かを判定する例外判定部を備える請求項1に記載の自然言語処理装置。
【請求項4】
同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する同義語変換部と、を備える自然言語処理装置が行う自然言語処理方法であって、
文書データを形態素解析するステップと、
前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定するステップと、
一致すると判定された前記同義語変換対象語を対応する前記同義語に変換するステップと、
を備える自然言語処理方法。
【請求項5】
同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する同義語変換部とを備える自然言語処理装置のコンピュータによって実行される自然言語処理プログラムであって、
前記コンピュータに、
前記文書データを形態素解析する機能と、
前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する機能と、
を実行させる自然言語処理プログラム。
【請求項1】
同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、
文書データを形態素解析する形態素解析部と、
前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する同義語変換部と、
を備える自然言語処理装置。
【請求項2】
付属語の形態素を含む複数の形態素を同義語変換対象語と判定する付属語判定部を備える第1の請求項に記載の自然言語処理装置。
【請求項3】
前記同義語辞書は例外条件を記憶し、
前記同義語変換対象語の接辞が例外条件と一致するか否かを判定する例外判定部を備える請求項1に記載の自然言語処理装置。
【請求項4】
同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する同義語変換部と、を備える自然言語処理装置が行う自然言語処理方法であって、
文書データを形態素解析するステップと、
前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定するステップと、
一致すると判定された前記同義語変換対象語を対応する前記同義語に変換するステップと、
を備える自然言語処理方法。
【請求項5】
同義語と同義語変換対象語とが対応付けられた同義語辞書を記憶する記憶部と、文書データを形態素解析する形態素解析部と、前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する同義語変換部とを備える自然言語処理装置のコンピュータによって実行される自然言語処理プログラムであって、
前記コンピュータに、
前記文書データを形態素解析する機能と、
前記形態素解析の結果と前記同義語辞書とを用いて、前記形態素解析の結果に含まれる形態素のうち、連続する複数の形態素が前記同義語変換対象語と一致するかを判定し、一致すると判定した前記同義語変換対象語を対応する前記同義語に変換する機能と、
を実行させる自然言語処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2013−114633(P2013−114633A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−263119(P2011−263119)
【出願日】平成23年11月30日(2011.11.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願日】平成23年11月30日(2011.11.30)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]