IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 富士通株式会社の特許一覧

特許7243079処理方法、処理プログラムおよび情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-13
(45)【発行日】2023-03-22
(54)【発明の名称】処理方法、処理プログラムおよび情報処理装置
(51)【国際特許分類】
   G06F 40/45 20200101AFI20230314BHJP
   G06F 40/247 20200101ALI20230314BHJP
【FI】
G06F40/45
G06F40/247
【請求項の数】 8
(21)【出願番号】P 2018154218
(22)【出願日】2018-08-20
(65)【公開番号】P2020030481
(43)【公開日】2020-02-27
【審査請求日】2021-05-13
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】山越 幸太
(72)【発明者】
【氏名】工藤 淳真
(72)【発明者】
【氏名】宮城 俊秀
(72)【発明者】
【氏名】廣田 佳祐
(72)【発明者】
【氏名】塙 大紀
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2007-233446(JP,A)
【文献】下畑光夫 他3名,パラレルコーパスからの機械翻訳向け同義表現抽出,情報処理学会論文誌,日本,社団法人情報処理学会,2003年11月15日,第44巻 第11号,2854-2863頁,ISSN 0387-5806
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
M個の単語を含む第1の単語列と、N個の単語を含み、前記第1の単語列と同じ意味を表す第2の単語列とを取得し、
複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、
前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成し、
前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定し、
特定した前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、前記ペアの第1の情報において単語が一致する前記位置以外の第1の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、前記ペアの第2の情報において単語が一致する前記位置以外の位置であって前記第1の位置と同じ位置である第2の位置に対応付けられた単語に対応付けて記憶部に記憶する、
処理をコンピュータが実行することを特徴とする処理方法。
【請求項2】
前記複数の位置は順序付けられており、前記第1の単語列に含まれる単語のうち、第1の単語に対応付けられる位置の順序は、前記第1の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若く、前記第2の単語列に含まれる単語のうち、第2の単語に対応付けられる位置の順序は、前記第2の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若い、
ことを特徴とする請求項1に記載の処理方法。
【請求項3】
前記特定する処理は、
前記複数のペアのうち、単語が一致する位置の数が最大の第1の情報および第2の情報のペアを特定する、ことを特徴とする請求項1または2に記載の処理方法。
【請求項4】
前記記憶する処理は、
前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第1の単語と第2の単語とを抽出し、
前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第3の単語と第4の単語とを抽出し、
前記第1の単語を前記第3の単語に対応付けて前記記憶部に記憶し、前記第2の単語を前記第4の単語に対応付けて前記記憶部に記憶する、ことを特徴とする請求項1~3のいずれか一つに記載の処理方法。
【請求項5】
前記第1の単語列は、第1の文章に含まれるいずれかの単語列であり、
前記第2の単語列は、前記第1の文章と同じ意味の文章として指定された第2の文章に含まれる単語列のうち、前記第1の単語列との編集距離が最小の単語列である、ことを特徴とする請求項1~4のいずれか一つに記載の処理方法。
【請求項6】
前記記憶部に対応付けて記憶された単語の組み合わせを出力し、
出力した前記単語の組み合わせが、表記ゆれであることの選択を受け付けた場合、前記単語の組み合わせを辞書に登録する、ことを特徴とする請求項1~5のいずれか一つに記載の処理方法。
【請求項7】
M個の単語を含む第1の単語列と、N個の単語を含み、前記第1の単語列と同じ意味を表す第2の単語列とを取得し、
複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、
前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成し、
前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定し、
特定した前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、前記ペアの第1の情報において単語が一致する前記位置以外の第1の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、前記ペアの第2の情報において単語が一致する前記位置以外の位置であって前記第1の位置と同じ位置である第2の位置に対応付けられた単語に対応付けて記憶部に記憶する、
処理をコンピュータに実行させることを特徴とする処理プログラム。
【請求項8】
M個の単語を含む第1の単語列と、N個の単語を含み、前記第1の単語列と同じ意味を表す第2の単語列とを取得する取得部と、
複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成する生成部と、
前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定する特定部と、
前記特定部によって特定された前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、前記ペアの第1の情報において単語が一致する前記位置以外の第1の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、前記ペアの第2の情報において単語が一致する前記位置以外の位置であって前記第1の位置と同じ位置である第2の位置に対応付けられた単語に対応付けて記憶部に記憶する登録部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理方法、処理プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
インシデント管理システムにおいて、類似するインシデントの件数を把握することは重要である。例えば、問い合わせの件数が多いインシデントの内容について、FAQ(Frequently Asked Question)を作成することで、問い合わせ件数の削減につなげることができる。また、問い合わせ件数の多い機能を修正することで、問い合わせ件数の削減につなげることができる。
【0003】
先行技術としては、類似の電子カルテの記述に出現する診療に関する単語を抽出し、抽出された各単語のうち、各電子カルテに共通して出現する共通語以外でかつ異なる電子カルテから抽出された単語の組を対象に、各単語の概念が同一であるかを判定し、同義語と判定された単語の組を出力する技術がある。また、文書データから抽出された用語のペアの類似度を算出し、類似度に基づいて、用語のペアが表記ゆれ候補であるかを判定する技術がある。また、用語集合の中から表記揺れ候補と考えられる用語を予め選別しておき、表記揺れ候補となった用語に対してコストを調整した編集距離を測ることにより、表記揺れの候補となった用語の中から表記揺れと考えられる用語を収集する技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2009-128968号公報
【文献】特開2012-256197号公報
【文献】特開2005-352888号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、表記が異なるが同じ意味を表すような、異なる単語間の対応付けを行うことが難しい。例えば、意味が同じ異なる単語間の対応関係を把握できなければ、表記ゆれを統一して文章同士を比較することができず、文章の類似判別を行うことが難しくなる。
【0006】
一つの側面では、本発明は、異なる単語間の対応付けの精度を高めることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得し、複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成し、前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定し、特定した前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語に対応付けて記憶部に記憶する、処理方法が提供される。
【発明の効果】
【0008】
本発明の一側面によれば、異なる単語間の対応付けの精度を高めることができる。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる処理方法の一実施例を示す説明図である。
図2図2は、システム200のシステム構成例を示す説明図である。
図3図3は、情報処理装置101のハードウェア構成例を示すブロック図である。
図4図4は、インシデントDB220の記憶内容の一例を示す説明図である。
図5図5は、表記ゆれ辞書230の記憶内容の一例を示す説明図である。
図6図6は、情報処理装置101の機能的構成例を示すブロック図である。
図7図7は、文章の分割例を示す説明図である。
図8図8は、第1の情報の具体例を示す説明図である。
図9図9は、第2の情報の具体例を示す説明図である。
図10A図10Aは、一致スコアの算出例を示す説明図(その1)である。
図10B図10Bは、一致スコアの算出例を示す説明図(その2)である。
図10C図10Cは、一致スコアの算出例を示す説明図(その3)である。
図11図11は、不一致部分の抽出例を示す説明図である。
図12図12は、目的語と述語との関係にある単語の組み合わせの抽出例を示す説明図である。
図13図13は、左右両側の単語が一致する単語の組み合わせの抽出例を示す説明図である。
図14図14は、表記ゆれ候補テーブル1400の記憶内容の一例を示す説明図である。
図15図15は、単文の具体例を示す説明図である。
図16図16は、表記ゆれ確認画面1600の画面例を示す説明図である。
図17図17は、情報処理装置101の表記ゆれ候補抽出処理手順の一例を示すフローチャート(その1)である。
図18図18は、情報処理装置101の表記ゆれ候補抽出処理手順の一例を示すフローチャート(その2)である。
図19図19は、情報処理装置101の表記ゆれ登録処理手順の一例を示すフローチャートである。
図20図20は、スコア算出処理の具体的処理手順の一例を示すフローチャートである。
図21図21は、スコア算出処理の動作イメージを示す説明図である。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる処理方法、処理プログラムおよび情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる処理方法の一実施例を示す説明図である。図1において、情報処理装置101は、異なる単語間の対応付けを行うコンピュータである。ここで、異なる単語の組み合わせは、例えば、表記が異なるが同じ意味を表す単語の組み合わせ、すなわち、表記ゆれの候補となる単語の組み合わせである。
【0012】
文章の類似判別を行うにあたり、表記ゆれがあると、同じ意味の文章であるか否かを判断することが難しくなる。例えば、「365日連続で稼働しても問題ありません」と「長期間起動させても問題は発生しません」とは、同じような意味の文章であるが、ほとんどの単語が一致しない。
【0013】
この場合、このままの状態ではコンピュータが同じ意味の文章であると判断することは難しいが、「365日」と「長期間」などの表記ゆれを統一した文章同士を比較することができれば、文章の類似判別の精度を向上させることができる。すなわち、文章の類似判別を行うにあたり、表記ゆれとなる単語の組み合わせを辞書等に登録しておくことは重要である。
【0014】
例えば、インシデント管理システムにおいて、インシデントに関する文章の表記ゆれを統一することができれば、クラスタリングによって類似するインシデントをまとめることができる。そして、問い合わせの件数が多いインシデントを把握できれば、FAQを作成したり、機能を修正したりして、問い合わせ件数の削減につなげることができる。
【0015】
なお、文章中の表記ゆれを判断するにあたり、既存の類義語辞書を利用することが考えられる。しかしながら、既存の類義語辞書では、システム固有の言葉には対応することができない。また、人手により、システムにおいて特徴的な表記ゆれを探して、類義語辞書に登録することも考えられるが、手間や時間がかかる。
【0016】
そこで、本実施の形態では、表記が異なるが同じ意味を表すような、異なる単語間の対応付けの精度を高める処理方法について説明する。以下、情報処理装置101の処理例について説明する。
【0017】
(1)情報処理装置101は、M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得する。M,Nは、自然数である。ここで、第1の単語列および第2の単語列は、それぞれ文を構成する一連の単語である。例えば、第1の単語列と第2の単語列とは、意味が同じ異なる文の組み合わせである。
【0018】
図1の例では、第1の単語列として、4個の単語を含む「ABCD」が取得され、第2の単語列として、4個の単語を含む「BFCE」が取得された場合を想定する。ただし、A,B,C,D,E,Fは、それぞれ単語を示す。第1の単語列「ABCD」と第2の単語列「BFCE」は、意味が同じ異なる文の組み合わせとする。
【0019】
(2)情報処理装置101は、複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成する。また、情報処理装置101は、複数の位置を含む位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成する。
【0020】
ここで、複数の位置は順序付けられており、第1の単語列に含まれる単語のうち、第1の単語に対応付けられる位置の順序は、第1の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若いものとする。また、第2の単語列に含まれる単語のうち、第2の単語に対応付けられる位置の順序は、第2の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若いものとする。
【0021】
また、位置群に含まれる位置の数は、任意に設定可能であり、例えば、(M+N)に設定される。図1の例では、第1の単語列に含まれる単語の数は「M=4」である。また、第2の単語列に含まれる単語の数は「N=4」である。このため、位置群に含まれる位置の数は、「8」となる。
【0022】
この場合、情報処理装置101は、位置群1~8から選ばれた4個(M=4)の位置の組み合わせごとに、各組み合わせに含まれる4個の位置それぞれを、第1の単語列「ABCD」に含まれる4個の単語のいずれに対応付けるかを示す第1の情報を生成する。
【0023】
一例として、位置群1~8から選ばれた4個(M=4)の位置の組み合わせを「1,2,3,4」とする。この場合、情報処理装置101は、位置1を単語Aに、位置2を単語Bに、位置3を単語Cに、位置4を単語Dに対応付けたことを示す第1の情報111を生成する。また、位置群1~8から選ばれた4個(M=4)の位置の組み合わせを「1,2,4,5」とする。この場合、情報処理装置101は、位置1を単語Aに、位置2を単語Bに、位置4を単語Cに、位置5を単語Dに対応付けたことを示す第1の情報112を生成する。
【0024】
すなわち、第1の情報を生成することは、文(第1の単語列)中の単語の並び(順序)は維持しつつ、単語の出現位置を変化させた単語列を生成することに相当する。
【0025】
また、情報処理装置101は、位置群1~8から選ばれた4個(N=4)の位置の組み合わせごとに、各組み合わせに含まれる4個の位置それぞれを、第2の単語列「BFCE」に含まれる4個の単語のいずれに対応付けるかを示す第2の情報を生成する。
【0026】
一例として、位置群1~8から選ばれた4個(N=4)の位置の組み合わせを「1,2,3,4」とする。この場合、情報処理装置101は、位置1を単語Bに、位置2を単語Fに、位置3を単語Cに、位置4を単語Eに対応付けることを示す第2の情報113を生成する。また、位置群1~8から選ばれた4個(N=4)の位置の組み合わせを「2,3,4,5」とする。この場合、情報処理装置101は、位置2を単語Bに、位置3を単語Fに、位置4を単語Cに、位置5を単語Eに対応付けることを示す第2の情報114を生成する。
【0027】
すなわち、第2の情報を生成することは、文(第2の単語列)中の単語の並び(順序)は維持しつつ、単語の出現位置を変化させた単語列を生成することに相当する。
【0028】
(3)情報処理装置101は、第1の情報および第2の情報の複数のペアのそれぞれについて、位置ごとに、第1の単語列に含まれる、該位置に対応付けられた単語と、第2の単語列に含まれる、該位置に対応付けられた単語とを比較する。そして、情報処理装置101は、第1の情報および第2の情報の複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定する。ただし、同じ位置に比較する相手が存在しない場合を許容する。この場合、単語が一致しないとする。
【0029】
ここで、単語が一致する位置の数に関する基準は、任意に設定可能である。具体的には、例えば、情報処理装置101は、単語が一致する位置の数が最大の第1の情報および第2の情報のペアを特定してもよい。また、情報処理装置101は、単語が一致する位置の数が閾値以上の第1の情報および第2の情報のペアを特定してもよい。
【0030】
図1の例では、単語が一致する位置の数が最大の第1の情報および第2の情報のペアを特定する場合を想定する。ここで、第1の情報111および第2の情報113のペアについて、位置ごとに単語を比較すると、単語が一致する位置の数は「1」となる。第1の情報111および第2の情報114のペアについて、位置ごとに単語を比較すると、単語が一致する位置の数は「1」となる。第1の情報112および第2の情報113のペアについて、位置ごとに単語を比較すると、単語が一致する位置の数は「0」となる。第1の情報112および第2の情報114のペアについて、位置ごとに単語を比較すると、単語が一致する位置の数は「2」となる。この場合、情報処理装置101は、単語が一致する位置の数が最大の第1の情報112および第2の情報114のペアを特定する。
【0031】
(4)情報処理装置101は、特定したペアに基づき、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語を、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語に対応付けて記憶部110に記憶する。
【0032】
ここで、記憶部110に記憶される単語の組み合わせは、例えば、表記ゆれの候補となる単語の組み合わせである。具体的には、例えば、情報処理装置101は、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の第1の位置に対応付けられた単語を、第2の単語列に含まれるN個の単語のうち、第1の位置に対応付けられた単語に対応付けて記憶部110に記憶してもよい。
【0033】
図1の例では、情報処理装置101は、第1の情報112および第2の情報114のペアに基づき、第1の単語列「ABCD」のうち、単語が一致する位置以外の位置に対応付けられた単語を、第2の単語列「BFCE」のうち、単語が一致する位置以外の位置に対応付けられた単語に対応付けて記憶部110に記憶する。
【0034】
例えば、情報処理装置101は、第1の単語列「ABCD」のうち、単語が一致しない位置5に対応付けられた単語「D」を、第2の単語列「BFCE」のうち、単語が一致しない位置5に対応付けられた単語「E」に対応付けて記憶部110に記憶する。すなわち、情報処理装置101は、単語「D」と単語「E」との組み合わせを、表記ゆれの候補として登録する。
【0035】
このように、情報処理装置101によれば、表記が異なるが同じ意味を表すような、異なる単語間の対応付けの精度を高めることができる。具体的には、例えば、情報処理装置101は、各文(第1の単語列、第2の単語列)中の単語の順序を変更しないで、単語の位置を変化させることで、文間で一致する部分を適切に除いて、不一致部分を抽出することができる。このため、表記ゆれ候補となる単語の組み合わせを精度よく抽出することができる。
【0036】
図1の例では、単語「D」と単語「E」との組み合わせは、意味が同じ異なる文間で、より多くの一致する部分を除いて得られた、不一致の単語の組み合わせである。したがって、単語「D」と単語「E」との組み合わせは、同じ意味のものである可能性が高く、表記ゆれ候補として精度の高いものといえる。
【0037】
なお、文中の単語の順序を入れ替えてしまうと、文の意味が変わってしまうおそれがある。一方、本処理方法では、各単語列(第1の単語列、第2の単語列)における単語の並び(単語の順序)は維持しつつ、単語の位置を変化させるため、各単語列の意味が変わってしまうことはない。
【0038】
(システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含むシステム200のシステム構成例について説明する。システム200は、表記ゆれ辞書の作成を支援するコンピュータシステムである。システム200は、例えば、インシデントを管理するインシデント管理システムに適用される。
【0039】
図2は、システム200のシステム構成例を示す説明図である。図2において、システム200は、情報処理装置101と、クライアント装置201と、を含む。システム200において、情報処理装置101およびクライアント装置201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0040】
ここで、情報処理装置101は、インシデントDB(Database)220および表記ゆれ辞書230を有する。情報処理装置101は、例えば、インシデント管理システムのサーバーである。インシデントDB220および表記ゆれ辞書230の記憶内容については、図4および図5を用いて後述する。
【0041】
クライアント装置201は、システム200のユーザが使用するコンピュータである。システム200のユーザは、例えば、インシデント管理システムの管理者である。クライアント装置201は、例えば、PC(Personal Computer)、タブレット型PCなどである。
【0042】
なお、上述した説明では、情報処理装置101とクライアント装置201とが別体に設けられることにしたが、これに限らない。例えば、情報処理装置101は、クライアント装置201により実現されることにしてもよい。
【0043】
(情報処理装置101のハードウェア構成例)
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0044】
ここで、CPU301は、情報処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0045】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0046】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示したクライアント装置201)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0047】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0048】
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、情報処理装置101は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有していなくてもよい。また、図2に示したクライアント装置201についても、情報処理装置101と同様のハードウェア構成により実現することができる。ただし、クライアント装置201は、上述した構成部のほかに、入力装置、ディスプレイを有する。
【0049】
(インシデントDB220の記憶内容)
つぎに、情報処理装置101が有するインシデントDB220の記憶内容について説明する。インシデントDB220は、例えば、図3に示した情報処理装置101のメモリ302、ディスク304等の記憶装置により実現される。
【0050】
図4は、インシデントDB220の記憶内容の一例を示す説明図である。図4において、インシデントDB220は、インシデントID、Question、AnswerおよびRelationのフィールドを有し、各フィールドに情報を設定することで、インシデントデータ(例えば、インシデントデータ400-1~400-5)をレコードとして記憶する。
【0051】
ここで、インシデントIDは、インシデントを一意に識別する識別子である。インシデントは、例えば、コンピュータやネットワークの不具合を引き起こす事象や、セキュリティを脅かす事象などである。Questionは、インシデントに関する質問(問い合わせ)を示す。Answerは、質問に対する回答を示す。
【0052】
QuestionおよびAnswerは、例えば、ユーザとオペレータとの間でメールやチャットでやり取りされた質問や回答である。Relationは、関連するインシデントデータを紐付ける情報である。関連するインシデントデータとは、インシデントの内容が同じあるいは類似するインシデントデータである。Relationによれば、同じ意味の文章(質問、回答)を特定することができる。
【0053】
例えば、オペレータが、インシデントAの質問に対して回答するにあたり、過去のインシデントBの情報を引用することがある。この場合、インシデントAのインシデントデータと、インシデントBのインシデントデータとを紐付ける情報(Relation)が登録される。また、同じ時間帯に問い合わせがあったものは、同じ事象についての問い合わせである可能性がある。このため、同じ時間帯に問い合わせがあったインシデントデータ同士を紐付けることにしてもよい。
【0054】
例えば、インシデントデータ400-5は、インシデントID「INC_0005」のインシデントに関する質問「長期にわたる連続稼働を・・・」および回答「稼働テストで、365日連続で・・・」を示す。また、インシデントデータ400-5は、インシデントID「INC_0001」のインシデントデータ400-1と関連することを示す。
【0055】
なお、インシデントDB220に記憶されるインシデントデータは、例えば、インシデント管理システムにおいて管理される情報である。
【0056】
(表記ゆれ辞書230の記憶内容)
つぎに、情報処理装置101が有する表記ゆれ辞書230の記憶内容について説明する。表記ゆれ辞書230は、例えば、図3に示した情報処理装置101のメモリ302、ディスク304等の記憶装置により実現される。
【0057】
図5は、表記ゆれ辞書230の記憶内容の一例を示す説明図である。図5において、表記ゆれ辞書230は、単語テーブル510と、類義語クラステーブル520とを含む。単語テーブル510は、単語ID、単語およびクラスIDのフィールドを有し、各フィールドに情報を設定することで、単語情報(例えば、単語情報510-1~510-4)をレコードとして記憶する。
【0058】
ここで、単語IDは、単語を一意に識別する識別子である。単語は、単語IDに対応する単語である。クラスIDは、単語IDに対応する単語が属する類義語クラスを一意に識別する識別子である。類義語クラスは、語形は異なっているが、意味が似通っている単語、すなわち、表記ゆれの単語が属するクラスである。
【0059】
類義語クラステーブル520は、クラスIDを記憶する。例えば、類義語クラステーブル520内のいずれかのクラスIDを指定することで、単語テーブル510から、指定されたクラスIDに対応する単語の組み合わせを、表記ゆれの単語の組み合わせとして抽出することができる。
【0060】
(情報処理装置101の機能的構成例)
図6は、情報処理装置101の機能的構成例を示すブロック図である。図6において、情報処理装置101は、取得部601と、分割部602と、第1の特定部603と、第2の特定部604と、抽出部605と、登録部606と、出力部607と、記憶部610と、を含む。具体的には、例えば、取得部601~出力部607は、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。また、記憶部610は、例えば、メモリ302、ディスク304などの記憶装置により実現される。例えば、記憶部610は、後述の図14に示すような表記ゆれ候補テーブル1400を記憶する。
【0061】
取得部601は、処理対象の複数の文章を取得する。ここで、処理対象の複数の文章は、表記ゆれ候補となる単語の組み合わせを抽出する抽出元の文章である。処理対象の複数の文章は、例えば、文章同士は一致していないものの、同じ意味を表す複数の文章である。
【0062】
具体的には、例えば、取得部601は、図4に示したインシデントDB220から、関連するインシデントデータ、すなわち、Relationにより紐付けされたインシデントデータを取得する。そして、取得部601は、取得したインシデントデータそれぞれのQuestionおよびAnswerを、一つの文章としてそれぞれ取得する。
【0063】
一例として、インシデントデータ400-5のRelation「INC_0001」により紐付けされたインシデントデータ400-1,400-5が取得されたとする。この場合、取得部601は、インシデントデータ400-1のQuestionおよびAnswerを含む文章「数週間停止せずに連続で稼働させても問題ないでしょうか?稼働テストで、365日連続で稼働しても問題ないことを確認しています。」を取得する。また、取得部601は、インシデントデータ400-5のQuestionおよびAnswerを含む文章「長期にわたる連続稼働を計画していますが、問題ないでしょうか?稼働テストで、365日連続で稼働しても問題ないことを確認しています。それ以下であれば、問題はありません。」を取得する。
【0064】
これにより、意味が同じと推定される複数の文章を、処理対象の文章として取得することができる。なお、取得部601は、例えば、不図示の入力装置を用いたユーザの操作入力により、または、外部のコンピュータ(例えば、図2に示したクライアント装置201)から受信することにより、処理対象の複数の文章を取得することにしてもよい。
【0065】
分割部602は、取得された複数の文章それぞれを単文に分割する。ここで、単文は、主語・述語の関係が1回だけで成り立っている文である。具体的には、例えば、分割部602は、取得された文章に自然言語処理(形態素解析、係り受け解析など)を施して、係り受け関係にある形態素をまとめたものを単文として分割する。この際、分割部602は、複数にかかる形態素は、一つの単文として分割することにしてもよい。
【0066】
ここで、図7を用いて、文章の分割例について説明する。ここでは、文章として、質問(Question)を例に挙げて説明する。
【0067】
図7は、文章の分割例を示す説明図である。図7において、処理対象の文章710,720,730が示されている。この場合、分割部602は、各文章710,720,730を単文に分割する。ここでは、文章710が、単文711と、単文712と、単文713と、単文714とに分割されている。また、文章720が、単文721と、単文722と、単文723とに分割されている。また、文章730が、単文731と、単文732と、単文733とに分割されている。
【0068】
図6の説明に戻り、第1の特定部603は、複数の文章それぞれから分割された単文のうち、意味が類似する単文の組み合わせを特定する。ただし、第1の特定部603は、異なる文章から分割された単文の組み合わせを特定する。すなわち、第1の特定部603は、同じ文章に含まれる単文同士の組み合わせではなく、異なる文章にそれぞれ含まれる単文の組み合わせを特定する。
【0069】
以下の説明では、処理対象の複数の文章から選ばれた2つの文章を「文章A」と「文章B」と表記する場合がある。また、文章Aに含まれる単文を「{A1,A2,…}」と表記し、文章Bに含まれる単文を「{B1,B2,…}」と表記する場合がある。また、文章Aに含まれる任意の単文を「単文Ai」と表記し(i=1,2,…)、文章Bに含まれる任意の単文を「単文Bj」と表記する場合がある(j=1,2,…)。
【0070】
具体的には、例えば、第1の特定部603は、構文解析などを用いて、文章Aから分割された各単文Aiと、文章Bから分割された各単文Bjとをそれぞれ単語に分割する。これにより、各単文Ai,Bjは、単語を順に並べた単語列となる。
【0071】
なお、どのような単位を単語として分割するかは任意に設定可能である。例えば、単語は、形態素単位でもよい。また、意味的に連続する語を一単語として分割してもよい。例えば、「し」、「まし」、「た」という意味的に連続する語を、「しました」という一単語として分割することにしてもよい。
【0072】
以下の説明では、単文Aiの単語列を{ai,1,ai,2,…,ai,M}と表記し、単文Bjの単語列を{bj,1,bj,2,…,bj,N}と表記する場合がある(M,Nは、自然数)。
【0073】
つぎに、第1の特定部603は、単語が1つ以上一致する全ての単文Aiと単文Bjとの組み合わせについて、単語レベルの編集距離lAi,Bjを算出する。ただし、句読点は、無視することにしてもよい。ここで、編集距離lAi,Bjは、単文Aiと単文Bjとがどの程度異なっているかを示す距離である。
【0074】
編集距離lAi,Bjは、例えば、1単語の挿入・削除・置換によって、一方の単文を他方の単文に変形するのに必要な手順の最小回数として定義される。例えば、単文Aiを「○×△□」とし、単文Bjを「●×△■」とする。ただし、○,×,△,□,●,■は、それぞれ単語を示す記号とする。この場合、単文Bjの●を○に置換し、単文Bjの■を□に置換すると、単文Aiと一致するため、編集距離lAi,Bjは「2」となる。
【0075】
具体的には、例えば、図7に示した文章710を文章Aとし、文章720を文章Bとする。この場合、文章710に含まれる単文711は、文章720に含まれる単文721と単語が1つ以上一致する。より詳細に説明すると、「/」で単語を区切ると、単文711は、「VM/の/起動/リクエスト/を/送信/し/まし/た/。」の単語列となる。単文721は、「サーバー/の/起動/API/を/実行/し/た/ところ/、」の単語列となる。単文711は、例えば、「起動」という単語が、単文721と一致する。このため、第1の特定部603は、単文711と単文721とについて編集距離を算出する。
【0076】
なお、編集距離lAi,Bjを算出するにあたり、単文Ai,Bj間で連続する語が一致する場合には、編集距離lAi,Bjが短くなるように重み付けすることにしてもよい。例えば、図7に示した文章720を文章Aとし、文章730を文章Bとする。この場合、文章720に含まれる単文721は、文章730に含まれる単文732と、3つの連続する語「起動/API/を」が一致する。この場合、第1の特定部603は、例えば、3つの連続する語「起動/API/を」を、1つの単語として扱って、単文721,732間の編集距離を算出することにしてもよい。これにより、連続する語の一致を重要視して、単文Ai,Bj間の編集距離lAi,Bjを算出することができる。
【0077】
そして、第1の特定部603は、算出した算出結果に基づいて、各単文Aiについて、編集距離lAi,Bjが最小となる単文Bjを特定する。これにより、意味が類似する単文Aiと単文Bjとの組み合わせを特定することができる。
【0078】
なお、第1の特定部603は、各単文Aiについて、編集距離lAi,Bjが最小となる単文Bjを特定するにあたり、編集距離lAi,Bjが少なくとも閾値lTH以下となる単文Bjを特定することにしてもよい。閾値lTHは、任意に設定可能である。これにより、意味が類似していない単文の組み合わせが特定されるのを防ぐことができる。
【0079】
また、単文Aiについて、編集距離lAi,Bjが最小となる単文Bが複数存在する場合がある。この場合、どの組み合わせが確からしいかを区別できない。このため、第1の特定部603は、単文Aiについて、編集距離lAi,Bjが最小となるいずれの単文Bとの組み合わせも採用しないことにしてもよい。
【0080】
図7に示した例では、文章710を文章Aとし、文章720を文章Bとすると、意味が類似する単文の組み合わせとして、単文711と単文721との組み合わせ、単文713と単文722との組み合わせ、および、単文714と単文723との組み合わせが特定される。単文712については、一致する単語がないため(句読点を除く)、単文の組み合わせは特定されない。
【0081】
また、文章720を文章Aとし、文章730を文章Bとすると、意味が類似する単文の組み合わせとして、単文721と単文732との組み合わせ、および、単文723と単文731との組み合わせが特定される。また、文章710を文章Aとし、文章730を文章Bとすると、意味が類似する単文の組み合わせとして、単文713と単文733との組み合わせが特定される。
【0082】
以下の説明では、単文Aiについて、編集距離lAi,Bjが最小となる単文Bjを「単文BAi_min」と表記する場合がある。また、単文Aiと単文BAi_minとの組み合わせを「単文ペアPi」と表記する場合がある。また、単文ペアPiを「Pi={Ai,BAi_min}={{aj,1,aj,2,…,aj,N},{bi_min,1,bi_min,2,…,bi_min,N}}」と表記する場合がある。
【0083】
第2の特定部604は、単文ペアPiについて、単文Ai,BAi_min間で、単語が一致する位置の数が基準を満たす単語の組み合わせを特定する。ここで、単語の組み合わせとは、単文Ai,BAi_min間の位置ごとの単語の組み合わせである。ただし、各単文Ai,BAi_min中の単語の順序は変更しないものとする。
【0084】
具体的には、例えば、第2の特定部604は、各単文Ai,BAi_minに空文字を挿入することで、各単文Ai,BAi_min中の単語の順序を変更しないで、単語の位置を変化させて、単文Ai,BAi_min間の位置ごとに、どれだけ単語が一致するかを調べる。空文字は、1つの単語に相当する。
【0085】
ここで、第2の特定部604は、単語列取得部611と、生成部612と、算出部613と、を含む。
【0086】
単語列取得部611は、M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得する。ここで、M個の単語を含む第1の単語列は、例えば、単文ペアPiのうちの単文Aiの単語列である。また、N個の単語を含む第2の単語列は、例えば、単文ペアPiのうちの単文BAi_minの単語列である。
【0087】
なお、単語列取得部611は、例えば、不図示の入力装置を用いたユーザの操作入力により、または、外部のコンピュータ(例えば、図2に示したクライアント装置201)から受信することにより、M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得することにしてもよい。
【0088】
生成部612は、複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、取得された第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成する。また、生成部612は、複数の位置を含む位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、取得された第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成する。
【0089】
ただし、複数の位置は順序付けられており、第1の単語列に含まれる単語のうち、第1の単語に対応付けられる位置の順序は、第1の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若いものとする。また、第2の単語列に含まれる単語のうち、第2の単語に対応付けられる位置の順序は、第2の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若いものとする。
【0090】
位置群に含まれる位置の数は、任意に設定可能であり、例えば、(M+N)に設定される。一例として、第1の単語列に含まれる単語の数を「M=3」とし、第2の単語列に含まれる単語の数を「N=4」とすると、位置群に含まれる位置の数は「7」となる。
【0091】
この場合、生成部612は、位置群1~7から選ばれた3個(M=3)の位置の組み合わせごとに、各組み合わせに含まれる3個の位置それぞれを、第1の単語列に含まれる3個の単語のいずれに対応付けるかを示す第1の情報を生成する。
【0092】
より詳細に説明すると、例えば、第1の単語列を単文Aiの単語列{ai,1,ai,2,ai,3}とし、位置群1~7から選ばれた3個(M=3)の位置の組み合わせを{1,3,5}とする。この場合、生成部612は、位置1を単語ai,1に、位置3を単語ai,2に、位置5を単語ai,3に対応付けたことを示す第1の情報を生成する。
【0093】
ここで、第1の情報の具体例について説明する。
【0094】
図8は、第1の情報の具体例を示す説明図である。図8において、第1の情報800は、位置群1~7から選ばれた3個(M=3)の位置1,3,5それぞれを、単文Aiの単語列{ai,1,ai,2,ai,3}に含まれる3個の単語のいずれに対応付けるかを示す情報である。
【0095】
第1の情報800を、空文字を用いた単語列によって表現すると、下記(i)のようになる。ただし、eは、空文字を示す。括弧内の数字は、位置を示す。
【0096】
{ai,1(1),e(2),ai,2(3),e(4),ai,3(5)}・・・(i)
【0097】
すなわち、第1の情報を生成することは、単文Aiに空文字「e」を挿入することで、単文Ai中の単語の順序を変更しないで、単語の位置を変化させた単語列を生成することに相当する。なお、位置群1~7から選ばれる3個(M=3)の位置の組み合わせは、35パターン存在する。この場合、第1の情報は、35個生成される。
【0098】
また、生成部612は、位置群1~7から選ばれた4個(N=4)の位置の組み合わせごとに、各組み合わせに含まれる4個の位置それぞれを、第2の単語列に含まれる4個の単語のいずれに対応付けるかを示す第2の情報を生成する。
【0099】
より詳細に説明すると、例えば、第2の単語列を単文BAi_minの単語列{bi_min,1,bi_min,2,bi_min,3,bi_min,4}とし、位置群1~7から選ばれた4個(N=4)の位置の組み合わせを{1,3,5,7}とする。この場合、生成部612は、位置1を単語bi_min,1に、位置3を単語bi_min,2に、位置5を単語bi_min,3に、位置7を単語bi_min,4に対応付けることを示す第2の情報を生成する。
【0100】
ここで、第2の情報の具体例について説明する。
【0101】
図9は、第2の情報の具体例を示す説明図である。図9において、第2の情報900は、位置群1~7から選ばれた4個(N=4)の位置1,3,5,7それぞれを、単文BAi_minの単語列{bi_min,1,bi_min,2,bi_min,3,bi_min,4}に含まれる4個の単語のいずれに対応付けるかを示す情報である。
【0102】
第2の情報900を、空文字を用いた単語列によって表現すると、下記(ii)のようになる。
【0103】
{bi_min,1(1),e(2),bi_min,2(3),e(4),bi_min,3(5),e(6),bi_min,4(7)} ・・・(ii)
【0104】
すなわち、第2の情報を生成することは、単文BAi_minに空文字「e」を挿入することで、単文BAi_min中の単語の順序を変更しないで、単語の位置を変化させた単語列を生成することに相当する。なお、位置群1~7から選ばれる4個(N=4)の位置の組み合わせは、35パターン存在する。この場合、第2の情報は、35個生成される。
【0105】
算出部613は、生成された第1の情報および第2の情報の複数のペアのそれぞれについて、位置ごとに、第1の単語列に含まれる、該位置に対応付けられた単語と、第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、単語が一致する位置の数を算出する。
【0106】
具体的には、例えば、算出部613は、第1の情報800および第2の情報900のペアについて、位置ごとに、単文Aiの単語列に含まれる、該位置に対応付けられた単語と、単文BAi_minの単語列に含まれる、該位置に対応付けられた単語とを比較して、単語が一致する位置の数を算出する。換言すれば、算出部613は、上記(i)の単語列と、上記(ii)の単語列とを、位置ごとに比較して、単語が一致する位置の数を算出する。
【0107】
ここで、第1の情報および第2の情報のペアについて、単語が一致する位置の数の算出例について説明する。以下の説明では、単語が一致する位置の数を「一致スコア」と表記する場合がある。
【0108】
図10A図10Bおよび図10Cは、一致スコアの算出例を示す説明図である。図10Aにおいて、第1の単語列1001および第2の単語列1002は、ペアとなる第1の情報および第2の情報をそれぞれ単語列で表したものである。ただし、括弧内の数字は、単語の位置を示す。また、点線枠は、空文字を示す。算出部613は、第1の単語列1001と第2の単語列1002とについて、位置ごとに、第1の単語列1001に含まれる、該位置に対応付けられた単語と、第2の単語列1002に含まれる、該位置に対応付けられた単語とを比較する。この場合、一致スコアは「2」となる。
【0109】
図10Bにおいて、第1の単語列1003および第2の単語列1004は、ペアとなる第1の情報および第2の情報をそれぞれ単語列で表したものである。算出部613は、第1の単語列1003と第2の単語列1004とについて、位置ごとに、第1の単語列1003に含まれる、該位置に対応付けられた単語と、第2の単語列1004に含まれる、該位置に対応付けられた単語とを比較する。この場合、一致スコアは「3」となる。
【0110】
図10Cにおいて、第1の単語列1005および第2の単語列1006は、ペアとなる第1の情報および第2の情報をそれぞれ単語列で表したものである。算出部613は、第1の単語列1005と第2の単語列1006とについて、位置ごとに、第1の単語列1005に含まれる、該位置に対応付けられた単語と、第2の単語列1006に含まれる、該位置に対応付けられた単語とを比較する。この場合、一致スコアは「3」となる。
【0111】
図6の説明に戻り、第2の特定部604は、第1の情報および第2の情報の複数のペアのそれぞれについて算出された一致スコアに基づいて、第1の情報および第2の情報の複数のペアより、一致スコアが基準を満たす第1の情報および第2の情報のペアを特定する。ここで、一致スコアに関する基準は、任意に設定可能である。
【0112】
具体的には、例えば、第2の特定部604は、一致スコアが最大の第1の情報および第2の情報のペアを、一致スコアが基準を満たす第1の情報および第2の情報のペアとして特定する。これにより、単文ペアPiについて、単文Ai,BAi_min間で、一致スコアが最大となる単語の組み合わせを特定することができる。
【0113】
また、第2の特定部604は、一致スコアが閾値STH以上となる第1の情報および第2の情報のペアを、一致スコアが基準を満たす第1の情報および第2の情報のペアとして特定することにしてもよい。閾値STHは、任意に設定可能である。これにより、単文ペアPiについて、単文Ai,BAi_min間で、一致スコアが閾値STH以上となる単語の組み合わせを特定することができる。
【0114】
また、第2の特定部604は、一致スコアが最大で、かつ、閾値STH以上となる第1の情報および第2の情報のペアを、一致スコアが基準を満たす第1の情報および第2の情報のペアとして特定することにしてもよい。これにより、単文ペアPiについて、単文Ai,BAi_min間で、一致スコアが最大かつ閾値STH以上となる単語の組み合わせを特定することができる。
【0115】
抽出部605は、特定された第1の情報および第2の情報のペアに基づき、不一致部分を抽出する。ここで、不一致部分とは、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語と、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語との組み合わせである。不一致部分は、表記ゆれの候補となる単語の組み合わせに相当する。
【0116】
具体的には、例えば、抽出部605は、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の第1の位置に対応付けられた単語と、第2の単語列に含まれるN個の単語のうち、第1の位置に対応付けられた単語との組み合わせを、不一致部分(不一致の単語ペア)として抽出する。
【0117】
ただし、不一致部分は、一単語と一単語との組み合わせであってもよく、一単語と複数の単語との組み合わせであってもよく、複数の単語と複数の単語との組み合わせであってもよい。ここで、不一致部分の抽出例について説明する。
【0118】
図11は、不一致部分の抽出例を示す説明図である。図11において、単文ペア1110,1120,1130は、一致スコアが基準を満たす第1の情報および第2の情報のペアのそれぞれを単語列で表したものである。
【0119】
単文ペア1110は、第1の単語列1111と第2の単語列1112との組み合わせである。単文ペア1110について、位置ごとに単語を比較すると、第1の単語列1111の「の」、「起動」、「を」および「し」が、第2の単語列1112の「の」、「起動」、「を」および「し」とそれぞれ一致する。
【0120】
この場合、例えば、抽出部605は、第1の単語列1111の位置1に対応付けられた「VM」と、第2の単語列1112の位置1に対応付けられた「サーバー」との組み合わせを、不一致部分として抽出する。また、抽出部605は、第1の単語列1111の位置4に対応付けられた「リクエスト」と、第2の単語列1112の位置4に対応付けられた「API」との組み合わせを、不一致部分として抽出する。また、抽出部605は、第1の単語列1111の位置6に対応付けられた「送信」と、第2の単語列1112の位置6に対応付けられた「実行」との組み合わせを、不一致部分として抽出する。
【0121】
また、抽出部605は、平仮名だけの単語と単語との組み合わせは抽出しないことにしてもよい。例えば、抽出部605は、第1の単語列1111の位置8に対応付けられた「まし」と、第2の単語列1112の位置8に対応付けられた「た」との組み合わせは、平仮名だけのため抽出しない。また、抽出部605は、第1の単語列1111の位置9に対応付けられた「た」と、第2の単語列1112の位置9に対応付けられた「ところ」との組み合わせは、平仮名だけのため抽出しない。これにより、表記ゆれの候補である可能性が低い単語の組み合わせが抽出されるのを防ぐことができる。
【0122】
つぎに、単文ペア1120は、第1の単語列1121と第2の単語列1122との組み合わせである。単文ペア1120について、位置ごとに単語を比較すると、第1の単語列1121の「起動」が、第2の単語列1122の「起動」と一致する。
【0123】
この場合、例えば、抽出部605は、単語が一致する位置の次の位置以降に対応付けられた部分の組み合わせを、不一致部分として抽出することにしてもよい。ここでは、第1の単語列1121のうち単語が一致する位置3の次の位置以降に対応付けられた「できません」と、第2の単語列1122のうち単語が一致する位置3の次の位置以降に対応付けられた「に失敗しました」との組み合わせが抽出される。
【0124】
これにより、表記ゆれの候補である単語の組み合わせとして、単語が連続して一つのまとまった意味を表す部分(句)の組み合わせを抽出することができる。
【0125】
つぎに、単文ペア1130は、第1の単語列1131と第2の単語列1132との組み合わせである。単文ペア1130について、位置ごとに単語を比較すると、第1の単語列1131の「エラー」および「が」が、第2の単語列1132の「エラー」および「が」とそれぞれ一致する。
【0126】
この場合、例えば、抽出部605は、単語が一致する位置より前の位置以前に対応付けられた部分の組み合わせを、不一致部分として抽出することにしてもよい。さらに、抽出部605は、単語が一致する位置の次の位置以降に対応付けられた部分の組み合わせを、不一致部分として抽出することにしてもよい。
【0127】
ここでは、第1の単語列1131のうち単語が一致する位置3,4より前の位置以前に対応付けられた「500」と、第2の単語列1132のうち単語が一致する位置3,4より前の位置以前に対応付けられた「インターナルサーバー」との組み合わせが抽出される。さらに、第1の単語列1131のうち単語が一致する位置3,4の次の位置以降に対応付けられた「返却され」と、第2の単語列1132のうち単語が一致する位置3,4の次の位置以降に対応付けられた「出て」との組み合わせが抽出される。
【0128】
図6の説明に戻り、抽出部605は、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第1の単語と第2の単語とを抽出することにしてもよい。なお、各単語の品詞は、例えば、単語と品詞とを対応付けて表す単語辞書から特定することができる。
【0129】
また、抽出部605は、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第3の単語と第4の単語とを抽出することにしてもよい。この際、抽出部605は、第3の単語として第1の単語と位置が同じ単語を抽出し、第4の単語として第2の単語と位置が同じ単語を抽出することにしてもよい。
【0130】
そして、抽出部605は、第1の単語と第3の単語との組み合わせを、不一致部分(不一致の単語ペア)として抽出することにしてもよい。また、抽出部605は、第2の単語と第4の単語との組み合わせを、不一致部分(不一致の単語ペア)として抽出することにしてもよい。
【0131】
ここで、目的語と述語との関係にある単語の組み合わせの抽出例について説明する。
【0132】
図12は、目的語と述語との関係にある単語の組み合わせの抽出例を示す説明図である。図12において、単文ペア1210は、一致スコアが基準を満たす第1の情報および第2の情報のペアのそれぞれを単語列で表したものである。単文ペア1210は、第1の単語列1211と第2の単語列1212との組み合わせである。
【0133】
単文ペア1210について、位置ごとに単語を比較すると、第1の単語列1211の位置5,7,9に対応付けられた「起動」、「を」、「する」が、第2の単語列1212の位置5,7,9に対応付けられた「起動」、「を」、「する」とそれぞれ一致する。
【0134】
この場合、例えば、抽出部605は、第1の単語列1211のうち、単語が一致する位置以外の位置6,8にそれぞれ対応付けられ、目的語と述語との関係にある「リクエスト」と「送信」の組み合わせを、不一致部分として抽出する。また、抽出部605は、第2の単語列1212のうち、単語が一致する位置以外の位置6,8にそれぞれ対応付けられ、目的語と述語との関係にある「API」と「実行」の組み合わせを、不一致部分として抽出する。そして、抽出部605は、「リクエスト」と「API」との組み合わせを、不一致部分として抽出する。また、抽出部605は、「送信」と「実行」との組み合わせを、不一致部分として抽出する。
【0135】
これにより、目的語同士の単語の組み合わせや、述語同士の単語の組み合わせを抽出することができ、表記ゆれ候補を精度よく抽出することが可能となる。
【0136】
なお、ここでは目的語と述語との関係にある単語の組み合わせを例に挙げて説明したが、これに限らない。例えば、抽出部605は、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置にそれぞれ対応付けられ、主語と述語との関係にある第1の単語と第2の単語とを抽出することにしてもよい。また、抽出部605は、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置にそれぞれ対応付けられ、主語と述語との関係にある第3の単語と第4の単語とを抽出することにしてもよい。
【0137】
図6の説明に戻り、抽出部605は、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置に対応付けられた第1の単語を抽出する。また、抽出部605は、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置に対応付けられ、かつ、左右両側の単語が第1の単語と一致する第2の単語を抽出することにしてもよい。そして、抽出部605は、第1の単語と第2の単語との組み合わせを、不一致部分として抽出することにしてもよい。なお、抽出部605は、第2の単語を抽出するにあたり、第1の単語と位置が同じ単語を抽出することにしてもよい。
【0138】
ここで、左右両側の単語が一致する単語の組み合わせの抽出例について説明する。
【0139】
図13は、左右両側の単語が一致する単語の組み合わせの抽出例を示す説明図である。図13において、単文ペア1310は、一致スコアが基準を満たす第1の情報および第2の情報のペアのそれぞれを単語列で表したものである。単文ペア1310は、第1の単語列1311と第2の単語列1312との組み合わせである。
【0140】
単文ペア1310について、位置ごとに単語を比較すると、第1の単語列1311の位置5,7,9に対応付けられた「起動」、「を」、「する」が、第2の単語列1312の位置5,7,9に対応付けられた「起動」、「を」、「する」とそれぞれ一致する。
【0141】
この場合、例えば、抽出部605は、単語が一致する位置以外の位置6に対応付けられ、かつ、左右両側の単語が一致する「リクエスト」と「API」との組み合わせを、不一致部分として抽出する。また、抽出部605は、単語が一致する位置以外の位置8に対応付けられ、かつ、左右両側の単語が一致する「送信」と「実行」との組み合わせを、不一致部分として抽出する。
【0142】
これにより、不一致部分の単語の組み合わせとして、左右両側の単語が一致する単語の組み合わせを抽出することができ、同じ意味の可能性が高い単語の組み合わせを抽出することができる。
【0143】
図6の説明に戻り、登録部606は、抽出された不一致部分を記憶部610に記憶する。具体的には、例えば、登録部606は、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語と、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語とを、図14に示すような表記ゆれ候補テーブル1400に記憶する。
【0144】
ここで、表記ゆれ候補テーブル1400の記憶内容について説明する。
【0145】
図14は、表記ゆれ候補テーブル1400の記憶内容の一例を示す説明図である。図14において、表記ゆれ候補テーブル1400は、表記ゆれ候補となる単語の組み合わせ、および、登録日時を示す候補情報(例えば、候補情報1400-1~1400-7)を記憶する。
【0146】
ここで、表記ゆれ候補となる単語は、1または複数の単語から形成される。登録日時は、表記ゆれ候補テーブル1400に候補情報が登録された日時を示す。例えば、候補情報1400-1は、表記ゆれ候補となる「VM」と「サーバー」との組み合わせ、および、登録日時「2018/07/30 15:00」を示す。また、候補情報1400-4は、表記ゆれ候補となる「できません」と「に失敗しました」との組み合わせ、および、登録日時「2018/07/30 15:00」を示す。
【0147】
出力部607は、記憶部610に対応付けて記憶された単語の組み合わせを出力する。具体的には、例えば、出力部607は、図14に示した表記ゆれ候補テーブル1400を参照して、表記ゆれ候補となる単語の組み合わせを、図2に示したクライアント装置201に表示することにしてもよい。
【0148】
より具体的には、例えば、出力部607は、後述の図16に示すような表記ゆれ確認画面1600を、クライアント装置201に表示することにしてもよい。表記ゆれ確認画面1600は、表記ゆれ候補となる単語の組み合わせを提示して、表記ゆれであるか否かの選択を受け付ける操作画面である。
【0149】
また、出力部607は、表記ゆれ候補テーブル1400を参照して、表記ゆれ候補となる単語の組み合わせごとの出現回数を算出することにしてもよい。そして、出力部607は、算出した出現回数が多い単語の組み合わせを優先的に出力することにしてもよい。具体的には、例えば、出力部607は、出現回数が多い単語の組み合わせから順に、クライアント装置201に表示することにしてもよい。また、例えば、出力部607は、出現回数が所定数以上の単語の組み合わせを、クライアント装置201に表示することにしてもよい。
【0150】
図14に示した候補情報1400-1~1400-7を例に挙げると、「VM」と「サーバー」との組み合わせの出現回数が「2」であり、他の組み合わせよりも多い。この場合、出力部607は、例えば、「VM」と「サーバー」との組み合わせを、クライアント装置201に表示する。これにより、出現回数が多く、より確度の高い表記ゆれ候補を優先して提示することができる。
【0151】
なお、出力部607は、出現頻度が高い単語を含む単語の組み合わせについては、出現回数にかかわらず、優先的に出力することにしてもよい。出現頻度が高い単語は、例えば、表記ゆれ候補テーブル1400に出現する回数が相対的に多い単語である。これにより、頻繁に使用される単語を含む表記ゆれ候補を提示することができる。
【0152】
また、出力部607は、所定期間(例えば、直近6ヶ月)における、表記ゆれ候補となる単語の組み合わせごとの出現回数を算出することにしてもよい。具体的には、例えば、出力部607は、表記ゆれ候補テーブル1400内の登録日時に基づいて、所定期間における、表記ゆれ候補となる単語の組み合わせごとの出現回数を算出する。
【0153】
これにより、時間の経過とともに使用される単語が変化するようなシステムに適用した場合であっても、使用されなくなった単語が提示されてしまうのを防いで、表記ゆれ候補の情報鮮度を確保することができる。
【0154】
また、登録部606は、出力された単語の組み合わせが、表記ゆれであることの選択を受け付けた場合、出力された単語の組み合わせを表記ゆれ辞書に登録する。具体的には、例えば、登録部606は、クライアント装置201に表記ゆれ候補の単語の組み合わせが表示された結果、クライアント装置201から表記ゆれであることの選択結果を受け付けた場合、表記ゆれ候補の単語の組み合わせを、図5に示した表記ゆれ辞書230に登録する。
【0155】
より詳細に説明すると、例えば、登録部606は、各単語に単語IDを付与するとともに、単語の組み合わせにクラスIDを付与する。そして、登録部606は、各単語を単語IDおよびクラスIDと対応付けて、単語テーブル510に登録する。また、登録部606は、クラスIDを類義語クラステーブル520に登録する。
【0156】
これにより、例えば、類義語クラステーブル520に新たに登録したクラスIDを指定することで、単語テーブル510から、指定されたクラスIDに対応する単語を、表記ゆれの単語として抽出することができる。なお、登録部606は、クライアント装置201から表記ゆれではないことの選択結果を受け付けた場合、表記ゆれ候補の単語の組み合わせを登録しない。
【0157】
(BAi_min=BAj_minとなる場合)
ここで、単文Aiに対する単文BAi_minと、単文Ajに対する単文BAj_minとが一致する場合がある。この場合、単文Aiと単文Ajとが意味的に類似しているということになるが、同一文章中(文章A)に同じ意味の単文が複数含まれることは想定しにくい。そこで、第1の特定部603は、BAi_min=BAj_minとなる場合、編集距離lAi,B(Ai_min)と編集距離lAj,B(Aj_min)とを比較して、大きい方の単文ペアを除外することにしてもよい。なお、B()の()内の文字列は、下付き文字を示す。
【0158】
ここで、BAi_min=BAj_minとなる場合の、単文ペアの除外例について説明する。
【0159】
図15は、単文の具体例を示す説明図である。図15において、単文A1~A3は、文章1501(文章Aに相当)に含まれる単文である。単文B1,B2は、文章1502(文章Bに相当)に含まれる単文である。ここでは、単文A2に対する単文BA2_minを「単文B2」とし、単文A3に対する単文BA3_minを「単文B2」とする。すなわち、「BA2_min=BA3_min」となる。
【0160】
ここで、単文A2と単文B2とを一致させるには、11回の編集操作が必要である(を→は、長期・にわたって→(削除)、さ→テスト、せ→実施、て→済み、も→です、問題・あり・ませ・ん→(削除))。このため、編集距離lA2,B(A2_min)は、「lA2,B(A2_min)=11」となる。
【0161】
一方、単文A3と単文B2とを一致させるには、4回の編集操作が必要である(Xシステム・を→(削除)、長期→長期間、にわたって→(削除))。このため、編集距離lA3,B(A3_min)は、「lA3,B(A3_min)=4」となる。この場合、第1の特定部603は、編集距離lA2,B(A2_min)とlA3,B(A3_min)とを比較して、大きい方の単文ペア{A2,BA2_min}を除外する。
【0162】
これにより、単文A2,A3のうち、単文B2との類似度合いが低い単文A2の方を除外して、もっともらしい単文ペア{A3,BA3_min}を残すことができる。
【0163】
(表記ゆれ確認画面1600の画面例)
つぎに、クライアント装置201に表示される表記ゆれ確認画面1600の画面例について説明する。
【0164】
図16は、表記ゆれ確認画面1600の画面例を示す説明図である。図16において、表記ゆれ確認画面1600は、表記ゆれ候補である「API」と「リクエスト」との組み合わせが、同じ意味で使われる単語の組み合わせ、すなわち、表記ゆれであるか否かの選択を受け付ける操作画面である。
【0165】
表記ゆれ確認画面1600において、クライアント装置201の不図示の入力装置を用いたユーザの操作入力により、ボタン1601を選択すると、「API」と「リクエスト」との組み合わせが、表記ゆれであると選択することができる。この場合、「API」と「リクエスト」との組み合わせが表記ゆれであることの選択結果が、クライアント装置201から情報処理装置101に送信される。
【0166】
また、表記ゆれ確認画面1600において、ユーザの操作入力により、ボタン1602を選択すると、「API」と「リクエスト」との組み合わせが表記ゆれではないと選択することができる。この場合、「API」と「リクエスト」との組み合わせが表記ゆれではないことの選択結果が、クライアント装置201から情報処理装置101に送信される。
【0167】
(情報処理装置101の表記ゆれ候補抽出処理手順)
つぎに、情報処理装置101の表記ゆれ候補抽出処理手順について説明する。
【0168】
図17および図18は、情報処理装置101の表記ゆれ候補抽出処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、情報処理装置101は、インシデントDB220から、Relationにより紐付けされたインシデントデータを取得する(ステップS1701)。
【0169】
ここでは、Relationにより紐付けされたインシデントデータそれぞれの内容(Question、Answer)を「文章A」と「文章B」と表記する。
【0170】
つぎに、情報処理装置101は、係り受け解析などを用いて、文章A,Bそれぞれを単文に分割する(ステップS1702)。そして、情報処理装置101は、構文解析などを用いて、文章A,Bから分割した単文それぞれを単語に分割する(ステップS1703)。
【0171】
つぎに、情報処理装置101は、文章Aから分割された単文{A1,A2,…}のうち選択されていない未選択の単文Aiを選択する(ステップS1704)。そして、情報処理装置101は、文章Bから分割された単文{B1,B2,…}のうち、選択した単文Aiと単語が1つ以上一致する単文Bjを選択する(ステップS1705)。
【0172】
つぎに、情報処理装置101は、選択した単文Aiと単文Bjとの組み合わせについて、単語レベルの編集距離lAi,Bjを算出する(ステップS1706)。そして、情報処理装置101は、文章Bから分割された単文{B1,B2,…}のうち、単文Aiと単語が1つ以上一致する未選択の単文Bjがあるか否かを判断する(ステップS1707)。
【0173】
ここで、未選択の単文Bjがある場合(ステップS1707:Yes)、情報処理装置101は、ステップS1705に戻る。一方、未選択の単文Bjがない場合(ステップS1707:No)、情報処理装置101は、編集距離lAi,Bjが最小となる単文BAi_minを特定する(ステップS1708)。
【0174】
そして、情報処理装置101は、単文Aiと単文BAi_minとの組み合わせを、単文ペアPiとして単文ペア群Pに追加する(ステップS1709)。ただし、単文ペアPiは、「Pi={Ai,BAi_min}={{aj,1,aj,2,…,aj,N},{bi_min,1,bi_min,2,…,bi_min,N}}」である。
【0175】
つぎに、情報処理装置101は、文章Aから分割された単文{A1,A2,…}のうち選択されていない未選択の単文Aiがあるか否かを判断する(ステップS1710)。ここで、未選択の単文Aiがある場合(ステップS1710:Yes)、情報処理装置101は、ステップS1704に戻る。
【0176】
一方、未選択の単文Aiがない場合(ステップS1710:No)、情報処理装置101は、図18に示すステップS1801に移行する。なお、ステップS1709において、BAi_min=BAj_minとなる場合は、情報処理装置101は、編集距離lAi,B(Ai_min)と編集距離lAj,B(Aj_min)とを比較して、大きい方の単文ペアを単文ペア群Pから除外することにしてもよい。
【0177】
図18のフローチャートにおいて、まず、情報処理装置101は、単文ペア群Pから選択されていない未選択の単文ペアPiを選択する(ステップS1801)。ここでは、単文ペアPiのうち、単文Aiの単語列を「M個の単語を含む第1の単語列」とし、単文BAi_minの単語列を「N個の単語を含む第2の単語列」とする。
【0178】
つぎに、情報処理装置101は、複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成する(ステップS1802)。
【0179】
つぎに、情報処理装置101は、複数の位置を含む位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成する(ステップS1803)。
【0180】
そして、情報処理装置101は、生成した第1の情報および第2の情報の複数のペアのそれぞれについて、一致スコアを算出する(ステップS1804)。一致スコアは、単語が一致する位置の数を示す。すなわち、情報処理装置101は、第1の情報および第2の情報のペアについて、位置ごとに、第1の単語列に含まれる、該位置に対応付けられた単語と、第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、一致スコアを算出する。
【0181】
つぎに、情報処理装置101は、第1の情報および第2の情報の複数のペアより、算出した一致スコアが最大の第1の情報および第2の情報のペアを特定する(ステップS1805)。そして、情報処理装置101は、特定した第1の情報および第2の情報のペアに基づき、不一致部分を抽出する(ステップS1806)。
【0182】
ここで、一致スコアが最大の第1の情報および第2の情報のペアから特定される、単文ペアPiの位置ごとの単語の組み合わせを「{{xj,yl},{xk,ym},…;j<k,l<m,xj∈{ai,j,e},yl∈{bi_min,l,e}}」とする(ただし、eは空文字)。この場合、情報処理装置101は、例えば、{xj,yl;xj≠yl,xj≠e,yl≠e}の単語のペアを不一致部分として抽出する。一例として、単文Aiを{Ai:“起動”、“し”、“て”、“い”、“ない”、“サーバー”、“に”、“起動”、“API”、“を”、“実行”、“し”、“まし”、“た}とする。また、単文BAi_minを{“起動”、“リクエスト”、“を”、“VM”、“に”、“送信”、“し”、“まし”、“た”}とする。この場合、{“API”、“リクエスト”}の単語の組み合わせと、{“実行”、“送信”}の単語の組み合わせが、不一致部分として抽出される。
【0183】
つぎに、情報処理装置101は、抽出した不一致部分を、表記ゆれ候補テーブル1400に登録する(ステップS1807)。そして、情報処理装置101は、単文ペア群Pから選択されていない未選択の単文ペアPiがあるか否かを判断する(ステップS1808)。
【0184】
ここで、未選択の単文ペアPiがある場合(ステップS1808:Yes)、情報処理装置101は、ステップS1801に戻る。一方、未選択の単文ペアPiがない場合(ステップS1808:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
【0185】
これにより、表記ゆれ候補となる単語の組み合わせを抽出して、表記ゆれ候補テーブル1400に登録することができる。なお、第1の情報および第2の情報の各ペアについての一致スコアを算出するより具体的な処理手順例については、図20を用いて後述する。
【0186】
(情報処理装置101の表記ゆれ登録処理手順)
つぎに、情報処理装置101の表記ゆれ登録処理手順について説明する。
【0187】
図19は、情報処理装置101の表記ゆれ登録処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、情報処理装置101は、表記ゆれ候補テーブル1400から選択されていない、表記ゆれ候補の単語の組み合わせを選択する(ステップS1901)。
【0188】
つぎに、情報処理装置101は、クライアント装置201に、選択した表記ゆれ候補の単語の組み合わせを表示する(ステップS1902)。そして、情報処理装置101は、クライアント装置201から、出力した単語の組み合わせが表記ゆれであることの選択を受け付けたか否かを判断する(ステップS1903)。
【0189】
ここで、表記ゆれではないことの選択を受け付けた場合(ステップS1903:No)、情報処理装置101は、ステップS1905に移行する。一方、表記ゆれであることの選択を受け付けた場合(ステップS1903:Yes)、情報処理装置101は、表示した単語の組み合わせを、表記ゆれ辞書230に登録する(ステップS1904)。
【0190】
そして、情報処理装置101は、表記ゆれ候補テーブル1400から選択されていない未選択の単語の組み合わせがあるか否かを判断する(ステップS1905)。ここで、未選択の単語の組み合わせがある場合(ステップS1905:Yes)、情報処理装置101は、ステップS1901に戻る。一方、未選択の単語の組み合わせがない場合(ステップS1905:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
【0191】
これにより、クライアント装置201のユーザに表記ゆれ候補となる単語の組み合わせを提示し、ユーザによる表記ゆれであるか否かの選択に応じて、表記ゆれの単語の組み合わせを表記ゆれ辞書230に登録することができる。
【0192】
(スコア算出処理の具体的な処理手順)
ここで、スコア算出処理の具体的な処理手順について説明する。スコア算出処理は、第1の情報および第2の情報の各ペアについての一致スコアを算出する処理であり、例えば、図18に示したステップS1802~S1804の処理に対応する。
【0193】
図20は、スコア算出処理の具体的処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、情報処理装置101は、AとBとを取得する(ステップS2001)。ただし、Aは、「A=[a0,…,al]」の単語列である。Bは、「B=[b0,…,bm]」の単語列である。Aは、単文Aiに対応し、Bは、単文BAi_minに対応する。
【0194】
つぎに、情報処理装置101は、A∩Bの要素数が「0」であるか否かを判断する(ステップS2002)。ここで、A∩Bの要素数が「0」ではない場合(ステップS2002:No)、情報処理装置101は、A∩Bのaiの数分ステップS2003~S2008の処理を繰り返して、ステップS2010に移行する。
【0195】
情報処理装置101は、Ts←[]とし(ステップS2003)、B中のaiの出現位置をJに列挙する(ステップS2004)。ただし、Jを「J=[j0,…,jn]」とする。情報処理装置101は、Jに含まれるj分ステップS2005~S2007の処理を繰り返す。
【0196】
情報処理装置101は、A’←[a0,…,a(i-1)]とし、A”←[a(i+1),…,al]とし、B’←[b0,…,b(j-1)]とし、B”←[b(j+1),…,bm]とし、T←Tree()とし、T.value←[ai,bj]とし、T.left←search(A’,B’)とし、T.right←search(A”,B”)とし、Ts←Ts+[T]とする(ステップS2006)。
【0197】
これにより、search(A,B)が再帰的に呼び出される。search(A,B)は、単語の組み合わせを木構造として抽出する関数である(図20中、点線枠部分)。
【0198】
また、ステップS2002において、A∩Bの要素数が「0」の場合(ステップS2002:Yes)、情報処理装置101は、Ts←combination(A,B)とする(ステップS2009)。すなわち、情報処理装置101は、AとBとの単語の順序を変更せずにできる全ての組み合わせを求めて、木構造のvalueに保持する。
【0199】
そして、情報処理装置101は、Tsを返却する(ステップS2010)。つぎに、情報処理装置101は、Ts内の全ての木構造を辿ることで、単語の組み合わせ一覧を取得する(ステップS2011)。単語の組み合わせ一覧は、例えば、第1の情報および第2の情報の複数のペアに相当する。
【0200】
そして、情報処理装置101は、単語の組み合わせ一覧について一致スコアを算出して(ステップS2012)、本フローチャートによる一連の処理を終了する。これにより、第1の情報および第2の情報の各ペアについての一致スコアを算出することができる。
【0201】
ここで、図21を用いて、スコア算出処理の動作イメージについて説明する。
【0202】
図21は、スコア算出処理の動作イメージを示す説明図である。ここでは、図20に示したステップS2001において取得されるAを「文1=ABACBA」とし、Bを「文2=BBACD」とする。A,B,C,Dは、単語を示す。
【0203】
この場合、ステップS2002において、A∩Bの要素数が「0」ではないため、ステップS2003に移行する。ステップS2003において、A∩Bの要素aiのうち、文1の一番左の「A」に着目すると、Jは「J=[1,3,6]」となる(ステップS2004)。
【0204】
ステップS2005において、「J=1」に着目すると、ステップS2006において、A’は[e」となり、A”は[BACBA」となり、B’は[BB]となり、B”は[CD]となる。この場合、T.valueは[A,A]となる。
【0205】
また、T.leftはsearch(e,BB)となり、search(e,BB)が呼び出される。この場合、ステップS2002において、A∩Bの要素数が「0」となり、ステップS2009において、combination(e,BB)が計算される。この結果、単語の組み合わせ「[e,B]、[e,B]」が得られ、木構造のvalueに保持される。
【0206】
また、T.rightはsearch(BACBA,CD)となり、search(BACBA,CD)が読み出される。この場合、ステップS2002において、A∩Bの要素数が「0」ではないため、ステップS2003に移行する。ステップS2003において、A∩Bの要素aiのうち、文1の「BACBA」の左から3番目の「C」に着目すると、Jは「J=[1]」となる(ステップS2004)。
【0207】
ステップS2005において、「J=1」に着目すると、ステップS2006において、A’は[BA」となり、A”は[BA」となり、B’は[e]となり、B”は[D]となる。この場合、T.valueは[C,C]となる。
【0208】
また、T.leftはsearch(BA,e)となり、search(BA,e)が呼び出される。この場合、ステップS2002において、A∩Bの要素数が「0」となり、ステップS2009において、combination(BA,e)が計算される。この結果、単語の組み合わせ「[B,e]、[A,e]」が得られ、木構造のvalueに保持される。
【0209】
また、T.rightはsearch(BA,D)となり、search(BA,D)が読み出される。この場合、ステップS2002において、A∩Bの要素数が「0」となり、ステップS2009において、combination(BA,D)が計算される。この結果、単語の組み合わせ「[B,e]、[A,e]、[e,D]」、「[B,D]、[A,e]」および「[B,e]、[A,D]」が得られ、木構造のvalueに保持される。
【0210】
これにより、図21中、符号2100部分がTsとして返却される。符号2100部分は、符号2101と符号2102,2103,2104それぞれとの組み合わせを表す。例えば、符号2101と符号2102との組み合わせは、「[e,B]、[e,B]、[A,A]、[B,e]、[A,e]、[C,C]、[B,e]、[A,e][e,D]」という単語の組み合わせに対応する。この場合、一致スコアは「2」となる。
【0211】
以上説明したように、実施の形態にかかる情報処理装置101によれば、M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得し、複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、該位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成することができる。ここで、複数の位置は順序付けられており、第1の単語列に含まれる単語のうち、第1の単語に対応付けられる位置の順序は、第1の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若く、第2の単語列に含まれる単語のうち、第2の単語に対応付けられる位置の順序は、第2の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若いものとする。
【0212】
これにより、各単文(第1の単語列、第2の単語列)中の単語の順序を変更しないで、単語の位置を変化させた複数の単語列をそれぞれ生成することができる。
【0213】
また、情報処理装置101によれば、第1の情報および第2の情報の複数のペアのそれぞれについて、位置ごとに、第1の単語列に含まれる、該位置に対応付けられた単語と、第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、複数のペアより、単語が一致する位置の数(一致スコア)が基準を満たす第1の情報および第2の情報のペアを特定することができる。そして、情報処理装置101によれば、特定したペアに基づき、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語を、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置に対応付けられた単語に対応付けて、表記ゆれ候補テーブル1400に記憶することができる。
【0214】
これにより、単文間で一致する部分を適切に除いて不一致部分を抽出することができ、表記ゆれ候補となる単語の組み合わせを精度よく抽出することができる。このため、各システム(例えば、インシデント管理システム)に固有の言葉に対応可能となり、システムにおいて特徴的な表記ゆれの候補を効果的に抽出することができる。
【0215】
また、情報処理装置101によれば、第1の情報および第2の情報の複数のペアのうち、単語が一致する位置の数(一致スコア)が最大の第1の情報および第2の情報のペアを特定することができる。
【0216】
これにより、単文間で一致する部分をできるだけ多く除いて不一致部分を抽出することができ、表記ゆれ候補の抽出精度を向上させることができる。
【0217】
また、情報処理装置101によれば、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第1の単語と第2の単語とを抽出し、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第3の単語と第4の単語とを抽出することができる。そして、情報処理装置101によれば、第1の単語を第3の単語に対応付けて、第2の単語を第4の単語に対応付けて、表記ゆれ候補テーブル1400に記憶することができる。
【0218】
これにより、各単文において目的語と述語との関係にある不一致部分の単語の組み合わせを抽出して、目的語同士の単語と述語同士の単語を対応付けることができ、表記ゆれ候補の抽出精度を向上させることができる。
【0219】
また、情報処理装置101によれば、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の位置に対応付けられた第1の単語を、第2の単語列に含まれるN個の単語のうち、単語が一致する位置以外の位置に対応付けられ、かつ、左右両側の単語が第1の単語と一致する第2の単語に対応付けて、表記ゆれ候補テーブル1400に記憶することができる。
【0220】
これにより、不一致部分の単語の組み合わせとして、左右両側の単語が一致する単語の組み合わせを抽出することができ、表記ゆれ候補の抽出精度を向上させることができる。また、左右両側の単語が一致する単語は、文における役割が同じ、すなわち、品詞が同じである可能性が高い。このため、単語の品詞を解析しなくても、同じ品詞同士の単語の組み合わせを抽出しやすくなる。
【0221】
また、情報処理装置101によれば、第1の単語列に含まれるM個の単語のうち、単語が一致する位置以外の第1の位置に対応付けられた単語を、第2の単語列に含まれるN個の単語のうち、第1の位置に対応付けられた単語に対応付けて、表記ゆれ候補テーブル1400に記憶することができる。
【0222】
これにより、各単文において同じ位置にある一致しない単語の組み合わせを表記ゆれ候補として抽出することができる。
【0223】
また、情報処理装置101によれば、第1の単語列を、第1の文章に含まれるいずれかの単語列とし、第2の単語列を、第1の文章と同じ意味の文章として指定された第2の文章に含まれる単語列のうち、第1の単語列との編集距離が最小の単語列とすることができる。
【0224】
これにより、同じ意味の可能性が高い単文同士を比較して、表記ゆれ候補となる単語の組み合わせを抽出でき、表記ゆれ候補の抽出精度を向上させることができる。
【0225】
また、情報処理装置101によれば、表記ゆれ候補テーブル1400に対応付けて記憶された単語の組み合わせを出力し、出力した単語の組み合わせが、表記ゆれであることの選択を受け付けた場合、出力した単語の組み合わせを表記ゆれ辞書230に登録することができる。
【0226】
これにより、クライアント装置201のユーザなどに表記ゆれ候補の単語の組み合わせを確認させて、表記ゆれの単語の組み合わせを登録することができる。この際、システムにおいて特徴的な表記ゆれの候補を効果的に抽出できるため、ユーザが確認する表記ゆれの候補の数を抑えて、表記ゆれ辞書230を効率的に作成することができる。
【0227】
これらのことから、情報処理装置101によれば、表記ゆれ候補となる単語の組み合わせを精度よく抽出して、個々のシステムにおいて特徴的な表記ゆれを効率的に登録することができる。これにより、文章の類似判別を行うにあたり、表記ゆれを統一して文章同士を比較することが可能となり、文章の類似判別の精度を向上させることができる。
【0228】
例えば、インシデント管理システムにおいて、表記ゆれ辞書230に基づき、インシデントに関する文章の表記ゆれを統一して文章同士を比較することで、類似するインシデントの件数を効率的に把握することが可能となる。この結果、問い合わせの件数が多いインシデントについて、FAQを作成したり、機能を修正したりして、問い合わせ件数の削減につなげることができる。
【0229】
なお、本実施の形態で説明した処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO(Magneto-Optical disk)、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【0230】
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGA(Field-Programmable Gate Array)などのPLD(Programmable Logic Device)によっても実現することができる。
【0231】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0232】
(付記1)M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得し、
複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、
前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成し、
前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定し、
特定した前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語に対応付けて記憶部に記憶する、
処理をコンピュータが実行することを特徴とする処理方法。
【0233】
(付記2)前記複数の位置は順序付けられており、前記第1の単語列に含まれる単語のうち、第1の単語に対応付けられる位置の順序は、前記第1の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若く、前記第2の単語列に含まれる単語のうち、第2の単語に対応付けられる位置の順序は、前記第2の単語よりも後に出現するいずれの単語に対応付けられる位置の順序よりも若い、
ことを特徴とする付記1に記載の処理方法。
【0234】
(付記3)前記特定する処理は、
前記複数のペアのうち、単語が一致する位置の数が最大の第1の情報および第2の情報のペアを特定する、ことを特徴とする付記1または2に記載の処理方法。
【0235】
(付記4)前記記憶する処理は、
前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第1の単語と第2の単語とを抽出し、
前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置にそれぞれ対応付けられ、目的語と述語との関係にある第3の単語と第4の単語とを抽出し、
前記第1の単語を前記第3の単語に対応付けて前記記憶部に記憶し、前記第2の単語を前記第4の単語に対応付けて前記記憶部に記憶する、ことを特徴とする付記1~3のいずれか一つに記載の処理方法。
【0236】
(付記5)前記記憶する処理は、
前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた第1の単語を、前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置に対応付けられ、かつ、左右両側の単語が前記第1の単語と一致する第2の単語に対応付けて前記記憶部に記憶する、ことを特徴とする付記1~4のいずれか一つに記載の処理方法。
【0237】
(付記6)前記記憶する処理は、
前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の第1の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、前記第1の位置に対応付けられた単語に対応付けて前記記憶部に記憶する、ことを特徴とする付記1~5のいずれか一つに記載の処理方法。
【0238】
(付記7)前記第1の単語列は、第1の文章に含まれるいずれかの単語列であり、
前記第2の単語列は、前記第1の文章と同じ意味の文章として指定された第2の文章に含まれる単語列のうち、前記第1の単語列との編集距離が最小の単語列である、ことを特徴とする付記1~6のいずれか一つに記載の処理方法。
【0239】
(付記8)前記記憶部に対応付けて記憶された単語の組み合わせを出力し、
出力した前記単語の組み合わせが、表記ゆれであることの選択を受け付けた場合、前記単語の組み合わせを辞書に登録する、ことを特徴とする付記1~7のいずれか一つに記載の処理方法。
【0240】
(付記9)M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得し、
複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、
前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成し、
前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定し、
特定した前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語に対応付けて記憶部に記憶する、
処理をコンピュータに実行させることを特徴とする処理プログラム。
【0241】
(付記10)M個の単語を含む第1の単語列と、N個の単語を含む第2の単語列とを取得する取得部と、
複数の位置を含む位置群から選ばれたM個の位置の組み合わせごとに、各組み合わせに含まれるM個の位置それぞれを、前記第1の単語列に含まれるM個の単語のいずれに対応付けるかを示す第1の情報を生成し、前記位置群から選ばれたN個の位置の組み合わせごとに、各組み合わせに含まれるN個の位置それぞれを、前記第2の単語列に含まれるN個の単語のいずれに対応付けるかを示す第2の情報を生成する生成部と、
前記第1の情報および前記第2の情報の複数のペアのそれぞれについて、位置ごとに、前記第1の単語列に含まれる、該位置に対応付けられた単語と、前記第2の単語列に含まれる、該位置に対応付けられた単語とを比較して、前記複数のペアより、単語が一致する位置の数が基準を満たす第1の情報および第2の情報のペアを特定する特定部と、
前記特定部によって特定された前記ペアに基づき、前記第1の単語列に含まれるM個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語を、前記第2の単語列に含まれるN個の単語のうち、単語が一致する前記位置以外の位置に対応付けられた単語に対応付けて記憶部に記憶する登録部と、
を有することを特徴とする情報処理装置。
【符号の説明】
【0242】
101 情報処理装置
110,610 記憶部
111,112,800 第1の情報
113,114,900 第2の情報
200 システム
201 クライアント装置
210 ネットワーク
220 インシデントDB
230 表記ゆれ辞書
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
510 単語テーブル
520 類義語クラステーブル
601 取得部
602 分割部
603 第1の特定部
604 第2の特定部
605 抽出部
606 登録部
607 出力部
611 単語列取得部
612 生成部
613 算出部
1400 表記ゆれ候補テーブル
1600 表記ゆれ確認画面
1601,1602 ボタン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21