JP2011065384A - 誤字脱字対応テキスト解析装置及び方法及びプログラム - Google Patents

誤字脱字対応テキスト解析装置及び方法及びプログラム Download PDF

Info

Publication number
JP2011065384A
JP2011065384A JP2009214959A JP2009214959A JP2011065384A JP 2011065384 A JP2011065384 A JP 2011065384A JP 2009214959 A JP2009214959 A JP 2009214959A JP 2009214959 A JP2009214959 A JP 2009214959A JP 2011065384 A JP2011065384 A JP 2011065384A
Authority
JP
Japan
Prior art keywords
character
word
word string
string data
dictionary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009214959A
Other languages
English (en)
Other versions
JP5203324B2 (ja
Inventor
Kuniko Saito
邦子 齋藤
Kenji Imamura
賢治 今村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009214959A priority Critical patent/JP5203324B2/ja
Publication of JP2011065384A publication Critical patent/JP2011065384A/ja
Application granted granted Critical
Publication of JP5203324B2 publication Critical patent/JP5203324B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

【課題】 誤字や脱字などの表記ゆれを含むテキスト文書の形態素解析を高精度に行う。
【解決手段】 本発明は、入力テキストを形態素解析して単語列データを出力し、入力テキストの単語の所定の文字長の単語について近似照合し、近似辞書照合単語列データを出力し、単語列データと近似辞書照合単語列データを用いて誤字脱字修正を行う。誤字脱字修正を行う際に、単語列データと近似辞書照合単語列データの単語の照合タイプに基づいて、所定の重みを付与し、さらに、2つの単語列データの単語の近似文字状況に応じて、該単語列データと該近似辞書照合単語列データとに重みを付与し、重み付け単語列データを出力し、重み付け単語列データの各位置に存在する単語候補について、統計的言語モデル記憶手段を参照して、単語列毎に付与した重みを考慮した表記列と品詞列の同時確率Pweight(F,T)の同時確率が最大となる最尤単語列を修正済み単語列データとして出力する。
【選択図】 図1

Description

本発明は、誤字脱字対応テキスト解析装置及び方法及びプログラムに係り、誤字脱字が含まれるテキストであっても正しく言語処理を実行する技術、特に入力文中の単語を認定して品詞などの辞書情報を付与する形態素解析技術に関するものである。
現在、様々な自然言語処理技術の研究開発が進み、膨大なテキストから必要な情報を検索する検索技術、テキストに書かれた内容を短くまとめる要約技術、ある言語から別の言語へ翻訳する機械翻訳技術など、様々なタスクでの言語処理技術の研究が存在する。多くの言語処理技術において、初期の解析ステップは、テキスト、即ち入力された文中の単語を認定して品詞などの辞書情報を付与する形態素解析処理である。特に日本語のように単語を分割しないで文字をつなげて記述する言語の場合、入力文のどこからどこまでの文字列が1つの単語であり、その品詞は何であるかという形態素解析は、検索技術や要約技術などの高度な言語処理を実現する上では基盤となる重要な技術である。形態素解析で解析誤りが多いと、後続の高度な言語処理ステップでの精度低下を招き、結果としてシステム全体の解析性能を落とす原因となる。そのため、形態素解析を高精度に処理することは重要である。
形態素解析処理は、入力文である文字列を単語の単位に分割し、品詞などの辞書情報を付与するものである。入力文を長さm字の文字列S=c1c2…cmとする。この入力文をn個の表記列(部分文字列)F=f1f2…fn に分割し、各表記列に付与される品詞が品詞列T=t1t2…tnであった時、形態素解析は、表記列と品詞列の同時確率P(F,T)を最大化するような単語分割および品詞付与を実行する。即ち、以下の式を満たすような(F,T)の組を求める問題となる。
Figure 2011065384
実際の形態素解析処理では、入力文の任意の部分文字列に対して別途準備する単語辞書を照合し、該当する部分文字列、即ち表記に対する単語辞書エントリがあればその情報を取得して単語とみなす、という処理が行われる。単語辞書とは、単語を構成する表記と、その表記に対応する辞書情報が対応つけられたものである。辞書情報の代表的なものは品詞であり、例えば「NTT」という表記には「名詞」という品詞が対応つけられている。また「通」という表記は「助数詞」「動詞語幹」「名詞」という品詞の違いにより3種類のエントリが考えられる。このように同じ表記であっても品詞が異なる辞書登録語もあり「NTTから請求書が3通届いた」という入力文において、例えば「通」は助数詞なのか、動詞「通る」の語幹なのか、名詞なのか、といった単語の多義性を解消して1つの最適な単語列を出力するのが形態素解析処理である。以後、本願発明では表記と品詞の組み合わせ「表記/品詞」の単位を単語と呼ぶ。
周知の形態素解析技術としては、ChaSen、JUMANやJTAG(例えば、非特許文献1参照)などが知られている。
Takeshi Fuchi, Shinichiro Takagi: Japanese morphological analyzer using word co-occurrence: JTAG, Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics, pp. 409 - 413 (1998 ).
近年では、Web上に膨大なテキストが存在するようになったが、新聞記事のようにプロの書き手が記述した正確な書き言葉としてのテキストだけではなく、ブログや掲示板など一般ユーザが話し言葉に近い砕けた表現で自由に記述したテキストも増えている(CGM:Consumer Generated Media)。これらのテキストは、一般の人が自由に率直に意見を記述していることが多く、世の中の意見を広く抽出するための情報源として注目を浴びている。しかし、このようなテキストは、誤字脱字などの表記上の誤りや、口語的表現や個人の趣向に由来する表記揺れなどを含むため、新聞記事のような正確な書き言葉を想定している言語処理技術ではうまく解析できないことも多い。以後、本明細書ではCGMのように正確な書き言葉とは異なる言語現象(誤字脱字、表記揺れ等)を含むテキストを、誤字脱字テキストと呼ぶことにする。
誤字脱字テキストをうまく解析できない原因の一つは、形態素解析処理に失敗することである。従来の形態素解析処理では、入力文の任意の部分文字列に対して別途準備する単語辞書を照合するが、入力文に誤字脱字があると、単語辞書を照合する際に、辞書登録語の表記と入力文での表記が異なっているために正しく単語として辞書照合できない。辞書照合できなかった文字列は1文字ずつに分解されたり、適当な範囲でまとめられて処理される。例えば「MTTから精求書が3通届いた」という入力文の場合、文字列「MTT」が辞書登録語に無ければ「M」「T」「T」と文字単位に分解されたり、或いは「MTT」という辞書未登録語として認識される。また、「精求書」の部分が「精/名詞」「求/動詞語幹」「書/名詞」などのように本来1語にまとまって欲しい「請求書」であったはずの文字列が誤字「精」のために異なる辞書登録語に適当に分解されてしまう。いずれの場合も形態素解析処理においては、解析を誤る原因となる。
このように、従来技術の形態素解析処理では正しく書かれた書き言葉を想定しているために、誤字脱字を含むCGMテキストを解析対象とした場合、入力文に存在する誤字や脱字のために辞書照合に失敗し、最終的には品詞付与などの辞書情報を正しく取得できず、誤った形態素解析結果を出力するという問題点があった。
本発明は上記の点に鑑みなされたもので、誤字や脱字などの表記ゆれを含むテキスト文書の形態素解析を高精度に行うことが可能な誤字脱字対応テキスト解析装置及び方法及びプログラムを提供することを目的とする。
図1は、本発明の原理構成図である。
本発明(請求項1)は、誤字や脱字が含まれる入力テキストを形態素解析するための誤字脱字対応テキスト解析装置であって、
辞書登録語での出現文字と入力文での出現文字で変化があった箇所の状況である近似文字状況毎に、ある文字が別の文字に混同されやすさを数値化した文字混同確率を格納した文字混同確率記憶手段331と、
ある読みに対する漢字を格納した読み・漢字対応記憶手段332と、
統計的言語モデルを格納した統計的言語モデル記憶手段340と、
入力テキストを形態素解析して単語列データを出力する形態素解析手段100と、
入力テキストの単語の所定の文字長の単語について近似照合し、近似辞書照合単語列データを出力する近似辞書照合手段200と、
単語列データと近似辞書照合単語列データを用いて誤字脱字修正を行う誤字脱字修正手段300と、を有し、
誤字脱字修正手段300は、
単語列データと近似辞書照合単語列データの単語の照合タイプに基づいて、該単語列データと該近似辞書照合単語列データとに所定の重みを付与し、さらに、該単語列データと該近似辞書照合単語列データの単語の近似文字状況に応じて文字混同確率記憶手段331または読み・漢字対応記憶手段332を参照して、該単語列データと該近似辞書照合単語列データとに重みを付与し、重み付け単語列データを出力する近似タイプ重み付け手段310と、
重み付け単語列データの各位置に存在する単語候補について、統計的言語モデル記憶手段340を参照して、
Figure 2011065384
(但し、Sは入力文、Fは入力文Sをn個の表記列に分割したもの、Tは表記列Fの各表記に付与される品詞列であり、Pweight(F,T)は、 近似タイプ重み付け手段310で付与される重みを考慮したときの表記列Fおよび品詞列Tの同時確率)
の同時確率が最大化となる最尤単語列を修正済み単語列データとして出力する単語列確率計算手段320を有する。
また、本発明(請求項2)は、請求項1の近似タイプ重み付け手段310において、
照合タイプを、
単語列データの単語と単語辞書との「完全一致」、近似辞書照合単語列データの文字列が辞書登録語の表記の一部文字列から置換された形で出現している「置換」、該近似辞書照合単語列データの文字列が辞書登録語の表記に任意の文字が挿入されている「挿入」、該近似辞書照合単語列データの文字列が辞書登録語の表記から任意の文字が削除された形で出現している「削除」とし、各照合タイプ毎に予め決められた重みを設定する。
また、本発明(請求項3)は、請求項1の文字混同確率記憶手段における前記文字混同確率を、別の文字が
(1)ある文字と母音または子音が共通しており、かつ、文字種(ひらがなまたはカタカナ)が共通している場合、
(2)ある文字と同音の文字である場合、
(3)ある文字と形が似ていて文字種が異なる文字である場合、
(4)ある文字の母音部分が落ちた文字である場合、
(5)伏せ字を表す記号である場合、
(6)任意の文字の削除または挿入に対応する場合
のいずれかの条件を満たす場合に値が大きくなるように設定する。
図2は、本発明の原理を説明するための図である。なお、ステップS1とステップS2は並列に実行しても良いし、ステップS2を実行した後、ステップS1を実行する形式としても良い。
本発明(請求項4)は、誤字や脱字が含まれる入力テキストを形態素解析するための誤字脱字対応テキスト解析方法であって、
辞書登録語での出現文字と入力文での出現文字で変化があった箇所の状況である近似文字状況毎に、ある文字が別の文字に混同されやすさを数値化した文字混同確率を格納した文字混同確率記憶手段と、
ある読みに対する漢字を格納した読み・漢字対応記憶手段と、
統計的言語モデルを格納した統計的言語モデル記憶手段と、を有するコンピュータが、
入力テキストを形態素解析して単語列データを出力する形態素解析ステップ(ステップ1)と、
入力テキストの単語の所定の文字長の単語について近似照合し、近似辞書照合単語列データを出力する近似辞書照合ステップ(ステップ2)と、
単語列データと近似辞書照合単語列データを用いて誤字脱字修正を行う誤字脱字修正ステップ(ステップ3)と、を行い、
誤字脱字修正ステップ(ステップ3)では、
単語列データと近似辞書照合単語列データの単語の照合タイプに基づいて、該単語列データと該近似辞書照合単語列データとに所定の重みを付与し(ステップ301)、さらに、該単語列データと該近似辞書照合単語列データの単語の近似文字状況に応じて文字混同確率記憶手段または読み・漢字対応記憶手段を参照して、該単語列データと該近似辞書照合単語列データとに重みを付与し、重み付け単語列データを出力する近似タイプ重み付けステップ(ステップ302)と、
重み付け単語列データの各位置に存在する単語候補について、統計的言語モデル記憶手段を参照して、
Figure 2011065384
(但し、Sは入力文、Fは入力文Sをn個の表記列に分割したもの、Tは表記列Fの各表記に付与される品詞列であり、Pweight(F,T)は、 近似タイプ重み付け手段310で付与される重みを考慮したときの表記列Fおよび品詞列Tの同時確率)
の同時確率が最大となる最尤単語列を修正済み単語列データとして出力する単語列確率計算ステップ(ステップ303)を行う。
また、本発明(請求項5)は、請求項4の近似タイプ重み付けステップ(ステップ301)において、
照合タイプを、
単語列データの単語と単語辞書との「完全一致」、近似辞書照合単語列データの文字列が辞書登録語の表記の一部文字列から置換された形で出現している「置換」、該近似辞書照合単語列データの文字列が辞書登録語の表記に任意の文字が挿入されている「挿入」、該近似辞書照合単語列データの文字列が辞書登録語の表記から任意の文字が削除された形で出現している「削除」とし、各照合タイプ毎に予め決められた重みを設定する。
また、本発明(請求項6)は、請求項4の文字混同確率記憶手段における前記文字混同確率を、別の文字が
(1)ある文字と母音または子音が共通しており、かつ、文字種(ひらがなまたはカタカナ)が共通している場合、
(2)ある文字と同音の文字である場合、
(3)ある文字と形が似ていて文字種が異なる文字である場合、
(4)ある文字の母音部分が落ちた文字である場合、
(5)伏せ字を表す記号である場合、
(6)任意の文字の削除または挿入に対応する場合、
のいずれかである場合に値が大きくなるよう設定する。
本発明(請求項7)は、請求項1乃至3のいずれか1項に記載の誤字脱字対応テキスト解析装置を構成する各手段としてコンピュータを機能させるための誤字脱字対応テキスト解析プログラムである。
上記のように本願発明では予め従来の形態素解析処理により1通りの解析結果を得ておき、その単語列と、近似辞書照合処理による誤字脱字を考慮した単語照合候補を組み合わせることで、入力文中に含まれる誤字脱字を考慮した形態素解析を実行することが特徴である。特に、通常の形態素解析と近似辞書照合を独立に行って通常の形態素解析による単語列を1通り確定させておき、後から近似辞書照合による単語候補と組み合わせて(1)式の同時確率を最大化することが特長である。これにより、
・考慮すべき単語候補を抑制しながら効率よく高速に形態素解析処理を行う;
・既存の形態素解析技術の辞書照合処理部に直接近似辞書照合処理を組み込む手段と比
較すると、本手段では既存の形態素解析処理の後付の修正処理として独立させることができるため、既存の形態素解析システムの改変に伴うコストが低く抑えられる;
という効果がある。
本発明の原理構成図である。 本発明の原理を説明するための図である。 本発明で用いる位置と入力との関係を示す図である。 本発明の一実施の形態における誤字脱字対応テキスト解析装置の構成図である。 本発明の一実施の形態における形態素解析部から出力される単語列データ(JTAGの解析例)である。 本発明の一実施の形態における近似辞書照合単語列データの例である。 本発明の一実施の形態における近似辞書照合部200の構成図である。 近似辞書照合部200の一実施の形態における削除キーワードとその値の一例を示す図である。 近似辞書照合部200の一実施の形態におけるスキップ入力/スキップ辞書照合アルゴリズムを示す図である。 近似辞書照合部200の一実施の形態における抽出されたキーワード候補の一例を示す図である。 近似辞書照合部200の一実施の形態におけるスキップ入力の一例を示す図である 近似辞書照合部200の一実施の形態における抽出されたキーワード候補の他の例を示す図である。 近似辞書照合部200の一実施の形態におけるトライ構造による入力文字列照合アルゴリズムを示す処理の流れ図である。 近似辞書照合部200の一実施の形態におけるトライ構造によるスキップ入力照合アルゴリズムを示す処理の流れ図である。 近似辞書照合部200の一実施の形態における重複削除アルゴリズムを示す処理の流れ図である。 近似辞書照合部200の一実施の形態における重複削除後の抽出されたキーワードの一例を示す説明図である。 近似辞書照合部200の一実施の形態における重複削除後の抽出されたキーワードの他の例を示す図である。 本発明の一実施の形態における文字テーブルの例である。 本発明の一実施の形態における重みつき単語列データの例である。 本発明の一実施の形態における修正済み単語列データの例である。 本発明の一実施の形態における重みつき単語列データの文字位置との対応図である。 本発明の一実施の形態における誤字脱字対応テキスト解析装置の他の構成例である。
以下、図面と共に本発明の実施の形態を説明する。
まず始めに、本願発明の実施の形態を説明する上で必要となる幾つかの用語を定義する。
「位置」とは、入力文の文字と文字の間を指し、0から始まり、文頭から文末まで1文字ずつ増えていく数字である。例えば、入力文が「NTTから請求書が3通届いた」の時、各位置と入力文との関係は、図3のようになる。「位置3」とは「T」と「か」の間を指す。位置が入力文の文字数と一致した時が文末に達した時である。図3の例では「位置14」に達していれば文末と判断する。
各位置における、その位置の直後の文字から始まる単語候補をその位置の「右側単語候補」、と呼ぶ。また、その位置の直前の文字で終了する単語候補をその位置の「左側単語候補」と呼ぶ。例えば、「位置5」の右側単語候補は「請求/動詞語幹」「請求書/名詞」、左側単語候補は「から/格助詞」がある。
また、誤字脱字を含むテキストに対して近似辞書照合した時の照合タイプを置換、挿入、削除の3種類で定義する。以後、それぞれの照合タイプを、「REP」、「INS」、「DEL」で表す。また、これらの照合について、辞書登録語での出現文字と入力文での出現文字で変化があった箇所の状況を、「近似文字状況」と呼ぶことにし、「辞書での文字→入力文での文字」と表す。
「REP」は、テキスト中の文字列が、辞書登録語の表記の一部文字列から置換された形で出現していたことを意味しており、例えば「MTTから」という文字列の「MTT」は「NTT/名詞」という辞書登録語の1文字置換(1文字目のNがMに置換)である。近似文字状況は「N→M」である。
「INS」は、テキスト中の文字列が、辞書登録語の表記に任意の文字が挿入された形で出現していたことを意味しており、例えば「NMTTから」という文字列の「NMTT」は「NTT/名詞」という辞書登録語の1文字挿入(1文字目直後にMが挿入)である。近似文字状況は「→M」である。この場合、辞書登録語の表記には存在しなかった文字「M」が新たに出現している。
「DEL」は、テキスト中の文字列が、辞書登録語の表記から任意の文字が削除された形で出現していたことを意味しており、例えば「TTから」という文字列の「TT」は、「NTT/名詞」という辞書登録語の1文字削除(1文字目のNが削除)である。近似文字状況は「N→」である。この場合、辞書登録語の表記の「N」が消失している。
本願発明では、以後、説明の簡略化のため、挿入削除置換ともに各単語、1文字1箇所のみ発生した場合を想定して説明することとする。なお、従来の形態素解析処理によって得た単語列は、いずれも近似照合を考慮していない単語候補であることから、照合タイプを完全一致(以後、EMと表す)であると考える。結局、本願発明では、単語候補の辞書照合タイプを、「REP」、「INS」、「DEL」、「EM」の4種類で分類し、前者3種類は近似辞書照合結果から獲得し、4つ目の「EM」は従来の形態素解析処理結果から獲得するものとする。
本願発明の装置の構成、および、各処理部が実施する処理とその入出力を図4に示す。
図4は、本発明の一実施の形態における誤字脱字対応テキスト解析装置の構成を示す。
同図に示す誤字脱字対応テキスト解析装置は、形態素解析部100、近似辞書照合部200、誤字脱字修正部300から構成される。誤字脱字修正部300は、近似タイプ重み付け部310、単語列確率計算部320、文字テーブル330、統計的言語モデル記憶部340を有する。このうち、文字テーブル330と統計的言語モデル記憶部340は、ハードディスク装置等の記憶媒体である。
以下に各構成要素の処理内容を説明する。
●形態素解析部100:
形態素解析部100は、入力文(a)を形態素解析して単語列データ(b)を出力するものである。既存の任意の形態素解析処理システムを利用してよい。例えば「○TTから精求書が3通届いた」という入力文に対して、得られる形態素解析結果、即ち単語列データ(b)の状況を図5に示す。図5に示す表はJTAGを利用した場合の形態素解析結果を示したものである。形態素解析システムによって、結果が多少異なる。図5の例では「○TT」のような伏字、「精求書」のような誤字が含まれた入力文のため、形態素解析処理で、「○TT」が「○/記号」と「TT/Alphabet」へ、「精求書」が「精/名詞」「求/Kanji」「書/名詞接尾辞」へと分割されている。なお、「TT/Alphabet」「求/Kanji」は、それぞれ英字、漢字の未知語であることを意味しており、既存の形態素解析処理では、本来の単語ではなく別の辞書登録語や未知語を使って誤った解析結果を出力することがしばしばあることがわかる。なお、ここで得られる単語列データ(b)は既存の形態素解析処理が出力する1つの最尤単語列である。また、形態素解析で利用する単語辞書に対して完全一致の単語のみが得られる。またこれらの単語の照合タイプは全て「EM」である。
●近似辞書照合部200:
近似辞書照合部200は、形態素解析部100の処理と同じ入力文(a)に対して近似辞書照合処理を実行して近似辞書照合単語列データ(c)を出力する。この処理も既存の任意の近似辞書照合処理システムを利用してよい。本稿では後述する近似辞書照合システムを利用した。この処理で利用する辞書は、形態素解析部100で利用する単語辞書(図示せず)から作成するものである。ただし、全ての文字長の単語を近似辞書照合すると照合する文字列が爆発するため、ここでは文字長3以上の単語に限定する。つまり、形態素解析処理の文字長3以上の単語辞書に対して、挿入・置換・削除された文字列を辞書照合する。また、1文字置換、2文字置換など、何文字までの近似照合を許すかについても色々状況が考えられるが、ここでは1文字までの近似照合に限定して説明する。近似辞書照合単語列データ(c)の例を図6に示す。
本願発明で利用する後述する近似辞書照合では、照合結果として照合した元キーワード、照合開始位置、照合終了位置、誤り開始位置、誤り文字数、一致タイプを出力する。照合開始位置、照合終了位置は入力文における位置、誤り開始位置は照合した元キーワードにおける位置である。図6ではこれらの情報のうち、1列目記載の"位置"は照合開始位置を表す。3列目記載の"照合単語"は、元キーワードである「表記/品詞」、一致タイプである「照合タイプ」、および、誤り開始位置を連結して「表記/品詞/照合タイプ/誤り開始位置」を表す。2列目記載の"入力文の照合文字"は参考情報であるが、実際には照合開始位置と照合終了位置を利用して入力文から容易に生成できる。
近似文字状況「辞書での文字→入力文での文字」は、誤り開始位置と元キーワード、および照合開始位置と入力文を利用して参照できる。たとえば、位置0で照合した「NTT/名詞/REP/0」では、辞書中の文字が元キーワードの誤り開始位置0の「N」であり、入力文中の文字は、照合開始位置が0で、誤り開始位置が0のため入力文の0+0の位置にある「○」となり、近似文字状況は「N→○」であることがわかる。また、照合タイプが「DEL」では、近似文字状況の入力文での文字がカラとなる。例えば、位置3で照合した「からし/名詞/DEL/2」では、辞書中の文字が元キーワードの誤り開始位置2の「し」であり、近似文字状況は「し→」(しが削除された)となる。図6には実例が無いが照合タイプが「INS」の場合は逆に辞書での文字がカラとなり「→入力文での文字」という形になる。
当該近似辞書照合技術の具体的な手法を以下に示す。
図7は本発明の近似辞書照合部200の実施の形態の一例を示すもので、スキップ辞書作成部10、スキップ辞書記憶部20及びキーワード抽出部30から構成される。なお、本明細書では、キーワードの最大削除文字数と入力文字列の最大スキップ幅は等しく、Nと表記する。
また、近似辞書照合部200は、CPUや、メモリ等の記憶手段を備えたコンピュータに、スキップ辞書作成部10、及びキーワード抽出部30の機能を実現するためのプログラムを搭載することにより実現可能である。また、スキップ辞書を別の装置等で作成し、それをスキップ辞書記憶部20に記憶することとすれば、コンピュータにキーワード抽出部30の機能を実現するためのプログラムを搭載することによりキーワード抽出手段を備えた近似辞書照合部200を実現できる。また、当該プログラムは、可搬メモリ等の記憶媒体に格納しておき、そこからコンピュータにインストールすることが可能である。
スキップ辞書作成部10は、予め与えられたキーワードに対して、キーワード毎に、キーワードそのものと、当該キーワードの全ての文字位置から連続する少なくとも1つの文字を削除した文字列の集合とからなる削除キーワードを含むスキップ辞書を作成する。
スキップ辞書記憶部20は、スキップ辞書作成部10で作成されたスキップ辞書を記憶・保持する。
キーワード抽出部30は、入力文字列とスキップ辞書記憶部20に保持されたスキップ辞書とを照合することにより、入力文字列から予め与えられたキーワード及び当該キーワードに近似したキーワードを抽出し、その出現位置とともに出力する。
以下、前述した各部における処理の詳細について例を挙げて説明する。
≪スキップ辞書作成部≫
スキップ辞書作成部10は、削除キーワード/値生成部11、削除キーワード/値一時記憶部12及びトライ辞書作成部13からなり、抽出したいキーワードとして予め人手によりリストアップされたキーワードの集合であるキーワード辞書からスキップ辞書を作成し、スキップ辞書記憶部20に格納する。
<削除キーワード/値生成部>
削除キーワード/値生成部11では、予め用意されたキーワード辞書中の各キーワードに対して、まず、キーワードそのものと、当該キーワードの全ての文字位置pkから連続するwk字(1≦wk≦N:Nはキーワードの削除最大文字数)を削除した文字列の集合とからなる削除キーワードを作成し、削除キーワード/値一時記憶部12に記憶する。
その際、削除文字位置pk、削除文字数wk及び当該削除キーワードの元となったキーワードである元キーワードの組を値として生成し、その削除キーワードに対応させて削除キーワード/値一時記憶部12に記憶する。削除キーワードが元キーワードそのものである場合、wkは0である。pkは何を代入しても良いが、ここでは空欄とする。例えば、最大削除文字数N=2の場合、「オリンピック」というキーワードからは、図8に示す12個の削除キーワードとその値が生成される。
もちろん、これは全てのキーワードに対して行わなくても良く、ある一定の長さ以上(例えば、4文字以上)の長さのキーワードに対してのみ、削除キーワードを作成しても良い。
<トライ辞書作成>
トライ辞書作成13では、削除キーワード/値一時記憶部12から削除キーワード/値生成部11が生成した削除キーワードと当該削除キーワードに対応する値を読み出し、トライ構造に変換して辞書を作成する。
すなわち、トライ辞書作成13は、削除キーワード/値一時記憶部12から削除キーワード/値生成部11が生成した削除キーワードと当該削除キーワードに対応する値を読み出し、キーワードの各文字を枝とし、キーワード毎に異なる値を保持可能なノードを含む、キーワードの共通接頭辞を併合した木構造であるトライ構造に変換してスキップ辞書を作成する。
後述するスキップ入力/スキップ辞書照合部でAC法を用いる場合、さらにfailure関数、output関数を定義する。これを全てのキーワードについて行い、スキップ辞書としてスキップ辞書記憶部20に格納する。
≪キーワード抽出部≫
キーワード抽出部30は、スキップ入力/スキップ辞書照合部31、照合結果一時記憶部32及び重複削除部33からなり、誤字や脱字を含む入力文字列とスキップ辞書記憶部20に格納されたスキップ辞書とからキーワードを抽出し、その出現位置及び値とともに出力する。
<スキップ入力/スキップ辞書照合部>
まず、スキップ入力/スキップ辞書照合部31では、入力文字列とスキップ辞書記憶部20に格納されたスキップ辞書とを照合して、キーワードの侯補を抽出する。スキップ入力/スキップ辞書照合のアルゴリズムを図9に示す。なお、ここで抽出したキーワードは、
・EM:キーワードが入力文字列中に完全一致で出現
・DEL:入力文字列に削除文字(脱字)が存在する状態でキーワードと一致
・INS:入力文字列に挿入文字が存在する状態でキーワードと一致
・REP:入力文字列に置換文字(誤字)が存在する状態でキーワードと一致
の4つの一致タイプに分類される。
(1)入力文字列とスキップ辞書の照合
まず、入力文字列とスキップ辞書を照合する(ステップs21)。この照合アルゴリズムは、通常のトライ辞書照合、AC法による照合のどちらを用いても良い。また、これら以外の照合アルゴリズムを用いることもできる。
次に、スキップ辞書と一致した全てのキーワード侯補について、以下のステップs22とステップs23の処理を繰り返す。
削除キーワードの削除文字数wkが0ならば、一致タイプをEMとして、当該一致タイプ、入力文字列における一致開始位置、終了位置、誤り開始位置、誤り文字数、元キーワードを出力して照合結果一時記憶部32に記憶する(ステップs22)。
削除キーワードの削除文字数wkが0より大きければ、一致タイプをDELとして、当該一致タイプ、入力文字列における一致開始位置、終了位置、誤り開始位置、誤り文字数、元キーワードを出力して照合結果一時記憶部32に記憶する(ステップs23)。
上記のステップs22、s23において、一致タイプがEMであれば、誤り開始位置、誤り文字数はどちらも常に0となり、一致タイプがDELであれば、誤り開始位置、誤り文字数は、それぞれ削除キーワードの削除文字位置pk、削除文字数wkである。
例えば、文1『第29回夏季オリンピックは、2008年8月8日から中国北京で開催される』と、スキップ辞書とを照合すると、図10に示すキーワード侯補が得られる。
(2)スキップ入力とスキップ辞書の照合
ここでは、まず、入力文字列の全ての位置から少なくとも1つの文字をスキップ、詳細には絶対スキップ位置pを一つずつ増加させながらスキップ幅wi字(1≦wi≦N)をスキップさせた文字列を作成する(ステップs24)。これをスキップ入力と呼ぶ。例えば、文1第29回夏季オリンピックは、2008年8月8日から中国北京で開催される』についてスキップ入力を作成すると、図11に示す文字列が得られる。
次に各スキップ入力とスキップ辞書とを照合する(ステップs25)。なお、スキップ入力を作成せず、スキップ辞書との照合時に、入力文字列を直接スキップしながら照合することも可能である。
続いて、スキップ辞書と一致した全てのキーワード侯補について、ステップs26〜s29の処理を繰り返す。
まず、ステップs26において、キーワードの一致開始位置iと絶対スキップ位置pから、キーワード上での相対スキップ位置pi=p−iを算出する。
そして、pi≧0かつpi≦削除キーワードの文字列長であるか否かが判定され(ステップs27)、pi≧0かつpi≦削除キーワードの文字列長であればステップs28に進み、pi≧0かつpi≦削除キーワードの文字列長でなければ次のキーワード候補の処理を行う。
pi≧0かつpi≦削除キーワードの文字列長である場合において、もし、削除キーワードの削除文字数wkが0ならば、一致タイプをINSとして、当該一致タイプ、入力文字列における一致開始位置、終了位置、誤り開始位置、誤り文字数、元キーワードを出力して照合結果一時記憶部32に記憶する(ステップs28)。
もし、削除キーワードの削除文字数wkが0より大きく、かつ入力文字列の相対スキップ位置piと削除キーワードの削除文字位置pkが等しく、かつ入力文字列のスキップ幅wiと、削除キーワードの削除文字数wkが等しければ、一致タイプをREPとし、当該一致タイプ、入力文字列における一致開始位置、終了位置、誤り開始位置、誤り文字数、元キーワードを出力して照合結果一時記憶部32に記憶する(ステップs29)。
ステップs28、s29において、誤り開始位置、誤り文字数は、それぞれスキップ入力の相対スキップ位置pi、スキップ幅wiとなる。
ステップs24から、ステップs26〜s29の繰り返し処理までの処理が入力文字列の絶対スキップ位置p=0から(文字列長−wi)まで繰り返され、当該繰り返しの処理が、入力文字列のスキップ幅wi=1からNまで繰り返される。
例えば、図11のスキップ入力と、キーワード辞書から作成したスキップ辞書を照合すると、図12に示すキーワード侯補が得られる。なお、一致タイプREPが11個出現しているのは、元キーワードと同一の文字への置換が、各文字位置で出現したと解釈しているからである。
(3)トライ構造によるスキップ辞書照合の高速化
図9では入力文字列、スキップ入力の2箇所(ステップs21,ステップs25)でスキップ辞書との照合を行っていた。通常のトライ構造を用いる場合、上記2箇所の照合アルゴリズムをそれぞれ図13,図14に示すようなアルゴリズムを用いることにより、さらに高速にスキップ辞書との照合を行うことができる。
まず、入力文字列とスキップ辞書との照合(図13)では、入力文字列の全ての文字位置(照合開始位置)iにおいて、入力文字列とスキップ辞書をトライ法で照合し、照合に成功したキーワード等を出力する(ステップs31〜ステップs35)とともに、照合に失敗した文字位置jをiと組にして保存しておく(ステップs36)。
つまり、図13に示すように、入力文字列の全ての文字位置iについて、ステップs31〜ステップs36の処理が繰り返される。
まず、キーワード照合位置jを0とし、トライノードnを根ノードとすることにより初期化が行われる(ステップs31)。次に、ノードnの枝に終端記号#があるかどうかの判定がなされ(ステップs32)、終端記号#があれば、根ノードからの経路上の全枝ラベル、値、一致開始位置iが出力される(ステップs33)。
ステップs32の判定において、ノードnの枝に終端記号#がない場合、入力文字列における位置i+jの文字Ci+jがトライノードnから分岐する枝ラベルにあるかどうかの判定がなさる(ステップs34)。
ステップs34において、文字Ci+jがトライノードnから分岐する枝ラベルにない場合、文字位置iと、キーワード照合失敗位置jを対で保存し(ステップs36)、入力文字列の次の文字位置について、ステップs31からの処理を繰り返す。ステップs34において、文字Ci+jがトライノードnから分岐する枝ラベルにある場合、jをj+1とし、nを該当枝先のノードに更新してステップs2に進む(ステップs35)。
ステップs36の処理により、照合開始位置(一致開始位置)i毎に、j−1文字まで照合が成功したことが示される。
スキップ入力とスキップ辞書との照合(図14)では、入力文字列の全ての文字位置(照合開始位置)iにおいて、スキップ入力とスキップ辞書をトライ法で照合する(ステップs43〜ステップs47)が、その際、位置iに対応する保存済みのキーワード照合失敗位置fを取得(正確には、ステップs36で保存したjをfとして取得)する(ステップs41)。
ここで、スキップ入力の絶対スキップ位置pがp<iならば、もしキーワードが一致したとしても、入力文字列との照合で一致済みである。また、p>i+fならば、スキップ位置に至る前に照合が失敗することが明らかである。従って、p<iまたはp>i+fであるかどうかの判定を行い(ステップs42)、p<iまたはp>i+fであれば何もせずに次の文字位置i+1に処理を移す。
p<iまたはp>i+fでなければ、まず、キーワード照合位置jを0とし、トライノードnを根ノードとすることにより初期化が行われる(ステップs43)。次に、ノードnの枝に終端記号#があるかどうかの判定がなされ(ステップs44)、終端記号#があれば、根ノードからの経路上の全枝ラベル、値、一致開始位置iが出力される(ステップs45)。
ステップs44の判定において、ノードnの枝に終端記号#がない場合、入力文字列における位置i+jの文字Ci+jがトライノードnから分岐する枝ラベルにあるかどうかの判定がなさる(ステップs46)。
ステップs46において、文字Ci+jがトライノードnから分岐する枝ラベルにない場合、入力文字列の次の文字位置について、ステップs41からの処理を繰り返す。ステップs46において、文字Ci+jがトライノードnから分岐する枝ラベルにある場合、jをj+1とし、nを該当枝先のノードに更新してステップs44に進む(ステップs47)。
このように、トライ構造との照合アルゴリズムを変更することにより、スキップ入力の照合範囲を限定し、さらに高速な照合を行ってもよい。
<重複削除部>
重複削除部33では、照合結果一時記憶部32からスキップ入力/スキップ辞書照合部31が出力したキーワード侯補の集合を読み出し、重複するものを削除したキーワードの集合を生成して出力する。ここでは、誤り文字数が最小のものだけを選択し、残りのもののうち、入力文字列上で一致したエリアが重なるものは重複と解釈する。重複削除アルゴリズムを図15に示す。
1.まず、キーワード侯補集合Cに、照合結果一時記憶部32から読み出したキーワード侯補の集合(スキップ入力/スキップトライ照合の出力)をセットし、最終的に出力するキーワード集合Kを空集合(Φ)とする(ステップs71)。
2.次に、キーワード侯補集合Cから侯補を一つ(cとする)を取り出す(ステップs74)。この候補cと元キーワードが一致するものを、キーワード侯補集合Cから全て取り出す(ステップs75)。これをCkeysとする。
3.次に、Ckeysから、誤り文字数が最小の侯補を全て取り出し(Cminsとする)、Cminsをキーワード集合Kに加える(ステップs76)。
4.最後に、Ckeysの全てのキーワード侯補について、Cmins中の全てのキーワードの一致開始位置、終了位置と比較して、エリアが重なるものをキーワード侯補集合Cから削除する(ステップs77)。
5.ステップs72〜s74を、キーワード侯補集合Cが空集合になるまで繰り返す(ステップs72)。
6.Kを、最終的なキーワード集合として出力する(ステップs73)。
このように重複を削除することにより、例えば、文1『第29回夏季オリンピックは、2008年8月8日から中国北京で開催される』と、キーワード辞書から作成したスキップ辞書から、図16に示すキーワードだけが残ることになる。つまり、入力文字列の6文字目から、「オリンピック」というキーワードが完全一致で出現したという意味になる。
同様に、文2〜4
文2:『競泳は他の夏季オリンピックと同様に、期間の前半に行われる。』
文3:『中でも注目は男子の100m平泳ぎである。』
文4:『日本はメダルを取れるであろうか。』
と、キーワード辞書から作成したスキップ辞書を用いると、たとえば、図17に示すキーワードが得られる。
以上の近似辞書照合部200により得られる一致タイプ・開始位置・終了位置・元キーワードの情報からは、各入力文中の、何文字目から何文字目が辞書のキーワードと一致したのか、その一致タイプが完全一致・置換・削除・挿入のいずれかであったのかがわかる。また、誤り開始位置・誤り文字数の情報からは、一致タイプが置換・挿入・削除の場合に、照合文字範囲で何文字目から何文字が誤りであったのかがわかる。
本願発明では近似辞書照合部200として上記の手法を利用しているが、同様の機能を有する既存技術があればそれを利用してよい。なお、本願発明ではEMタイプの単語候補は形態素解析部100から取得するため、近似辞書照合部200の出力に「EM」が含まれる場合は対象外とする。
以上のようにして、「EM」ではない3種類の照合タイプ、「REP」、「INS」、「DEL」の近似辞書照合単語列データ(c)を出力として得る。ここで得られるデータは形態素解析部100で得る1種類の単語列データとは違って、同じ位置に複数の単語が存在する。
●誤字脱字修正部300:
誤字脱字修正部300では、形態素解析部100及び近似辞書照合部200にて得られる出力、即ち、単語列データ(b)および近似辞書照合単語列データ(c)を入力として誤字脱字修正を行う。
誤字脱字修正部300は、近似タイプ重み付け部310と単語列確率計算部320を有する。これらの処理をそれぞれ順を追って説明する。
<近似タイプ重み付け部310>
近似タイプ重み付け部310では、単語列データ(b)および近似辞書照合単語列データ(c)に存在する単語について、その照合タイプと近似文字状況の2つの観点から、各単語に重み付けを行う。
[照合タイプに基づく重み付け]
まず、照合タイプに基づく重み付けであるが、例えば、「EM」は1.0、それ以外の「REP」、「INS」、「DEL」については0.1というように、照合タイプ別に任意の値を設定する。この値は、各照合タイプのいずれを優先させるかを制御するものである。本願発明では、形態素解析処理の後付処理としての誤り修正を目的としているため、形態素解析結果である「EM」を最優先させて1.0という重みを設定するが、実際の処理においては、入力文の誤り発生率の高さやその内容に応じて適宜自由に調整する。
[近似文字状況に基づく重み付け]
続いて、近似文字状況に基づいた重み付けを行う。この処理は特に照合タイプ「REP」で利用するものである。ある文字から別の文字への置換の発生しやすさは、文字の内容によって変化する。ここでは電子的に入力されたテキストでの置換を想定することにし、具体的にはキーボードでの文字入力を前提とする。
例えば、ひらがな「か」の近似文字状況では、50音の同じ行に存在するひらがな同士の置換と別の行に存在するひらがな同士の置換では、前者の方が発生しやすい。つまり「か→き」と「か→へ」の置換では前者の方が発生しやすい。また、同じ段に存在するひらがな同士の置換も発生しやすい。つまり、「か→さ」は「か→お」より発生しやすい。これはキーボード入力では、ひらがなをアルファベット表記で入力することが主流であることが原因であり、「か」は「k」+「a」、「き」は「k」+「i」で入力するため、子音部分が共通な文字同士は誤入力されやすい。同様に「さ」は「s」+「a」であるため、母音部分が共通な文字同士は誤入力されやすい。それと比較して、母音部分、子音部分ともに共通でないひらがな「へ」や「お」への置換は発生しにくい。
なお、ある文字が別の文字に混同される現象について、その混同されやすさを数値化したものを文字混同確率と呼ぶ。文字を自動認識するOCRシステムは、文字の形がどのくらい似ているかに基づいた文字混同確率を利用して、文字の形状から正しい文字を判別する。例えば「枝」と「技」は形が似ているので文字混同確率P(枝|技)は高い数値になる。本願発明では形が似ているという特徴ではなく、キーボード入力時の特徴に基づく文字混同確率を考えることとし、また、実際の確率値そのものではなく、何かしらの重み付けされた値として考えて0から1.0の間の数値化し、文字テーブル330の文字混同テーブルに記憶しておく。
図18に文字テーブルの例を示す。同図に示す文字テーブル330は、文字混合テーブル(同図(a))と読み_漢字テーブル(同図(b))を含む。なお、文字混合テーブルでは、テーブルで定義されないケースは「EM」ならば、1.0、「REP」ならば0.1とする。読み_漢字テーブルは、近似文字状況に漢字を含むときに参照される。本願発明では近似文字状況「辞書中の文字→入力文の文字」において、以下の現象の場合は発生しやすい置換と捉えてテーブルに収録した。
なお、近似文字状況「辞書中の文字→入力文の文字」は、近似辞書照合部200にて説明したとおり、誤り開始位置と元キーワード、および照合開始位置と入力文を参照して取得する。
(1)「ひらがな→ひらがな」「カタカナ→カタカナ」
(a) 同行 … 例「か→こ」「チ→テ」
(b) 同段 … 例「ま→さ」「ホ→モ」
(c) 同音文字 … 例「は→わ」「え→へ」「ワ→ハ」「ヘ→エ」
(2)「ひらがな→漢字」「漢字→ひらがな」「漢字→漢字」
(a) 両者の読みが一致する … 例「あ→会」「付→つ」「精→請」
(3)「ひらがな→カタカナ」「カタカナ→ひらがな」
(a) 形が似ている文字 … 例「ヘ→へ」「ぺ→ペ」
(4)「ひらがな→アルファベット」「カタカナ→アルファベット」
(a) 行の子音が共通 … 例「か行の文字→k」「サ行→s」「だ行→d」
(5)「任意の文字→記号」
(a) 記号が●または○ … 例 「N→○」
(6)「任意の文字→」「→任意の文字」
近似タイプがDEL(文字の削除)またはINS(文字の挿入)
(1)は上述の、ひらがなでのキーボード入力で、母音または子音が共通である50音表同段・同行同士は混同されやすいことを反映している。また、カタカナでも同様である。これらは50音表での配置に基づいて機械的に文字混同テーブルを作成する。図18では同行と同段では重み係数に差をつけている。また、(c){は、わ}の同音文字は(b)同段のサブセットであるが、より発生しやすいと考えて重みを強くしている。このような重み付け係数の粒度は自由に設計すればよい。
(2)は近似文字状況の一部又は全体が漢字であった場合、同音の文字同士は混同されやすいことを反映している。この場合の文字混同テーブルは別途漢字の読み単位で収録した読み_漢字テーブルを参照し、同一エントリにある任意のペアを対象とする。図18(b)に読み_漢字テーブルの例を示しているが、「あ」という読みに対応する漢字一覧が収録されているエントリから、任意のペア{あ、会}、即ち「あ→亜」「亜→あ」という近似文字状況や、{会、合}、即ち「会→合」「合→会」という近似文字照合のペアを対象として重み付け係数を1.0に設定する、ということを意味している。このような読み_漢字テーブルは、既存の漢字辞書からも作成できるし、形態素解析で利用する単語辞書の1文字漢字エントリから作成しても良い。
(3)は形の似ている一部のひらがなとカタカナを対称としたものであり、キーボードでの変換時に入力者がその違いに気が付きにくいという特徴を反映したものである。具体的にはカタカナの「ヘ」とひらがなの「へ」の違いであり、それぞれの濁音、半濁音も対象となる。
(4)はキーボード入力時にアルファベット入力の子音+母音のうち母音部分が落ちてしまうものであり、「す」の「s」+「u」が「s」だけになってしまった状態を反映したものである。これらを全ての行について考慮する。
(5)は伏字によく現れる現象を反映したものであり、「NTT」が「○TT」と書かれるときの「N→○」の近似文字状況に相当する。
(6)は照合タイプがDELとINSに関わるものであり、任意の文字の削除または挿入を考慮するものである。
以上のようにキーボード入力を想定することにより、文字テーブル330の文字混同テーブルを設計し、それぞれの重み係数を任意に調整する。ここでは主に、50音表の配置、漢字の読み、アルファベット入力の状況を考慮してテーブルを設計しているが、更にキーボードのキー配置を考慮して近い位置にある子音同士は混同されやすいといった状況を反映したテーブルを作成するやり方もある。また重み係数も近似文字状況の種類に応じて適宜調整し、細かく振り分けてもよい。本願発明では、このテーブルで定義されてない近似文字状況では、照合タイプが「EM」ならば一律に1.0、照合タイプが「REP」ならば一律に0.1を付与することとする。これらも適宜値を調整したり、別途定義すればよい。
以上の2種類の重み付け処理を実行して出力される重みつき単語列データを図19に示す。各位置において該当する右側単語候補が存在する場合は、右側単語候補(「表記/品詞」)と、照合タイプと、本処理で取得した2種類の重みを対応つけて「表記/品詞/照合タイプ/照合タイプ重み/文字混同重み」として記録する。単語候補は、形態素解析処理の出力である単語列データに由来するものと、近似辞書照合処理の出力である近似辞書照合単語列データに由来するものが合わさったものとなる。単語列データに由来する重みつき単語では、照合タイプは自動的に全てEMが付与される。
既に述べたとおり、照合タイプ重みは、「EM」は1でそれ以外の「REP」、「INS」、「DEL」では一律0.1となっている。また、文字混同重みは、文字テーブル330の文字混同テーブルと、読み_漢字テーブルを適宜参照して取得する。図19中で下線のある重みつき単語は、近似辞書照合単語列データに由来する照合タイプ「REP」のもののうち、文字混同テーブルに定義されているために比較的高い重みがついている候補である。「NTT/名詞」は文字混同テーブルの(5)(「N→○」)、「請求書/名詞」は文字混同テーブルの(2)で読み_漢字テーブルの同一エントリにあるペア(「請→精」)であることから高めの重みが付いている。
これらの重みの役割は、「EM」以外の「REP」、「INS」、「DEL」として出力された単語候補の中から、より有望なものは残し、残りに低いスコアを割り当ててふるい落とすことにある。近似辞書照合では任意の近似文字状況を対象とするために、1文字違いの単語候補といっても場合によっては大量に照合結果が存在し、近似辞書照合単語列データが膨大なものになることがよくある。これらを全て一律に候補として扱うのでは、本来期待する修正単語を発見するのが困難である。そこで、文字混同確率という枠組みを利用してより発生しやすい近似文字状況を優位にすることで有望な修正候補を浮かび上がらせることを目的としている。
<単語列確率計算部320>
単語列確率計算部320では、近似タイプ重み付け部310が出力した重みつき単語列データ(d)を入力とし、統計的言語モデルを参照して単語列毎の重みを考慮した表記列と品詞列の同時確率Pweight(F,T)を最大化するような単語分割(最尤単語列)を1つ出力するものである。この出力が、修正済単語列データ(e)となる。
この処理は、各位置に存在する単語候補を利用して最尤単語列を出力することから従来の形態素解析処理と同等の処理が利用できる。ただし、唯一異なる点は、(1)式の確率値の計算において、近似タイプ重み付け部310で付与した重み(照合タイプ重みと文字混同重み)を加味することである。近似タイプ重み付け部310では、前述のようにより発生しやすい近似文字状況を優位にするよう重み付けを行っている。この重みを考慮することにより、「EM」、「REP」、「INS」、「DEL」という各照合タイプや近似文字状況に基づいて単語候補自身としての尤もらしさを考慮した状態で、最尤となる単語候補を求めることができる。
例えば、単純に単語bigramモデルとを利用する場合、下記(2)、(3)式を満たす最尤単語列を修正単語列データ(e)として求めればよい。
Figure 2011065384
Figure 2011065384
上記(3)式では、単語のbigram確率の積でPweight(F,T)を近似している。ここで、Sは入力文、Fは入力文Sをn個の表記列に分割したもの、Tは表記列Fの各表記に付与される品詞列であり、Pweight(F,T)は、 近似タイプ重み付け手段310で付与される重みを考慮したときの表記列Fおよび品詞列Tの同時確率である。また、weight1,iおよびweight2,iは、それぞれ近似タイプ重み付け手段310で付与される2つの重み(照合タイプ重みと文字混同重み)をそれぞれ示す。この場合は単語のbigram確率を記憶した単語bigramモデルを準備しておき、各位置での左側単語と右側単語のbigram確率を計算しながら動的計画法を用いて文全体で確率最大となる単語列を求めればよい。その際、左側単語と右側単語のbigram確率計算と併せて両単語の2つの重み、即ち、照合タイプ重みと文字混同重みとを積算し、実際のbigram確率に重みを付与していけば、重みを考慮した単語bigram確率を算出できる。
従来の形態素解析技術における(1)式を最大化する最尤単語列を求める手法については既に数多くの研究が進んでおり、予め大量の正解データから学習した統計的言語モデルに基づいて(1)式を最大化する手法が成功を収めている。統計的言語モデルの種類としては、隠れマルコフモデルなどの生成モデルや、条件付確率場などの識別モデル、あるいは単語bigramモデル、単語trigramモデル、品詞bigramモデル、品詞trigramモデルなどの言語モデルを利用することができる。(2)式は重みを考慮している点を除いては(1)式と同等と考えることができるので、本件発明における統計的言語モデルは、上述の単語bigramモデルに限定されるものではなく、(3)式を変更することにより上述のような様々なモデルを利用することができる。
以上は、形態素解析を実現する統計的手法の1例であるが、本処理においては、そのほかに品詞ngram確率を考慮したり、モデルの学習データ不足によるスパースネス問題を回避するためのモデルの平滑化を取り入れたり等、既存の統計的手法に基づく形態素解析処理の技術をそのまま利用してよい。ただし、(1)式の同時確率P(F,T)に対して各単語候補の重みを積算した形で最尤単語列候補を求める点のみが変更点である。
図20に修正済み単語列データ(e)を示す。統計的言語モデルと、重みを考慮して、最終的に最尤と判断された単語列が1種類出力される。各単語は、「表記/品詞/照合タイプ」の形式で示している。下線が実際に修正のあった単語であり、初期の形態素解析で「○/記号」と「TT/Alphabet」と解析されていた箇所が「NTT/名詞」(REP)、「精/名詞」「求/Kanji」「書/名詞接尾辞」と解析されていた箇所が「請求書/名詞」(REP)として修正されている。
ところで、本願発明では、形態素解析処理と近似辞書照合処理を独立に実行し、前者由来の1種類の単語列と、後者由来の単語列を組み合わせて全体の単語候補としている。この処理の利点として、効果的に単語候補の数を絞り込めるというものがある。これは、各位置での左側単語候補と右側単語候補を考慮する際に、いずれかが全く存在しない文字位置では確率計算の処理をスキップできるからである。
図21に重みつき単語列データを文字位置との対応が分かるように図示した。最上段に位置情報を示し、その下に重みつき単語データの表記のみを抜粋して対応する位置がわかるような形で図示している。位置情報直下にあるのは形態素解析処理由来の単語列であり、その下は近似辞書照合由来の単語列となっている。近似辞書照合由来の単語の下線部分は「REP」、「DEL」などの近似照合が発生した箇所であることを示している。また、各単語の前後の接続状況が分かるように、点線を記載した。これは、同じ位置から始まる(または同じ位置で終わる)単語を識別しやすくしたものである。例えば
Figure 2011065384
は、「N」が置換された文字であり位置0から3の範囲で照合する。また
Figure 2011065384
は「N」が削除された文字であり位置1から3の範囲で照合する。
このように単語列が各位置に配置された状態で、文全体の単語列を生成する際、近似辞書照合由来の単語候補の中には、前後に単語が存在せずに単語列として繋がりえないものが存在する。図21中では「位置2」から始まり「位置5」で終わる「REP」の単語であり、二重線で囲った。これらの単語は「位置2」で終わる単語候補が存在しないため、本処理での確率計算においては「位置2」での処理をスキップしても問題がない。そのため「位置2」の右側単語候補は確率計算処理では対象とならず、処理量が軽減される。図21中のその他の単語は、それ自身が開始する位置、および、終了する位置に、必ず別の単語が存在するために、確率計算処理の対象となる。この効果は、形態素解析処理由来の単語列を1種類のみ採用したことによる。形態素解析処理の結果では2文字以上の単語が出現することが多い。そのため、そのような複数文字長の単語の途中から発生している、または、途中で終了する近似辞書照合由来の単語は、前後に繋がる単語が存在しない可能性があり、これらは確率計算処理の対象外にできるからである。もし、近似辞書照合処理を形態素解析処理本体の辞書照合部分に組み込んだ場合、全ての文字位置での辞書照合を実行する必要があるためこのような効率的な候補の絞込効果は期待できない。
もう一つ、形態素解析処理と近似辞書照合処理を独立させたことによる効果は、この実行形態であれば、本願発明を既存の形態素解析処理の出力結果を修正する後処理とみなすことができるため、既存の形態素解析処理に単純につなげることが可能となるという点があげられる。この実行形態であれば、近似辞書照合処理を形態素改正処理本体の辞書照合部分に直接組み込む形態と比較して、既存のシステムの処理内部を改造する必要が無く、システム改変のコストを低く抑えられるという効果が期待できる。
なお、上記の形態素解析部100と近似辞書照合部200を、図22に示すように、それぞれ形態素解析装置100、近似辞書照合装置200として、誤字脱字対応テキスト解析装置の外部に設けることも可能である。この場合、形態素解析装置100、近似辞書照合装置200は、上記のように、それぞれ独立して処理を行い、形態素解析装置100は単語列データを、近似辞書照合装置200は近似辞書照合単語列データを誤字脱字対応テキスト解析装置の近似タイプ重み付け部310に入力する。
なお、上記の図4、または、図22に示す誤字脱字対応テキスト解析装置の各構成要素の動作をプログラムとして構築し、誤字脱字対応テキスト解析装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
また、構築されたプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
10 スキップ辞書作成部
11 削除キーワード/値生成部
12 削除キーワード/値一時記憶部
13 トライ辞書作成部
20 スキップ辞書記憶部
30 キーワード抽出部
31 スキップ入力/スキップ辞書照合部
32 照合結果一時記憶部
33 重複削除部
40 フィルタリング部
50 表示部
60 入力部
70 表示制御部
100 形態素解析手段、形態素解析部、形態素解析装置
200 近似辞書照合手段、近似辞書照合部、近似辞書照合装置
300 誤字脱字修正手段、誤字脱字修正部、誤字脱字対応テキスト解析装置
310 近似タイプ重み付け手段、近似タイプ重み付け部
320 単語列確率計算手段、単語列確率計算部
330 文字テーブル
331 文字混同確率記憶手段
332 読み・漢字対応記憶手段
340 統計的言語モデル記憶手段、統計的言語モデル記憶部

Claims (7)

  1. 誤字や脱字が含まれる入力テキストを形態素解析するための誤字脱字対応テキスト解析装置であって、
    辞書登録語での出現文字と入力文での出現文字で変化があった箇所の状況である近似文字状況毎に、ある文字が別の文字に混同されやすさを数値化した文字混同確率を格納した文字混同確率記憶手段と、
    ある読みに対する漢字を格納した読み・漢字対応記憶手段と、
    統計的言語モデルを格納した統計的言語モデル記憶手段と、
    前記入力テキストを形態素解析して単語列データを出力する形態素解析手段と、
    前記入力テキストの単語の所定の文字長の単語について近似照合し、近似辞書照合単語列データを出力する近似辞書照合手段と、
    前記単語列データと前記近似辞書照合単語列データを用いて誤字脱字修正を行う誤字脱字修正手段と、を有し、
    前記誤字脱字修正手段は、
    前記単語列データと前記近似辞書照合単語列データの単語の照合タイプに基づいて、該単語列データと該近似辞書照合単語列データとに所定の重みを付与し、さらに、該単語列データと該近似辞書照合単語列データの単語の近似文字状況に応じて前記文字混同確率記憶手段または読み・漢字対応記憶手段を参照して、該単語列データと該近似辞書照合単語列データとに重みを付与し、重み付け単語列データを出力する近似タイプ重み付け手段と、
    前記重み付け単語列データの各位置に存在する単語候補について、前記統計的言語モデル記憶手段を参照して、
    Figure 2011065384
    (但し、Sは入力文、Fは入力文Sをn個の表記列に分割したもの、Tは表記列Fの各表記に付与される品詞列であり、Pweight(F,T)は、 前記近似タイプ重み付け手段で付与される重みを考慮したときの表記列Fおよび品詞列Tの同時確率)
    の同時確率が最大化となる最尤単語列を修正済み単語列データとして出力する単語列確率計算手段を有する
    ことを特徴とする誤字脱字対応テキスト解析装置。
  2. 前記近似タイプ重み付け手段は、
    前記照合タイプを、
    前記単語列データの単語と単語辞書との「完全一致」、前記近似辞書照合単語列データの文字列が辞書登録語の表記の一部文字列から置換された形で出現している「置換」、該近似辞書照合単語列データの文字列が辞書登録語の表記に任意の文字が挿入されている「挿入」、該近似辞書照合単語列データの文字列が辞書登録語の表記から任意の文字が削除された形で出現している「削除」とし、各照合タイプ毎に予め決められた重みを設定する
    請求項1記載の誤字脱字対応テキスト解析装置。
  3. 前記文字混同確率記憶手段における前記文字混同確率は、前記別の文字が
    (1)前記ある文字と母音または子音が共通しており、かつ、文字種(ひらがなまたはカタカナ)が共通している場合、
    (2)前記ある文字と同音の文字である場合、
    (3)前記ある文字と形が似ていて文字種が異なる文字である場合、
    (4)前記ある文字の母音部分が落ちた文字である場合、
    (5)伏せ字を表す記号である場合、
    (6)任意の文字の削除または挿入に対応する場合、
    のいずれかである場合に値が大きくなるよう設定されることを特徴とする
    請求項1記載の誤字脱字対応テキスト解析装置。
  4. 誤字や脱字が含まれる入力テキストを形態素解析するための誤字脱字対応テキスト解析方法であって、
    辞書登録語での出現文字と入力文での出現文字で変化があった箇所の状況である近似文字状況毎に、ある文字が別の文字に混同されやすさを数値化した文字混同確率を格納した文字混同確率記憶手段と、
    ある読みに対する漢字を格納した読み・漢字対応記憶手段と、
    統計的言語モデルを格納した統計的言語モデル記憶手段と、を有するコンピュータが、
    前記入力テキストを形態素解析して単語列データを出力する形態素解析ステップと、
    前記入力テキストの単語の所定の文字長の単語について近似照合し、近似辞書照合単語列データを出力する近似辞書照合ステップと、
    前記単語列データと前記近似辞書照合単語列データを用いて誤字脱字修正を行う誤字脱字修正ステップを行い、
    前記誤字脱字修正ステップでは、
    前記単語列データと前記近似辞書照合単語列データの単語の照合タイプに基づいて、該単語列データと該近似辞書照合単語列データとに所定の重みを付与し、さらに、該単語列データと該近似辞書照合単語列データの単語の近似文字状況に応じて前記文字混同確率記憶手段または読み・漢字対応記憶手段を参照して、該単語列データと該近似辞書照合単語列データとに重みを付与し、重み付け単語列データを出力する近似タイプ重み付けステップと、
    前記重み付け単語列データの各位置に存在する単語候補について、前記統計的言語モデル記憶手段を参照して、
    Figure 2011065384
    (但し、Sは入力文、Fは入力文Sをn個の表記列に分割したもの、Tは表記列Fの各表記に付与される品詞列であり、Pweight(F,T)は、 前記近似タイプ重み付け手段で付与される重みを考慮したときの表記列Fおよび品詞列Tの同時確率)
    の同時確率が最大となる最尤単語列を修正済み単語列データとして出力する単語列確率計算ステップを行う
    ことを特徴とする誤字脱字対応テキスト解析方法。
  5. 前記近似タイプ重み付けステップにおいて、
    前記照合タイプを、
    前記単語列データの単語と単語辞書との「完全一致」、前記近似辞書照合単語列データの文字列が辞書登録語の表記の一部文字列から置換された形で出現している「置換」、該近似辞書照合単語列データの文字列が辞書登録語の表記に任意の文字が挿入されている「挿入」、該近似辞書照合単語列データの文字列が辞書登録語の表記から任意の文字が削除された形で出現している「削除」とし、各照合タイプ毎に予め決められた重みを設定する
    請求項4記載の誤字脱字対応テキスト解析方法。
  6. 文字混同確率記憶手段における前記文字混同確率は、前記別の文字が
    (1)前記ある文字と母音または子音が共通しており、かつ、文字種(ひらがなまたはカタカナ)が共通している場合、
    (2)前記ある文字と同音の文字である場合、
    (3)前記ある文字と形が似ていて文字種が異なる文字である場合、
    (4)前記ある文字の母音部分が落ちた文字である場合、
    (5)伏せ字を表す記号である場合、
    (6)任意の文字の削除または挿入に対応する場合、
    のいずれかである場合に値が大きくなるよう設定されることを特徴とする
    請求項4記載の誤字脱字対応テキスト解析方法。
  7. 請求項1乃至3のいずれか1項に記載の誤字脱字対応テキスト解析装置を構成する各手段としてコンピュータを機能させるための誤字脱字対応テキスト解析プログラム。
JP2009214959A 2009-09-16 2009-09-16 誤字脱字対応テキスト解析装置及び方法及びプログラム Expired - Fee Related JP5203324B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009214959A JP5203324B2 (ja) 2009-09-16 2009-09-16 誤字脱字対応テキスト解析装置及び方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009214959A JP5203324B2 (ja) 2009-09-16 2009-09-16 誤字脱字対応テキスト解析装置及び方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011065384A true JP2011065384A (ja) 2011-03-31
JP5203324B2 JP5203324B2 (ja) 2013-06-05

Family

ID=43951565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009214959A Expired - Fee Related JP5203324B2 (ja) 2009-09-16 2009-09-16 誤字脱字対応テキスト解析装置及び方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5203324B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145287A (zh) * 2018-07-05 2019-01-04 广东外语外贸大学 印尼语单词检错纠错方法及系统
JP2020016939A (ja) * 2018-07-23 2020-01-30 株式会社デンソーアイティーラボラトリ 単語列修正装置、単語列修正方法及びプログラム
CN110929502A (zh) * 2018-08-30 2020-03-27 北京嘀嘀无限科技发展有限公司 一种文本检错方法及装置
US11687599B2 (en) 2019-01-31 2023-06-27 Nippon Telegraph And Telephone Corporation Data retrieving apparatus, method, and program

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60164864A (ja) * 1984-02-08 1985-08-27 Hitachi Ltd デ−タ処理装置
JPS6394364A (ja) * 1986-10-08 1988-04-25 Nippon Telegr & Teleph Corp <Ntt> 日本文誤字自動修正装置
JPH01205377A (ja) * 1988-02-12 1989-08-17 Nippon Telegr & Teleph Corp <Ntt> 日本文文書解析装置
JPH0275059A (ja) * 1988-09-12 1990-03-14 Ricoh Co Ltd 日本文誤り訂正処理装置
JPH0362260A (ja) * 1989-07-31 1991-03-18 Nippon Telegr & Teleph Corp <Ntt> 片仮名単語誤り検出訂正装置
JPH03291747A (ja) * 1990-04-10 1991-12-20 Ricoh Co Ltd かな漢字変換方式
JPH05225183A (ja) * 1992-02-10 1993-09-03 Nippon Telegr & Teleph Corp <Ntt> 日本文単語誤り自動検出装置
JP2003223441A (ja) * 2002-01-28 2003-08-08 Fuji Xerox Co Ltd 文字列整形装置、方法及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60164864A (ja) * 1984-02-08 1985-08-27 Hitachi Ltd デ−タ処理装置
JPS6394364A (ja) * 1986-10-08 1988-04-25 Nippon Telegr & Teleph Corp <Ntt> 日本文誤字自動修正装置
JPH01205377A (ja) * 1988-02-12 1989-08-17 Nippon Telegr & Teleph Corp <Ntt> 日本文文書解析装置
JPH0275059A (ja) * 1988-09-12 1990-03-14 Ricoh Co Ltd 日本文誤り訂正処理装置
JPH0362260A (ja) * 1989-07-31 1991-03-18 Nippon Telegr & Teleph Corp <Ntt> 片仮名単語誤り検出訂正装置
JPH03291747A (ja) * 1990-04-10 1991-12-20 Ricoh Co Ltd かな漢字変換方式
JPH05225183A (ja) * 1992-02-10 1993-09-03 Nippon Telegr & Teleph Corp <Ntt> 日本文単語誤り自動検出装置
JP2003223441A (ja) * 2002-01-28 2003-08-08 Fuji Xerox Co Ltd 文字列整形装置、方法及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145287A (zh) * 2018-07-05 2019-01-04 广东外语外贸大学 印尼语单词检错纠错方法及系统
JP2020016939A (ja) * 2018-07-23 2020-01-30 株式会社デンソーアイティーラボラトリ 単語列修正装置、単語列修正方法及びプログラム
JP7098463B2 (ja) 2018-07-23 2022-07-11 株式会社デンソーアイティーラボラトリ 単語列修正装置、単語列修正方法及びプログラム
CN110929502A (zh) * 2018-08-30 2020-03-27 北京嘀嘀无限科技发展有限公司 一种文本检错方法及装置
CN110929502B (zh) * 2018-08-30 2023-08-25 北京嘀嘀无限科技发展有限公司 一种文本检错方法及装置
US11687599B2 (en) 2019-01-31 2023-06-27 Nippon Telegraph And Telephone Corporation Data retrieving apparatus, method, and program

Also Published As

Publication number Publication date
JP5203324B2 (ja) 2013-06-05

Similar Documents

Publication Publication Date Title
Azmi et al. A survey of automatic Arabic diacritization techniques
Laboreiro et al. Tokenizing micro-blogging messages using a text classification approach
ERYİǦİT et al. Social media text normalization for Turkish
Shaalan et al. Arabic word generation and modelling for spell checking.
Sawalha Open-source resources and standards for Arabic word structure analysis: Fine grained morphological analysis of Arabic text corpora
Mosavi Miangah FarsiSpell: A spell-checking system for Persian using a large monolingual corpus
KR20230009564A (ko) 앙상블 스코어를 이용한 학습 데이터 교정 방법 및 그 장치
JP5203324B2 (ja) 誤字脱字対応テキスト解析装置及び方法及びプログラム
Tufiş et al. DIAC+: A professional diacritics recovering system
Oravecz et al. Semi-automatic normalization of Old Hungarian codices
JP5623380B2 (ja) 誤り文修正装置、誤り文修正方法およびプログラム
Jamro Sindhi language processing: A survey
Kaur et al. Spell checker for Punjabi language using deep neural network
Kaur et al. Hybrid approach for spell checker and grammar checker for Punjabi
Abu Bakar et al. NUWT: Jawi-specific buckwalter corpus for Malay word tokenization
Htun et al. Improving transliteration mining by integrating expert knowledge with statistical approaches
Nguyen et al. OCR error correction for Vietnamese handwritten text using neural machine translation
UzZaman et al. A comprehensive bangla spelling checker
Tufiş et al. Tiered tagging revisited
Nguyen et al. An Efficient Unsupervised Approach for OCR Error Correction of Vietnamese OCR Text
Torunoglu-Selamet et al. Exploring spelling correction approaches for turkish
CN110377897A (zh) 中英文地址自动检测方法及系统
Mijlad et al. Arabic text diacritization: Overview and solution
Mekki et al. COTA 2.0: An automatic corrector of tunisian Arabic social media texts
Ahmed et al. Discovering lexical similarity using articulatory feature-based phonetic edit distance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130213

R150 Certificate of patent or registration of utility model

Ref document number: 5203324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees