(57)【要約】【課題】名義の個人と法人の判断を高速に行う。【解決手段】入力された名義の先頭から姓辞書中の単語と前方一致するものを検索する。検索した結果、種別が法人種別や職種の場合はその時点で個人でないとして処理を終了する。種別が姓の場合、入力された名義と後方一致する単語を名辞書から検索する。次に、姓と名の区切り方の候補を１つに絞り込む。最後に、絞り込まれた解が個人かどうか判定する。【選択図】      図３
2004318699.tif 000002
【特許請求の範囲】
【請求項１】
名義を解析し、名義の種別および構成要素を出力する名義解析方法であって、
名義データを入力するステップと、
姓単語と、その読みと、その種別と、頻度とからなる姓データを記憶した姓辞書記憶手段から入力された名義データと単語もしくは読みの一部が前方一致するものを一度にすべて検索し、一致するものが存在した場合に、その種別によって、入力された名義データが姓か、それ以外かを判定するステップと、
入力された名義データが姓の場合、名単語と、その読みと、その種別と、頻度とからなる名データを記憶した名辞書記憶手段から、入力された名義と後方一致する単語を一度にすべて検索し、その結果から▲１▼姓名ともに姓・名辞書にあり、区切り方は１通り、▲２▼姓名ともに姓・名辞書にあり、区切り方が複数通り、▲３▼姓または名のみ姓・名辞書にあり、１通り、▲４▼姓または名のみ姓・名辞書にあり、複数通り、▲５▼姓も名も姓・名辞書にない、のいずれに該当するか判定するステップと、
▲２▼の場合は、前記姓・名辞書に登録された頻度が１番大きいものに絞り込み、▲４▼の場合、未使用文字の少ない解に絞り込み、同じ文字数の場合は頻度が１番大きいものに絞り込むステップと、
絞り込まれた姓名が個人かどうか判定するステップと、
判定結果を出力するステップを有する名義解析方法。
【請求項２】
入力された名義データが姓以外の場合および個人であると判定されなかった場合、各単語と、その意味を記録した単語辞書により名義データを単語分割するステップと、
分割された単語の意味を設定するステップと、
組織区切りルールにより支店名・部門名を分割するステップと、
名義に法人固有の単語が含まれていた場合、支店名、部門名が含まれていた場合、法人名と判断するステップを有する、請求項１に記載の名義解析方法。
【請求項３】
名義を解析し、名義の種別および構成要素を出力する名義解析装置であって、
姓単語と、その読みと、その種別と、頻度からなる姓データが記録されている姓辞書を記憶している記憶手段と、
名単語と、その読みと、その種別と、頻度からなる名データが記録されている名辞書を記憶している記憶手段と、
名義データを入力する手段と、
前記姓辞書記憶手段から入力された名義データと単語もしくは読みの一部が前方一致するものを一度にすべて検索し、一致するものが存在した場合に、その種別によって、入力された名義データが姓か、それ以外かを判定し、入力された名義データが姓の場合、前記名辞書記憶手段から、入力された名義と後方一致する単語を一度にすべて検索し、その結果から▲１▼姓名ともに姓・名辞書にあり、区切り方は１通り、▲２▼姓名ともに姓・名辞書にあり、区切り方が複数通り、▲３▼姓または名のみ姓・名辞書にあり、１通り、▲４▼姓または名のみ姓・名辞書にあり、複数通り、▲５▼姓も名も姓・名辞書にない、のいずれかに該当するか判定し、▲２▼の場合は、前記姓・名辞書に登録された頻度が１番大きいものに絞り込み、▲４▼の場合、未使用文字の少ない解に絞り込み、同じ文字数の場合は頻度が１番大きいものに絞り込み、絞り込まれた姓名が個人かどうか判定する処理手段と、
判定結果を出力する手段を有する名義解析装置。
【請求項４】
前記処理手段は、入力された名義データが姓以外の場合および個人であると判定されなかった場合、各単語と、その意味を記録した単語辞書により名義データを単語分割し、分割された単語の意味を設定し、組織区切りルールにより支店名・部門名を分割し、名義に法人固有の単語が含まれていた場合、支店名、部門名が含まれていた場合、法人名と判断する、請求項３に記載の名義解析装置。
【請求項５】
前記姓辞書には姓以外に法人種別も登録し、姓解析で法人種別と判断されたときは名解析を行わない、請求項３または４に記載の名義解析装置。
【請求項６】
請求項１または２に記載の名義解析方法をコンピュータで実行するための名義解析プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、名義を入力して、個人名・法人名の区別およびその名義がどのような姓名もしくは組織名からなるを解析する名義解析方法および装置に関する。
【０００２】
【従来の技術】
組織の区切りなしに入力された企業名を主名義と支店・部課名等の下部組織に分割し、主名義や下部組織名で検索する業務に利用する場合、企業名の末尾語を含まない場合でも区切ることができ、かつ最適な表現を記述することができ、しかもルールの変更も容易にできるようにした企業名解析方法および装置が特許文献１で提案されている。この特許文献１では、単語分割部は、企業名を構成する単語と意味を登録した単語辞書を用いて、入力された企業名を単語に分割し、単語の意味を付与し、ルール照合部は、分割された企業名と組織の区切りを付与する区切りルールを照合し、区切り位置を解析し、区切り付与部は、解析された区切り位置に組織の区切りを付与する。ルール選択部は、ルール記憶部から各ルールの１つを選択して取り出し、適用する。この場合、名義を解析し、個人名か法人名か判断する場合、個人・法人どちらにも対応した辞書を用いる方法と、個人名の解析と法人名の解析を両方行って判断する方法が考えられる。
【０００３】
一方、個人名の解析に関しては、例えば、特許文献２に示すように、まず文字列を２分割して姓名辞書を検索し、辞書にない場合、分割点を前後にずらして辞書検索する方法がある。
【０００４】
【特許文献１】
特開平１０−２８３３５５号公報
【特許文献２】
特許第２８９２３７６号
【０００５】
【発明が解決しようとする課題】
個人・法人どちらにも対応した辞書を用いた解析や、個人名の解析と法人名の解析を両方行って判断すると、法人名は未知語を含む解析になるため時間がかかる。個人名の解析に関しては、前述の方法では、１回の分割で分割点が決定することは少なく、すべての候補を比較しないと分割点を決定できないので、何回も辞書引きをすることになり、時間がかかる。
【０００６】
本発明の目的は、個人と法人の判断を高速に行うことができる名義解析方法、装置、およびプログラムを提供することにある。
【０００７】
【課題を解決するための手段】
姓単語と、その読みと、その種別と、頻度とからなる姓データを記憶した姓辞書記憶手段から入力された名義データと単語もしくは読みの一部が前方一致するものを一度にすべて検索し、一致するものが存在した場合に、その種別によって、入力された名義データが姓か、それ以外かを判定する。
【０００８】
入力された名義データが姓の場合、名単語と、その読みと、その種別と、頻度とからなる名データを記憶した名辞書記憶手段から、入力された名義と後方一致する単語を一度にすべて検索し、その結果から▲１▼姓名ともに姓・名辞書にあり、区切り方は１通り、▲２▼姓名ともに姓・名辞書にあり、区切り方が複数通り、▲３▼姓または名のみ姓・名辞書にあり、１通り、▲４▼姓または名のみ姓・名辞書にあり、複数通り、▲５▼姓も名も姓・名辞書にない、のいずれに該当するか判定する。
【０００９】
▲２▼の場合は、姓・名辞書に登録された頻度が１番大きいものに絞り込み、▲４▼の場合は、未使用文字の少ない解に絞り込み、同じ文字数の場合は頻度が１番大きいものに絞り込む。
【００１０】
絞り込まれた姓名が個人かどうか判定する。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００１２】
図１は本発明の一実施形態の名義解析装置の構成図、図２はその処理を示すフローチャートである。
【００１３】
姓辞書１６には、表１に示すように、単語、読み、種別（姓、外国人名、姓読み、法人種別、職種、英字など）、頻度（出現頻度）からなる情報が格納されている。姓辞書１６を検索した結果、種別が姓、外国人名、姓読み、英字の場合は個人名の可能性があるが、法人種別や職種の場合は個人名の可能性がないので、個人名解析を終了し、法人名解析に進む。名辞書１７にも、表２に示すように、単語、読み、種別（名、外国人名、名読み、法人種別、敬称、英字）、頻度（出現頻度）からなる情報が格納されている。
【００１４】
【表１】
2004318699.tif 000003
【００１５】
【表２】
2004318699.tif 000004
単語辞書１８には、表３に示すように、単語とその品詞、意味等が登録されている。
【００１６】
【表３】
2004318699.tif 000005
個人・法人判断テーブル１９には、表４に示すように、項目、点数、例からなる情報が格納されている。これら辞書１６〜１８および個人／法人判断テーブル１９は記憶装置（不図示）に記憶されている。
【００１７】
【表４】
2004318699.tif 000006
名義入力部１１は例えばキーボードで名義を入力する（ステップ２１）。個人名解析部１２は入力された名義を、姓辞書１６と名辞書１７を用いて姓と名に分割する（ステップ２２）。図３はその具体的な処理の流れを示している。まず、入力された名義の先頭から姓辞書１６中の単語と一致するものを検索する（ステップ３１）。検索した結果、種別が法人種別や職種の場合はその時点で個人ではないと判断して処理を終了する（ステップ３２）。検索した結果、種別が姓の場合、入力された名義と後方一致する単語を名辞書１７から検索する（ステップ３３）。検索した結果は次のいずれかになる。
【００１８】
▲１▼姓名ともに辞書にあり、区切り方は１通り
例：佐藤／隆
▲２▼姓名ともに辞書にあり、区切り方は複数
例：平／沢二郎、平沢／二郎
▲３▼姓または名のみに辞書あり（入力された名義と前方一致する単語が姓辞書にあり、後方一致する単語が名辞書にない、または入力された名義と前方一致する単語が姓辞書になく、後方一致する単語が名辞書にある）、１通り
例：小野／敬英（「小野」は姓辞書にあり、「敬英」は名辞書にない）
▲４▼姓または名のみ辞書にあり、複数通り
例：小野／田鶴子、小野田／鶴子（「小野」と「小野田」が姓辞書にあり、「田鶴子」も「鶴子」も名辞書にない）
▲５▼姓も名も辞書にない
▲６▼姓、未使用文字、名（敬称含む）
▲６▼の場合は未使用文字でもう一度名辞書１７を検索する。その結果、辞書にあった場合、次の場合が考えられる。これらは▲１▼または▲２▼と同じように扱う。
▲７▼姓、名、名    （連名の場合）
例：鈴木／太郎／花子
▲８▼姓、ミドルネーム、名    （外国人名の場合）
例：クリスティーナ・真理子・アンダーソン
▲９▼姓、名、敬称
例：鈴木／太郎／社長
【００１９】
辞書にない場合は、次の場合が考えられる。
Ａ．姓または名が外国人名の場合
ミドルネームと考えられるので、▲１▼▲２▼と同じ扱いになる。
例：クラーク・デビット・ウイリアム
Ｂ．それ以外
辞書にない部分は姓または名の一部になると考え▲４▼と同じ扱いをする。
例：「小野安隆」の場合
小野／安／隆（姓辞書１６に小野、名辞書１７に隆がある）となるが、日本人名なので姓名の組み合わせになるはずなので
小野／安隆
小野安／隆
の２通りの解があると考える。
【００２０】
結局、以下の５通りになる。
▲１▼姓名ともに辞書にあり、区切り方は１通り
例：佐藤／隆
▲２▼姓名ともに辞書にあり、区切り方が複数通り
例：平／沢二郎、平沢／二郎
▲３▼姓または名のみ辞書にあり、１通り
例：小野／敬英
▲４▼姓または名のみ辞書にあり、複数通り
例：小野／田鶴子、小野田／鶴子
小野／安隆、小野安／隆
▲５▼姓も名も辞書にない
次に、区切り方の候補を一つにする（ステップ３４）。
【００２１】
▲２▼の場合は単に、姓名辞書１６に登録してある頻度情報が大きい解に絞り込む。▲４▼の場合は未使用文字の少ない解に絞り込む。同じ文字数の場合は頻度情報が大きい解に絞り込む。さらに、個人判定（ステップ３５）では、姓も名（ミドルネーム、敬称も含む）辞書にあり、かつ、次のような名と職種と多義のある場合以外は個人と判定する。名と職種の多義の例には、▲１▼銀行（「かねゆき」と読めば個人）  ▲２▼信金（「のぶかね」と読めば個人）などがある。
【００２２】
個人と判定された場合は法人名解析を行わない。
【００２３】
本発明では個人の解析が高速に行われることを前提にしているので、前方一致する単語を１度に求める必要がある。そこで、図５に示すようなＮＥＸＴポインタを導入し、次に最長一致する単語へのポインタをあらかじめ登録することによって、実現する。ＮＥＸＴポインタは後ろから１文字づつを削って、単語が辞書にあった場合のレコード番号を登録する。実際には相対番号を登録することによって領域を小さくすることができる。
【００２４】
例えば、「平沢」の場合は後ろから１文字削除した「平」へのポインタを登録しておく。この場合は「平沢」のレコード番号３０と「平」のレコード番号１０の相対レコード番号である２０を登録しておく。
【００２５】
名辞書１７の場合は後方に一致する単語をすべて求めるため、前から１文字づつ削除した単語へのポインタを登録する（図６）。「喜久二郎」の場合、前から１文字削除した「久二郎」は辞書にないのでさらに削除した「二郎」へのポインタを登録しておく。
【００２６】
ＮＥＸＴポインタをあらかじめ登録しておくことにより「平沢二郎」を姓辞書１６で前方一致検索すると、まず「平沢」が見つかり、「平沢」のレコード番号３０とＮＥＸＴポインタ２０から次に一致する単語がレコード番号１０にある単語「平」であることがわかり、これをＮＥＸＴポインタが０になるまで繰り返すことにより前方一致する単語が一度に求まる。また、名辞書１７で後方一致検索をすれば同様にして「沢二郎」と「二郎」が見つかる。
【００２７】
個人の解析は辞書に単語があれば、姓と名を２回の検索で終了するはずである。そのために、辞書の構成を工夫して、入力文字列と前方一致する単語を一度に求めるようにすれば可能である。具体的には姓・名辞書１６、１７に次に最長一致する単語へのポインタを登録しておき、一度辞書を検索するだけで入力文字列と前方一致する単語をすべて求められるようにする。このような辞書を用いれば個人の解析は高速になる。例えば、姓・名辞書１６、１７がともに９５％の単語をカバーしているとすれば、約９０％の個人名は２回の辞書検索で終了する。
【００２８】
このとき、姓辞書１６に企業特有の単語を登録することにより、個人名の判断をすれば、名辞書１７を検索する必要がなくなり、さらに高速になる。
【００２９】
次に、法人名解析を行う（ステップ２３）。まず、単語辞書１８により名義を単語分割（ステップ４１）、単語の意味を設定する（ステップ４２）。
【００３０】
具体的には特開平９−４４４８９号公報に記載された方法を用いる。この方法を図７に示すフローチャートにより説明する。入力された文字列に対し最長一致検索を行い、最初の解を求める（ステップ１０１）入力の最後まで解析した後、解評価ルール（表５）を用い最初の解の評価を行い、文字位置毎にコストを求める（ステップ１０２）。
【００３１】
【表５】
2004318699.tif 000007
さらに、最後の単語からバックトラックし、別解を求める（ステップ１０３）。単語辞書１８を検索することにより、次に最長一致する単語を検索する（ステップ１０４）。解評価ルール（表５）を参照して、検索した単語で、その時点のコストを評価する（ステップ１０５）。評価したコストが最良解の、その文字位置でのコストよりも（評価予測誤差の範囲内で）良い場合は、そのまま解析を続行し、悪い場合には、ステップ１０３に戻る。
【００３２】
現在解析している入力文字列の位置から入力の最後までの評価値は、最良解を参考に決めているものの必ずしも最良解と同じにはならないので、予測誤差を加味し、最良解のコスト＋α（αは実際のデータ実験で決定する）と比較すべき値とする（ステップ１０６）。この値により現在の解候補のコストが悪い場合は、現在のその解候補を棄却し、バックトラックして新しい別解を検索する。現在の解候補のコストが最良解のコストより良い場合には、ステップ１０７に移行する。文字列が終了すれば（ステップ１０７）、処理を終了し、評価すべき文字列がある場合には、ステップ１０８に移行する。ステップ１０８では次の入力文字の処理としてステップ１１０に移行する。ステップ１０４において単語がない場合にはバックトラックを行ない、ステップ１０３に移行する（ステップ１０９）。ステップ１１０では新規の単語辞書１８を検索し、ステップ１０４に移行する。
【００３３】
次に、組織区切りルールにより支店名・部門名を分割する（ステップ４３）。具体的には特開平１０−２８３３５５号公報に記載された方法を用いる。この方法を図８に示すフローチャートにより説明する。分割される前の文字列に対して、ルール照合位置を先頭から末尾までずらしがらそれ以下の処理を繰返す（ステップ２０１）。次に、区切りルール（表６）を記憶した区切りルール記憶部から１つずつルールを取り出し（ステップ２０２）、入力文の照合位置でそのルールと合致するか否かをチェックする（ステップ２０３）。
【００３４】
【表６】
2004318699.tif 000008
すなわち、出力された文字列（単語に分割されている）に対して、先頭単語から末尾まで順に区切りルール記憶部から順にルールを取り出し、入力文の照合位置でルールと合致するか否かをチェックする。パターンにマッチしたならば（ステップ２０５）、次の区切り位置が掲載の末尾であるか否かを判断し（ステップ２０６）、末尾であれば、区切りを入れずに、次のルールを取り出す（ステップ２０７）。また、区切り位置が掲載の末尾でなければ、指定された位置で区切る（ステップ２０４）。例えば、『多摩農協武蔵野支所』という入力に対して単語分割の結果、『多摩／農協／武蔵野／支所』となる。この結果に対して、先ず先頭の単語『多摩』で一致するルールは無いため、次の単語『農協』で一致するルールを探す。その結果、末尾後で一致するルール中の『農協』で区切るルールに一致するので、『多摩農協／武蔵野支所』と組織の区切りを付与する（ステップ２０４）。ただし、照合した位置が末尾の場合には、そこで区切りを入れても無意味であるため、次のルールに進む。例えば、『多摩農協』の場合には、『農協』の後に区切りを入れても無意味であるため、ここでは区切りを入れずに次のルールに進む。
【００３５】
次に、名義に法人固有の単語（職種、法人種別、語尾など）が含まれるときと、支店名や部門名が含まれていたとき法人名と判断する（ステップ４４）。それ以外は不明として次に進む。
【００３６】
次に、個人名解析と法人名解析の結果を総合して判断する（ステップ２４）。判断ルールは個人・法人判断テーブル１９（表４）に定義された点数によって行う。ここでは点数が多いほど個人で、少ないほど法人であると定義している。
【００３７】
最後に、解析結果をディスプレイ、プリンタ等に出力する（ステップ２５）。
【００３８】
なお、本発明は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスクＣＤ―ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【００３９】
【発明の効果】
以上説明したように、本発明は、高速に名義の種別を判断し、姓名あるいは支店部門名分割を行うので、名寄せや顧客検索の情報として使用することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の名義解析装置の構成図である。
【図２】図１に示した名義解析装置の処理の流れを示すフローチャートである。
【図３】個人名解析部の処理の流れを示すフローチャートである。
【図４】法人名解析部の処理の流れを示すフローチャートである。
【図５】姓辞書のＮＥＸＴポインタの説明図である。
【図６】名辞書のＮＥＸＴポインタの説明図である。
【図７】図４のステップ４１、４２の具体的処理を示すフローチャートである。
【図８】図４のステップ４３の具体的処理を示すフローチャートである。
【符号の説明】
１１    名義入力部
１２    個人名解析部
１３    法人名解析部
１４    個人法人判断部
１５    解析結果出力部
１６    姓辞書
１７    名辞書
１８    単語辞書
１９    個人・法人判断テーブル
２１〜２５、３１〜３５、４１〜４４    ステップ
１０１〜１０８、２０１〜２０７    ステップ
【図１】
2004318699.tif 000009
【図２】
2004318699.tif 000010
【図３】
2004318699.tif 000011
【図４】
2004318699.tif 000012
【図５】
2004318699.tif 000013
【図６】
2004318699.tif 000014
【図７】
2004318699.tif 000015
【図８】
2004318699.tif 000016