(57)【要約】【課題】  表記振れ候補（複合語）とＯＫ語（複合語）の類似度を高精度で判定し、登録することを可能にする。【解決手段】  表記振れ抽出装置は、一つのドメインにおける修正前の文書と修正後の文書を格納する記憶部と、修正前の文書と前記修正後の文書から複合語を抽出し、修正前の文書にのみ現れる複合語を前記ドメイン用語の表記揺れ候補とする処理部とを有する。そして、この処理部は、表記揺れ候補とドメイン用語の組み合わせを表記揺れ候補・ドメイン用語ペアとして、記憶部に登録し、記憶部に登録された表記揺れ候補・ドメイン用語ペアの表記揺れ候補及びドメイン用語を一般用語にそれぞれ分割し、分割された表記振れ候補の一般用語と分割されたドメイン用語の一般用語との最大類似度を計算し、計算された一般用語の最大類似度に基づいて、表記揺れ候補・ドメイン用語ペアの平均類似度を算出する。【選択図】図４
2020008951.tif 000002
【特許請求の範囲】
【請求項１】
一つのドメインにおける修正前の文書と修正後の文書を格納する記憶部と、
前記修正前の文書と前記修正後の文書から複合語を抽出し、前記修正前の文書にのみ現れる複合語を前記ドメイン用語の表記揺れ候補とする処理部とを有し、
前記処理部は、
前記表記揺れ候補と前記ドメイン用語の組み合わせを表記揺れ候補・ドメイン用語ペアとして、前記記憶部に登録し、
前記記憶部に登録された前記表記揺れ候補・ドメイン用語ペアの前記表記揺れ候補及び前記ドメイン用語を、一般用語にそれぞれ分割し、前記分割された前記表記振れ候補の一般用語と前記分割された前記ドメイン用語の一般用語との最大類似度を計算し、前記計算された一般用語の最大類似度に基づいて、前記表記揺れ候補・ドメイン用語ペアの平均類似度を算出することを特徴とする表記揺れ抽出装置。
【請求項２】
前記記憶部は、語彙情報記憶部を有し、
前記処理部は、前記記憶部に格納された前記修正前の文書を形態素解析により複合語を抽出して修正前複合語辞書として前記語彙情報記憶部に登録し、前記記憶部に格納された前記修正後の文書を形態素解析により複合語を抽出して修正後複合語辞書として前記記憶部に登録する複合語抽出部を有することを特徴とする請求項１記載の表記振れ抽出装置。
【請求項３】
前記処理部は、前記一般用語の共起表現からベクトル値を算出する語彙ベクトル取得部を有することを特徴とする請求項２記載の表記振れ抽出装置。
【請求項４】
前記処理部は、前記語彙ベクトル取得部により算出されたベクトル値に基づいて、前記最大類似度を計算し、前記表記揺れ候補・ドメイン用語ペアの平均類似度を算出する平均類似度計算部を有することを特徴とする請求項３記載の表記振れ抽出装置。
【請求項５】
前記平均類似度計算部により算出された前記平均類似度から条件を満たす前記表記揺れ候補・ドメイン用語ペアを選別し、表記揺れ・ドメイン用語ペアとして前記語彙情報記憶部に格納する選別部とを有することを特徴とする請求項４記載の表記振れ抽出装置。
【請求項６】
前記処理部は、前記表記揺れ候補・ドメイン用語ペアの複合語について、前記修正前の文書に前記表記揺れ候補が出現する出現頻度と、前記修正後の文書に前記ドメイン用語が出現する出現頻度と、を取得する語彙出現頻度取得部を有し、
前記平均類似度計算部は、前記修正後の文書に前記ドメイン用語が出現する出現頻度の差異が、閾値より大きい場合には前記平均類似度により、前記閾値より小さい場合には、前記表記揺れ候補・ドメイン用語ペアを構成する前記表記振れ候補と前記ドメイン用語のコサイン類似度により、前記表記揺れ候補・ドメイン用語ペアの類似度を計算することを特徴とする請求項４記載の表記振れ抽出装置。
【請求項７】
前記処理部は、前記表記揺れ候補・ドメイン用語ペアの複合語について、前記修正前の文書に前記表記揺れ候補が出現する出現頻度と、前記修正後の文書に前記ドメイン用語が出現する出現頻度と、を取得する語彙出現頻度取得部を有し、
前記平均類似度計算部は、前記表記揺れ候補が出現する出現頻度と前記ドメイン用語が出現する出現頻度との差異に応じて、前記平均類似度と、前記表記揺れ候補・ドメイン用語ペアの前記表記振れ候補と前記ドメイン用語のコサイン類似度とに重み付け平均を計算することを特徴とする請求項４記載の表記振れ抽出装置。
【請求項８】
一つのドメインにおける修正前の文書と修正後の文書とから、前記修正後の正しい複合語であるドメイン用語と、前記ドメイン用語と対応する前記修正前の文書の表記揺れの対応をペアとして記憶する表記振れ抽出装置において、
前記一つのドメインにおける前記修正前の文書と前記修正後の文書を格納する記憶部と、
前記修正前の文書と前記修正後の文書から複合語を抽出し、前記修正前の文書にのみ現れる複合語を前記ドメイン用語の表記揺れ候補とする処理部とを有することを特徴とする表記振れ抽出装置。
【請求項９】
一つのドメインにおける修正前の文書と修正後の文書を記憶部に格納し、
処理部により、前記修正前の文書と前記修正後の文書から複合語を抽出し、前記修正前の文書にのみ現れる複合語を前記ドメイン用語の表記揺れ候補とし、
前記表記揺れ候補と前記ドメイン用語の組み合わせを表記揺れ候補・ドメイン用語ペアとして、前記記憶部に登録し、
前記記憶部に登録された前記表記揺れ候補・ドメイン用語ペアの前記表記揺れ候補及び前記ドメイン用語を一般用語にそれぞれ分割し、前記分割された前記表記振れ候補の一般用語と前記分割された前記ドメイン用語の一般用語との最大類似度を計算し、前記計算された一般用語の最大類似度に基づいて、前記表記揺れ候補・ドメイン用語ペアの平均類似度を算出することを特徴とする表記揺れ抽出方法。
【請求項１０】
前記処理部は、前記記憶部に格納された前記修正前の文書を形態素解析により複合語を抽出して修正前複合語辞書として前記記憶部の語彙情報記憶部に登録し、前記記憶部に格納された前記修正後の文書を形態素解析により複合語を抽出して修正後複合語辞書として前記記憶部に登録することを特徴とする請求項９記載の表記振れ抽出方法。
【請求項１１】
前記処理部は、前記一般用語の共起表現からベクトル値を算出することを特徴とする請求項１０記載の表記振れ抽出方法。
【請求項１２】
前記処理部は、前記語彙ベクトル取得部により算出されたベクトル値に基づいて、前記最大類似度を計算し、前記表記揺れ候補・ドメイン用語ペアの平均類似度を算出することを特徴とする請求項１１記載の表記振れ抽出方法。
【請求項１３】
前記算出された前記平均類似度から条件を満たす前記表記揺れ候補・ドメイン用語ペアを選別し、表記揺れ・ドメイン用語ペアとして前記語彙情報記憶部に格納することを特徴とする請求項１２記載の表記振れ抽出方法。
【請求項１４】
前記処理部は、
前記表記揺れ候補・ドメイン用語ペアの複合語について、前記修正前の文書に前記表記揺れ候補が出現する出現頻度と、前記修正後の文書に前記ドメイン用語が出現する出現頻度と、を取得し、
前記修正後の文書に前記ドメイン用語が出現する出現頻度の差異が、閾値より大きい場合には前記平均類似度により、前記閾値より小さい場合には、前記表記揺れ候補・ドメイン用語ペアを構成する前記表記振れ候補と前記ドメイン用語のコサイン類似度により、前記表記揺れ候補・ドメイン用語ペアの類似度を計算することを特徴とする請求項１２記載の表記振れ抽出方法。
【請求項１５】
前記処理部は、
前記表記揺れ候補・ドメイン用語ペアの複合語について、前記修正前の文書に前記表記揺れ候補が出現する出現頻度と、前記修正後の文書に前記ドメイン用語が出現する出現頻度と、を取得し、
前記表記揺れ候補が出現する出現頻度と前記ドメイン用語が出現する出現頻度との差異に応じて、前記平均類似度と、前記表記揺れ候補・ドメイン用語ペアの前記表記振れ候補と前記ドメイン用語のコサイン類似度とに重み付け平均を計算することを特徴とする請求項１２記載の表記振れ抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表記揺れ抽出装置及び方法に関する。
【背景技術】
【０００２】
近年、自然言語で書かれた文書を分析し、その文書の「表記揺れ」を抽出する装置が開発されている。ここで、「表記揺れ」とは、一つの文書または一連の文書群において、同一の概念を指す複数の（異なる）表記である。
【０００３】
表記振れに関連する技術として類似表現を抽出する技術の一例が、特許文献１に開示されている。特許文献１には、形態素列から所定の品詞の並びである複合語を抽出する複合語抽出手段と、複合語の特定の組において、一つの複合語が別の複合語の表記揺れであるか否かに関する人間による判定結果を入力する判定入力手段を備え、判定結果に基づいて表記揺れ辞書に登録する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１３９１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
また、特許文献１では、人間による判定結果を提供できる場合に限り、表記揺れを適切に抽出できる。そうでない場合、表記揺れを適切に抽出できないおそれがある。そのため、十分な再現率を保証できないおそれがある。
【０００６】
本発明の課題は、表記振れ候補（複合語）とＯＫ語（複合語）の類似度を高精度で判定し、登録することができる表記揺れ抽出装置及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明の一側面は、一つのドメインにおける修正前の文書と修正後の文書を格納する記憶部と、修正前の文書と前記修正後の文書から複合語を抽出し、修正前の文書にのみ現れる複合語を前記ドメイン用語の表記揺れ候補とする処理部とを有する。そして、この処理部は、表記揺れ候補とドメイン用語の組み合わせを表記揺れ候補・ドメイン用語ペアとして、記憶部に登録し、記憶部に登録された表記揺れ候補・ドメイン用語ペアの表記揺れ候補及びドメイン用語を一般用語にそれぞれ分割し、分割された表記振れ候補の一般用語と分割されたドメイン用語の一般用語との最大類似度を計算し、計算された一般用語の最大類似度に基づいて、表記揺れ候補・ドメイン用語ペアの平均類似度を算出する。
【発明の効果】
【０００８】
本発明によれば、修正前の文書と修正後の文書とから、正しい用語とその誤記である表記揺れとを精度よく、再現率よく抽出できる。
【図面の簡単な説明】
【０００９】
【図１】実施例１の表記揺れ抽出装置の構成例を示した図である。
【図２】表記揺れ抽出装置のハードウェア構成を示した図である。
【図３】一般単語ベクトル１２２１の例を示した図である。
【図４】平均類似度計算部における処理手順を説明するフロー図である。
【図５】表記揺れ候補・ＯＫ語ペアの出力の一例を示した図である。
【図６】「平均類似度」の算出を概念的に説明する図である。
【図７】表記揺れ・ＯＫ語ペアの出力の一例を示した図である。
【図８】実施例２の実施例２における表記揺れ抽出装置の構成例を示した図である。
【図９】複合語ベクトルの例を示した図である。
【図１０】実施例２の平均類似度計算部における処理手順を説明するフロー図である。
【図１１】語彙情報記憶部に登録される表記揺れ候補とＯＫ語のペアを示した図である。
【図１２】実施例３の平均類似度計算部における処理手順を説明するフロー図である。
【発明を実施するための形態】
【００１０】
以下、実施例について図面を用いて説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではない。また実施例において説明されている諸要素およびその組み合わせのすべてが発明の解決手段に必須であるとは限らない。
【実施例１】
【００１１】
本技術の対象である文書は、特定の「ドメイン」に属する文書である。例えば、特定の情報システムの設計書は、その情報システムという「ドメイン」に属する文書である。このように、「ドメイン」とは、文章の主題が属する分野又は文章の作成者のグループである。自然言語で書かれた特定の電子機器や銀行システムの仕様書等の文書では、ドメインに固有の用語である複合語が使用されることが多い。
【００１２】
そのため、ドメインに特有の表記揺れが発生する可能性が高い。例えば、特定のドメインでは、「預金種目」という複合語がそのドメインに固有な用語であるが、「種別」という単語は使用してもよい。このとき、「預金種別」という表記揺れが発生しうる。
【００１３】
特に、出現頻度の高い単語に対し、出現頻度の低い類似表現があった場合、出現頻度の低い類似表現のほうは、共起表現がしばしば偏ったものであるため、抽出が困難である。例えば、出現頻度が数百程度の複合語「預金種目」に対し、出現頻度が１の類似表現「預金種別」があったとする。「預金種別」の文脈は「預金種別の変更…」であるため、その共起表現は「変更」である。一方、「預金種目」の共起表現は「登録」が多い。この状況では、「預金種別」を「預金種目」の類似表現として抽出できない可能性が高い。
【００１４】
以降、例として、「預金種目」をドメインに固有な用語とし、「預金種別」を表記揺れとする。
【００１５】
図１は、表記揺れ抽出装置１０の概要を機能的に示した図である。表記揺れ抽出装置１０は、処理部１１と記憶部１２を備えている。
処理部１１は、入出力部１１１と、複合語抽出部１１２と、語彙ベクトル取得部１１３と、平均類似度計算部１１４と、選別部１１５と、を備える。記憶部１２は、文書記憶部１２１と、語彙情報記憶部１２２と、を備える。
【００１６】
実施例１において、ユーザは、処理を実行するに先立ち、修正前の文書と修正後の文書とを、入出力部１１１を通じて文書記憶部１２１に登録しておく。修正前の文書は、１つの文書でも、複数の文書でもよい。修正後の文書も同様である。
【００１７】
表記揺れ抽出装置１０は、修正前の文書と修正後の文書とを、機械的に区別できるような仕組みを備える。例えば、文書記憶部１２１は、修正前の文書を格納するフォルダと、修正後の文書を格納するフォルダと、を備える。また、例えば、修正前の文書のファイル名に、「＿修正前」を付け足す（修正後の文書に対しても同様）機能を備えてもよい。
【００１８】
入出力部１１１の文書を登録する機能は、文書が修正前か修正後かを登録する機能を併せ持つ。例えば、ユーザに「文書が修正前か修正後かを選択するチェックボックス」を提示してもよい。また、ユーザの選択結果を受け取ったとき、文書を修正前フォルダまたは修正後フォルダに仕分ける、もしくは、「＿修正前」または「＿修正後」を付け足すように文書を文書記憶部１２１に登録する。
【００１９】
ユーザが入出力部１１１にある「起動」ボタンを押したとき、複合語抽出部１１２と、語彙ベクトル取得部１１３と、平均類似度計算部１１４と、選別部１１５と、が順次起動される。すべての処理が終了したとき、抽出したすべての表記揺れは入出力部１１１に表示される。
【００２０】
通常、修正後の文書においては、表記揺れはすべて修正されている。従って、次の状況を例とする。修正前の文書は「預金種目」（ドメイン用語）と「預金種別」（表記揺れ）との両方を含む。それに対して、修正後の文書は、「預金種目」（ドメイン用語）のみを含み、「預金種別」（表記揺れ）を含まない。
【００２１】
複合語抽出部１１２は、文書記憶部１２１に格納されている修正前の文書を、語彙情報記憶部１２２に格納されている一般単語辞書を用いて形態素解析する。ここで、「形態素」とは、文章において意味を持つ最小単位である。形態素は、形態素の表記を示す文字列の情報と、形態素が属する品詞の情報とを含む。複合語抽出部１１２は、Ｍｅｃａｂ（MeCabはオープンソースの形態素解析エンジン）、ＴｅｒｍＥｘｔｒａｃｔを用いることで実現することができる。
【００２２】
形態素解析の結果である修正前の文書の形態素列を、文書記憶部１２１に登録する。例えば、文書記憶部１２１に格納されている修正前の文書は、「預金種別」という表記揺れを含む。「預金種別」は、「預金」と「種別」との２つの形態素（一般単語）になる。
【００２３】
複合語抽出部１１２は、文書記憶部１２１に格納されている修正前の文書の形態素列から、所定の品詞の並びを複合語として抽出する。抽出の結果を、修正前複合語辞書として、語彙情報記憶部１２２に登録する。このとき、「預金」と「種別」とは、名詞の並びなので、「預金種別」は複合語として抽出され、語彙情報記憶部１２２の修正前複合語辞書に登録される。
【００２４】
複合語抽出部１１２は、文書記憶部１２１に格納されている修正後の文書を、語彙情報記憶部１２２に格納されている一般単語辞書を用いて形態素解析する。形態素解析の結果である修正後の文書の形態素列を、文書記憶部１２１に登録する。例えば、文書記憶部１２１に格納されている修正後の文書は、「預金種目」というドメインに固有の用語を含む。「預金種目」は、「預金」と「種目」との２つの形態素（一般単語）になる。
【００２５】
複合語抽出部１１２は、文書記憶部１２１に格納されている修正後の文書の形態素列から、所定の品詞の並びを複合語として抽出する。抽出の結果を、修正後複合語辞書として、語彙情報記憶部１２２に登録する。このとき、「預金」と「種目」とは、名詞の並びなので、「預金種目」は複合語として抽出され、修正後複合語辞書に登録されるが、修正後の文書は、「預金種別」（表記揺れ）を含まないので、「預金種別」は修正後複合語辞書に登録されない。
【００２６】
前述したとおり、通常、修正後の文書においては、表記揺れはすべて修正されており、修正後の文書は正しい複合語のみを含む。そのため、修正後の文書から抽出したすべての複合語は正しい、即ち、修正後複合語辞書のすべての複合語は正しい。そのため、修正後複合語辞書を「ＯＫ語辞書」と呼ぶ。また、ＯＫ語辞書に属する複合語、即ち、修正後の文書から抽出した複合語を「ＯＫ語」と呼ぶ。例えば、「預金種目」はＯＫ語である。
【００２７】
複合語抽出部１１２は、語彙情報記憶部１２２に格納されている修正前複合語辞書とＯＫ語辞書との差分を取る。即ち、修正前複合語辞書のみに登録され、ＯＫ語辞書に登録されていない複合語を取得し、語彙情報記憶部１２２に、表記揺れ候補辞書として登録する。
【００２８】
「預金種別」は、修正前複合語辞書に登録されているが、ＯＫ語辞書に登録されていないので、表記揺れ候補辞書に登録される。
【００２９】
複合語抽出部１１２は、語彙情報記憶部１２２に格納されているすべての表記揺れ候補とすべてのＯＫ語の対応を、「表記揺れ候補・ＯＫ語ペア」（本明細書では、「表記揺れ候補とＯＫ語のペア」を「表記揺れ候補・ＯＫ語ペア」と記載する）として、語彙情報記憶部１２２に登録する。ここで、表記揺れ候補がｎ個あり、ＯＫ語がｍ個あったとすると、表記揺れ・ＯＫ語ペアは（ｎ×ｍ）個になる。
【００３０】
例えば、「預金種別・預金種目」という複合語のペアがある。ここで、表記揺れ候補辞書に登録には、ＯＫ語辞書に登録された複合語を除くため、ＯＫ語の数だけｎの数を減らすことができ、表記揺れ・ＯＫ語ペア（本明細書では、「表記揺れとＯＫ語のペア」を「表記揺れ・ＯＫ語ペア」と記載する）の数（ｎ×ｍ）を効果的に減らすことができる。
【００３１】
語彙ベクトル取得部１１３は、機械学習などの手法を用いて、文書記憶部１２１に格納されている修正前の文書の形態素列と修正後の文書の形態素列とを入力として、一般単語の共起表現から、一般単語のベクトル表現を計算する。語彙の共起表現から、語彙のベクトル表現を計算する方法は、例えば、Ｗｏｒｄ２Ｖｅｃがある。計算結果であるベクトル表現は、一般単語ベクトル１２２１として、語彙情報記憶部１２２に登録する（図３参照）。例えば、「預金」、「種目」と「種別」のベクトルは、それぞれの共起表現から計算される。本実施例では、一般単語「預金」、「種目」と「種別」のベクトルを使い、「預金種別」や「預金種目」といった複合語のベクトルは用いない。
【００３２】
図２は、表記揺れ抽出装置のハードウェア構成を示した図である。演算機能を有するＣＰＵ２１、データを一時的に記憶するメモリ２２、ディスプレイ等の表示装置２５やマウスやキーボードなどの入力装置２６に接続されるインターフェース２３、記憶部１２、がバス２４を介して接続されている。記憶部１２は、ハードディスク、ＳＳＤ等の記憶装置を用いる。記憶部１２には、図１の入出力部１１１、複合語抽出部１１２、語彙ベクトル取得部１１３、平均類似度計算部１１４、選択部１１５の各種機能実現するプログラム１３が記憶されている。これらプログラムがメモリ２２に読み込まれ、ＣＰＵ２１が各種プログラムを実行することで、各種機能を実現している。また、記憶部１２に修正前の文書と修正後の文書を記憶する文書記憶部１２１、一般用語辞書、修正前複合語辞書、修正後複合語辞書、表記揺れ候補辞書、表記揺れ候補・ＯＫ語ペア、一般単語ベクトル、平均類似度Ｕ、表記揺れ・ＯＫ語ペア、複合語ベクトルを記憶する語彙情報記憶部１２２とを有する。
【００３３】
図３は、一般単語ベクトル１２２１の例を示している。１つの一般単語に対し、５０〜２００個の数字からなるベクトルが付与されている。この一般ベクトルは、「預金」、「種目」と「種別」について、それぞれの共起表現から計算された値である。
【００３４】
図４は、平均類似度計算部１１４における処理手順を説明するフロー図である。図４に示すフローは、語彙情報記憶部１２２に格納されているすべての表記揺れ候補・ＯＫ語ペアに対し、平均類似度を計算し、その結果を語彙情報記憶部１２２に登録する処理を示している。但し、表記揺れ候補はＯＫ語辞書に登録されていない複合語のみであるため、表記揺れ候補・ＯＫ語ペアの数は、すでに効果的に絞られている。
【００３５】
ステップＳ３０１では、語彙情報記憶部１２２から、１組の表記揺れ候補・ＯＫ語ペアを取得する。例えば、「預金種別・預金種目」を取得した。「預金種別」は表記揺れ候補であり、「預金種目」はＯＫ語である。
【００３６】
ステップＳ３０２では、表記揺れ候補（複合語）を一般単語（要素）に分割する。ＯＫ語（複合語）も一般単語（要素）に分割する。分割とは、一般単語複合語抽出部１１２と同様に、語彙情報記憶部１２２に格納されている一般単語辞書を使用して、形態素解析することを指す。例えば、「預金種別」（表記揺れ候補複合語）は、「預金」と「種別」との２の形態素＝一般単語（要素）に分割される。また、「預金種目」（ＯＫ語複合語）は、「預金」と「種目」との２の形態素＝一般単語（要素）に分割される。便宜上、ここでは、複合語を構成する形態素＝一般単語を、その複合語の要素と呼ぶ。
【００３７】
ステップＳ３０３では、平均類似度Ｕを０に初期化する。
【００３８】
ステップＳ３０４では、表記揺れ候補の１要素を取得する。便宜上、この要素を「ＮＧ要素」と呼ぶ。例えば、「種別」（ＮＧ要素）を取得した。
【００３９】
ステップＳ３０５では、最大類似度Ｖを０に初期化する。
【００４０】
ステップＳ３０６では、ＯＫ語の１要素を取得する。便宜上、この要素を「ＯＫ要素」と呼ぶ。例えば、「預金」（ＯＫ要素）を取得した。
【００４１】
ステップＳ３０７では、ＮＧ要素のベクトルとＯＫ要素のベクトルとを、語彙情報記憶部１２２に格納されている一般単語ベクトル１２２１(図３参照)から取得する。また、ＮＧ要素とＯＫ要素との類似度Ｓを計算する。類似度Ｓは、ＮＧ要素のベクトルとＯＫ要素のベクトルとのコサイン類似度を指す。例えば、「種別」（ＮＧ要素）と「預金」（ＯＫ要素）との類似度Ｓ＝０．２とする。
【００４２】
ステップＳ３０８では、ステップＳ３０７において算出した類似度Ｓを最大類似度Ｖと比較する。類似度Ｓ＞最大類似度Ｖの場合、ステップＳ３０９へ進み、そうでない場合、ステップＳ３１０へ進む。類似度Ｓ＝０．２＞最大類似度Ｖ＝０ため、ステップＳ３０９へ進む。
【００４３】
ステップＳ３０９では、最大類似度ＶをステップＳ３０７で計算した類似度Ｓに更新する。例えば、最大類似度Ｖを類似度Ｓ＝０．２に更新する。
【００４４】
ステップＳ３１０では、ＯＫ語の要素を、すべて取得済みかどうかを確認する。ＯＫ語の要素をすべて取得済みの場合、ステップＳ３１１へ進む。そうでない場合、ステップＳ３０６へ戻る。例えば、「預金種目」（ＯＫ語）の要素としては、「預金」と「種目」とがあるが、いまはまだ「預金」のみを取得しただけなので、ステップＳ３０６へ戻る。
【００４５】
上記の例について、再度、ステップＳ３０６からステップＳ３１０へ進むまでの動作を説明する。ステップＳ３０６では、「種目」（ＯＫ要素）を取得する。次に、ステップＳ３０７では、「種別」（ＮＧ要素）のベクトルと「種目」（ＯＫ要素）のベクトルとを、語彙情報記憶部１２２に格納されている一般単語ベクトル１２２１から取得し、「種別」（ＮＧ要素）のベクトルと「種目」（ＯＫ要素）のベクトルとのコサイン類似度を計算する。結果、コサイン類似度は０．８、即ち、類似度Ｓ＝０．８とする。ステップＳ３０８では、類似度Ｓ＝０．８を最大類似度Ｖ＝０．２と比較する。結果、類似度Ｓ＝０．８＞最大類似度Ｖ＝０．２のため、ステップＳ３０９へ進み、最大類似度Ｖを類似度Ｓ＝０．８に更新する。次に、ステップＳ３１０では、ＯＫ語の要素をすべて取得済みであるため、ステップＳ３１１に進む。
【００４６】
ステップＳ３１１では、平均類似度Ｕに最大類似度Ｖを加算する。例えば、平均類似度Ｕ＝０に最大類似度Ｖ＝０．８を加算して、平均類似度Ｕ＝０．８を得る。
【００４７】
ステップＳ３１２では、表記揺れ候補の要素を、すべて取得済みかを確認する。表記揺れ候補の要素をすべて取得済みの場合、ステップＳ３１３へ進み、そうでない場合、ステップＳ３０４へ戻る。例えば、表記揺れ候補「預金種別」の要素としては、「預金」と「種別」とがあるが、いまはまだ「種別」のみを取得しただけなので、ステップＳ３０４へ戻る。
【００４８】
上記の例について、再度、ステップＳ３０４からステップＳ３１２へ進むまでの動作を簡略的に説明する。ステップＳ３０４では、表記揺れ候補「預金種別」のもう片方の要素「預金」（ＮＧ要素）を取得する。続いて、ステップＳ３０５〜ステップＳ３１０では、「預金」（ＮＧ要素）と、ＯＫ語「預金種目」の要素「預金」（ＯＫ要素）と、の類似度Ｓ＝１によって、最大類似度Ｖ＝１となる。最後に、ステップＳ３１１では、平均類似度Ｕ＝０．８に最大類似度Ｖ＝１を加算して、平均類似度Ｕ＝１．８を得る。尚、ステップＳ３０５にて、ＯＫ語の「種目」が選択された場合もステップＳ３０５からステップＳ３１０を繰り返すが、詳細な説明は省略する。
【００４９】
ステップＳ３１３では、平均類似度Ｕを表記揺れ候補の要素数で除算する。平均類似度Ｕ＝１．８であり、表記揺れ候補の要素数は２であるため、除算によって平均類似度Ｕ＝０．９となる。
【００５０】
ステップＳ３１４では、表記揺れ候補・ＯＫ語ペアの平均類似度Ｕを、表記揺れ候補・ＯＫ語ペアの類似度として、語彙情報記憶部１２２に登録する。図５に、表記揺れ候補・ＯＫ語ペアと平均類似度Ｕが語彙情報記憶部１２２に登録された状態を示す。
【００５１】
ステップＳ３１５では、語彙情報記憶部１２２の表記揺れ候補・ＯＫ語ペアを、すべて取得済みかどうかを確認する。語彙情報記憶部１２２から表記揺れ候補・ＯＫ語ペアをすべて取得済みの場合は終了する。そうでない場合はステップＳ３０１へ戻る。
【００５２】
以上では、平均類似度を各最大類似度の通常の平均値として計算する場合について例示した。上記以外にも、平均類似度を各最大類似度の乗算として計算する方法がある。このとき、ステップＳ３０３では、平均類似度を１に初期化する。また、ステップＳ３１１では、平均類似度に最大類似度を乗算する。ステップＳ３１３は不要である。
【００５３】
さらに、乗算以外の方法もありうる。例えば、調和平均がある。ここでは一々詳細に説明しない。要は、表記振れ候補・ＯＫ語のペアの各要素の類似度が最も大きい組み合わせに基づいて、表記振れ候補・ＯＫ語のペアの平均類似度を求める。
【００５４】
図６を用いて、上記の「平均類似度」の算出を概念的に説明する。語彙情報記憶部１２２から、１組の表記揺れ候補・ＯＫ語ペアである「預金種別・預金種目」の複合語のペアを取得する。「預金種別」は表記揺れ候補（ＮＧ語候補）であり、「預金種目」はＯＫ語である。
【００５５】
平均類似度計算部１１４は、ＯＫ語（複合語）「預金種目」を、語彙情報記憶部１２２に登録されている一般単語辞書に基づいて、「預金」「種目」（要素）に分割する。同様に、ＮＧ語候補（複合語）「預金種別」を、語彙情報記憶部１２２に登録されている一般単語辞書に基づいて、「預金」「種別」（要素）に分割する。
【００５６】
表記揺れ候補のＮＧ要素「預金」と「種別」は、類似度計算のためにそれぞれ取得され、各ＮＧ要素はＯＫ要素の「預金」「種目」とそれぞれ類似度が計算され、最大類似度Ｖが「預金種別・預金種目」の複合語の平均類似度の計算に用いられる。図６では、ＮＧ要素である「種別」とＯＫ要素「預金」「種目」の最大類似度Ｖは、ＮＧ要素「種別」とＯＫ要素「種目」の場合の「０．８」となる。
【００５７】
同様に、ＮＧ要素である「預金」とＯＫ要素「預金」「種目」の最大類似度Ｖは、ＮＧ要素「預金」とＯＫ要素「預金」の場合の「１．０」となる。これら、一般用語に分割されたＮＧ要素とＯＫ要素の最大類似度を加え、要素数「２」で除算したものを、「平均類似度」と呼ぶ。複合語である表記振れ候補の複合語ベクトルと、複合語であるＯＫ語の複合語ベクトルとの類似度と違い、複合語の各要素の最大類似度を用いているため、複合語としての類似度の判定の精度を向上することができる。
【００５８】
選別部１１５は、語彙情報記憶部１２２の表記揺れ候補・ＯＫ語ペアから、条件を満たす表記揺れ候補・ＯＫ語ペアを選別し、それらの表記揺れ候補・ＯＫ語ペアを最終的に表記揺れ・ＯＫ語ペアとする。前記条件は、例えば、「類似度が閾値より大きい」でもよい。即ち、閾値＝０．８とした場合、類似度＞０．８となる表記揺れ候補・ＯＫ語ペアを表記揺れ・ＯＫ語ペアとする。このとき、すべての表記揺れ候補に対して、表記揺れ・ＯＫ語ペアが１ペア以上あるとは限らない。すべての表記揺れ候補に対して、表記揺れ・ＯＫ語ペアが１ペア以上あることが望ましいのであれば、例えば、すべての表記揺れ候補に対し、類似度が最大の表記揺れ候補・ＯＫ語ペアを、最終的に表記揺れ・ＯＫ語ペアとして選別してもよい。表記揺れ・ＯＫ語ペアを語彙情報記憶部１２２に登録する。
【００５９】
入出力部１１１は、語彙情報記憶部１２２に格納されている表記揺れ・ＯＫ語ペアをユーザに提示する。単純なリスト形式で提示してもよい。一つのＯＫ語に対して複数の表記揺れが存在する場合、ＯＫ語でグルーピングを実施してもよい。
【００６０】
図７は表記揺れ・ＯＫ語ペアの出力の一例である。図７（ａ）は、語彙情報記憶部１２２に格納されている表記揺れ・ＯＫ語ペアを、表記揺れを「表記揺れ（誤記）」とし、ＯＫ語を「ドメイン用語」として、ユーザに提示する画面の一例を示している。図７（ｂ）は、一つのＯＫ語に対して複数の表記揺れが存在する状況において、ＯＫ語でグルーピングを実施した場合を示している。ここでは、表記揺れ・ＯＫ語ペアを、ＯＫ語・表記揺れの順に、「ドメイン用語」と「表記揺れ（誤記）」としてユーザに提示する画面の一例を示している。
【００６１】
以上のように、実施例１では、表記揺れ候補辞書に登録には、ＯＫ語辞書に登録された複合語を除くため、ＯＫ語の数だけｎの数を減らすことができ、表記揺れ・ＯＫ語ペアは（ｎ×ｍ）個の数を効果的に絞り込むことができ、平均類似度を求めるための処理を高速化することができる。
【００６２】
また、表記振れ候補（複合語）とＯＫ語（複合語）の複合語に対する複合語ベクトルとの類似度と違い、表記振れ候補（複合語）とＯＫ語（複合語）を一般用語に分割したＮＧ要素とＯＫ要素の最大類似度を求め、各要素の最大類似度を要素数「２」で除算して「平均類似度」を算出しているので、複合語の類似度判定を高精度で行うことができる。
【実施例２】
【００６３】
実施例２では、実施例１における平均類似度計算部１１４の処理手順を変更し、処理時間をさらに短縮する。
【００６４】
図８は、実施例２における表記揺れ抽出装置１０の構成例を示している。同じ符号を用いたものは、実施例１と同様の機能、構成を有するものとする。
【００６５】
実施例２では、処理部１１に、語彙出現頻度取得部１１６が追加される。
複合語抽出部１１２は、文書記憶部１２１に格納されている修正前の文書を、語彙情報記憶部１２２に格納されている修正前複合語辞書とＯＫ語辞書とを用いて形態素解析する。その結果である修正前の文書の複合語入り形態素列を、文書記憶部１２１に登録する。例えば、「顧客記号番号検索画面にて画面検索ボタン押下で出力される確認ダイアログ」という文は、「顧客記号番号検索画面／にて／画面検索ボタン／押下／で／出力／される／確認ダイアログ」のように分解される。即ち、「顧客記号番号検索画面」などの複合語は一般単語に分解されない。次に、修正後の文書も同様に解析する。その結果である複合語入り修正後の文書の形態素列を、文書記憶部１２１に登録する。
【００６６】
語彙ベクトル取得部１１３は、機械学習などの手法を用いて、文書記憶部１２１に格納されている修正前の文書の複合語入り形態素列と修正後の文書の複合語入り形態素列とを入力として、複合語の共起表現から複合語のベクトル表現を計算する。結果は複合語ベクトル１２２２として、語彙情報記憶部１２２に登録する。例えば、「預金種目」や「預金種別」のベクトルが計算され、語彙情報記憶部１２２に登録される。
【００６７】
図９は、語彙情報記憶部１２２に登録されている複合語ベクトル１２２２の例を示している。１つの複合語に対し、５０〜２００個の数字からなるベクトルが付与されている。
【００６８】
語彙出現頻度取得部１１６は、語彙情報記憶部１２２に格納されているＯＫ語辞書と表記揺れ候補辞書とを取得する。文書記憶部１２１に格納されている修正前の文書の複合語入り形態素列と修正後の文書の複合語入り形態素列とから、ＯＫ語と表記揺れ候補との出現頻度を計測し、語彙情報記憶部１２２に登録する。
【００６９】
図１０は、実施例２の平均類似度計算部１１４における処理手順を説明するフロー図である。図１０に示すフローは、語彙情報記憶部１２２に格納されているすべての表記揺れ候補・ＯＫ語ペアに対して、出現頻度差異で場合分けし、複合語の各要素の最大類似度を考慮した平均類似度または複合語の「コサイン類似度」を計算し、その結果を表記揺れ候補・ＯＫ語ペアの類似度として語彙情報記憶部１２２に登録する処理を示している。即ち、出現頻度が低い場合には、平均類似度を用い、出現頻度が高く共起表現による複合語のコサイン類似度の信頼性が高い場合には、複合語のコサイン類似度を用いることにより、処理の高速化を図ることができる。
【００７０】
ステップＳ３２１では、語彙情報記憶部１２２から、１表記揺れ候補・ＯＫ語ペアを取得する。
【００７１】
ステップＳ３２２では、語彙情報記憶部１２２から、表記揺れ候補の出現頻度とＯＫ語の出現頻度とを取得する。表記揺れ候補の出現頻度は、例えば、修正前文書から表記揺れ候補の出現回数をカウントすることにより求めることができる。ＯＫ語の出現頻度も同様に、修正後文書から求めることができる。
【００７２】
ステップＳ３２３では、表記揺れ候補とＯＫ語との出現頻度から表記揺れ候補・ＯＫ語ペアの出現頻度差異を計算する。具体的な計算は様々ある。例えば、ＯＫ語と表記揺れ候補との出現頻度の差分でもよい。また、表記揺れ候補の出現頻度を、ＯＫ語の出現頻度で除算した商でもよい。
【００７３】
ステップＳ３２４では、表記揺れ候補・ＯＫ語ペアの出現頻度差異＞閾値であるか否かを確認する。閾値はステップＳ３２３における表記揺れ候補・ＯＫ語ペアの出現頻度差異の計算式に従って、予め適切に設定する。ＯＫ語ペアの出現頻度差異＞閾値である場合、ステップＳ３２５に進む。そうでない場合、ステップＳ３２７に進む。表記揺れ候補の出現頻度を、ＯＫ語の出現頻度で除算した商とした場合には、例えば、除算した商が、「０．０１」を閾値とする。出現頻度差異が閾値以上となる場合には、複合語のコサイン類似度の精度が期待できないとして、平均類似度による判断を行うためである。例えば、出現頻度の差が大きい場合、ステップＳ３２５に移動する。出現頻度差異が小さい場合には、ステップＳ３２７に移動する。
【００７４】
ステップＳ３２５では、表記揺れ候補・ＯＫ語ペアの平均類似度を計算し、その結果を表記揺れ候補・ＯＫ語ペアの類似度として語彙情報記憶部１２２に登録する。計算方法は図４が示すステップＳ３０２〜ステップＳ３１４である。
【００７５】
ステップＳ３２６では、語彙情報記憶部１２２の表記揺れ候補・ＯＫ語ペアを、すべて取得済みかどうかを確認する。語彙情報記憶部１２２から表記揺れ候補・ＯＫ語ペアをすべて取得済みの場合は終了する。そうでない場合はステップＳ３２１へ戻る。
【００７６】
ステップＳ３２７では、語彙情報記憶部１２２に格納されている複合語ベクトル１２２２から表記揺れ候補のベクトルとＯＫ語の複合語ベクトルとを取得する。
【００７７】
ステップＳ３２８では、表記揺れ候補の複合語ベクトルとＯＫ語の複合語ベクトルとのコサイン類似度を計算する。
【００７８】
ステップＳ３２９では、表記揺れ候補のベクトルとＯＫ語の複合語ベクトルとのコサイン類似度を、表記揺れ候補・ＯＫ語ペアの類似度として、語彙情報記憶部１２２に登録して、ステップＳ３２６に進む。
【００７９】
図１１にステップＳ３２９で語彙情報記憶部１２２に登録される表記揺れ候補とＯＫ語のペア、出現頻度差異、揺れ候補のベクトルとＯＫ語のベクトルとのコサイン類似度を示す。
【００８０】
実施例２によれば、出現頻度が低い場合には、平均類似度を用いることで高精度に表記振れ候補とＯＫ語のペアをその類似度と共に登録でき、出現頻度が高く共起表現による複合語のコサイン類似度の信頼性が高い場合には複合語のコサイン類似度を用いることにより、表記揺れ候補・ＯＫ語ペアの登録を高精度かつ処理の高速に行うことができる。
【実施例３】
【００８１】
実施例３では、実施例２における平均類似度計算部１１４の処理手順を変更し、表記揺れ抽出の精度及び再現率を向上する。
実施例３における装置１０の構成例は実施例２と同様（図８）である。
【００８２】
図１２は、平均類似度計算部１１４における処理手順を説明するフロー図である。図１２に示すフローは、語彙情報記憶部１２２に格納されているすべての表記揺れ候補・ＯＫ語ペアに対して、平均類似度、コサイン類似度及び出現頻度差異を計算し、出現頻度差異による平均類似度とコサイン類似度の重み付け平均を計算し、その結果を表記揺れ候補・ＯＫ語ペアの類似度として語彙情報記憶部１２２に登録する処理を示している。
【００８３】
平均類似度とコサイン類似度に出現頻度を考慮した重み付けを持たせることで、表記揺れ候補とＯＫ語のペアの類似度の精度を高めることができる。
【００８４】
ステップＳ３３１では、語彙情報記憶部１２２から、１表記揺れ候補・ＯＫ語ペアを取得する。
【００８５】
ステップＳ３３２では、表記揺れ候補・ＯＫ語ペアの平均類似度を計算する。計算方法は図４が示すステップＳ３０２〜ステップＳ３１３である。
【００８６】
ステップＳ３３３では、語彙情報記憶部１２２に格納されている複合語ベクトル１２２２から表記揺れ候補のベクトルとＯＫ語のベクトルとを取得する。
【００８７】
ステップＳ３３４では、表記揺れ候補のベクトルとＯＫ語のベクトルとのコサイン類似度を計算する。
【００８８】
ステップＳ３３５では、語彙情報記憶部１２２から、表記揺れ候補の出現頻度とＯＫ語の出現頻度とを取得する。
【００８９】
ステップＳ３３６では、表記揺れ候補とＯＫ語との出現頻度から表記揺れ候補・ＯＫ語ペアの出現頻度差異を計算する。具体的な計算式には様々な候補がある。例えば、ＯＫ語の出現頻度と表記揺れ候補の出現頻度との差分でもよい。また、表記揺れ候補の出現頻度を、ＯＫ語の出現頻度で除算した商でもよい。
【００９０】
ステップＳ３３７では、表記揺れ候補・ＯＫ語ペアの出現頻度差異により平均類似度とコサイン類似度との重み付け平均を計算する。一般的に、出現頻度の高いＯＫ語に対し、出現頻度の低い表記揺れがあった場合、表記揺れのほうの共起表現がしばしば偏ったものであるため、表記揺れ候補の複合語ベクトルとＯＫ語の複合語ベクトルとのコサイン類似度よりも、平均類似度を使用したほうがよい。表記揺れ候補・ＯＫ語ペアの出現頻度差異による平均類似度とコサイン類似度との重み付け平均の計算方法は、ステップＳ３３６における表記揺れ候補・ＯＫ語ペアの出現頻度差異の計算式に従って、予め適切に設定する。表記揺れ候補・ＯＫ語ペアの出現頻度差異を差分とした場合、例えば、平均類似度の重みを（１−１／差分）とし、コサイン類似度の重みを（１／差分）としてもよい。表記揺れ候補・ＯＫ語ペアの出現頻度差異を商とした場合、平均類似度の重みを（１−商）とし、コサイン類似度の重みを商としてもよい。
【００９１】
ステップＳ３３８では、重み付け平均を表記揺れ候補・ＯＫ語ペアの類似度として語彙情報記憶部１２２に登録する。
【００９２】
ステップＳ３３９では、語彙情報記憶部１２２の表記揺れ候補・ＯＫ語ペアをすべて取得済みかどうかを確認する。語彙情報記憶部１２２から表記揺れ候補・ＯＫ語ペアをすべて取得済みの場合は終了する。そうでない場合はステップＳ３３１へ戻る。
【００９３】
実施例３によれば、平均類似度とコサイン類似度に出現頻度を考慮した重み付けを持たせることで、表記揺れ候補とＯＫ語のペアの類似度の精度を高めることができる。
【符号の説明】
【００９４】
１０：本装置、１１：処理部、１２：記憶部、１１１：入出力部、１１２：複合語抽出部、１１３：語彙ベクトル取得部、１１４：平均類似度計算部、１１５：選別部、１１６：語彙出現頻度取得部、１２１：文書記憶部、１２２：語彙情報記憶部、１２２１：一般
単語ベクトル、１２２２：複合語ベクトル
【図１】
2020008951.tif 000003
【図２】
2020008951.tif 000004
【図３】
2020008951.tif 000005
【図４】
2020008951.tif 000006
【図５】
2020008951.tif 000007
【図６】
2020008951.tif 000008
【図７】
2020008951.tif 000009
【図８】
2020008951.tif 000010
【図９】
2020008951.tif 000011
【図１０】
2020008951.tif 000012
【図１１】
2020008951.tif 000013
【図１２】
2020008951.tif 000014