(57)【要約】【課題】テキストからの顔文字検出において、顔文字における左右対称性の出現傾向を捉え、検出精度を向上すること。【解決手段】左右対称文字列抽出部１１により、テキストから、２つの同一文字または一対の対称文字の少なくとも一方を含み、全体として左右対称性を有する左右対称文字列に対応する範囲を抽出し、この範囲に基づき、左右対称生成部１２により、文字分割部３で文字単位に分割された前記テキスト中の各文字が左右対称文字列に含まれるか否かを示す左右対称情報を生成し、これを当該テキスト中の各文字の表記とともに素性として用いて、ＢＩＯ判定部１４により、モデル記憶部１３に記憶されたモデルを用いて、顔文字を構成する最初の文字“Ｂ”、顔文字を構成する２番目以降の文字“Ｉ”、顔文字以外の文字“Ｏ”のいずれに当たるかを機械学習で判定する。【選択図】図６
2010102370.tif 000002
【特許請求の範囲】
【請求項１】
テキスト中の顔文字を検出する装置であって、
テキストから、２つの同一文字または一対の対称文字の少なくとも一方を含み、全体として左右対称性を有する左右対称文字列に対応する範囲を抽出する左右対称文字列抽出部と、
前記テキストを文字単位に分割する文字分割部と、
文字単位に分割された前記テキスト中の各文字が左右対称文字列に含まれるか否かを示す左右対称情報を、抽出された前記テキストにおける左右対称文字列の範囲に基づいて生成する左右対称情報生成部と、
少なくともテキスト中の各文字の表記およびその左右対称情報を素性として、当該テキスト中の各文字が顔文字を構成する文字列の最初の文字を意味する“Ｂ”、顔文字を構成する文字列の２番目以降の文字を意味する“Ｉ”、顔文字以外の文字を意味する“Ｏ”のいずれに当たるかを判定するためのモデルを記憶するモデル記憶部と、
文字単位に分割された前記テキスト中の各文字の表記およびその左右対称情報を入力とし、前記モデル記憶部に記憶されたモデルを用いて、前記テキスト中の各文字が前記“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定するＢＩＯ判定部とを備えた
ことを特徴とする顔文字検出装置。
【請求項２】
左右対称文字列抽出は、
テキスト中の任意の文字を基点としてその文頭方向および文末方向に隣接する文字を当該テキストからそれぞれ取得し、これらが同一文字または対称文字かどうかを判定し、同一文字または対称文字でなければ左右対称文字列に対応する範囲無しとして何も出力せず、同一文字または対称文字であれば更にその文頭方向および文末方向に隣接する文字をそれぞれ取得して同様の判定を行い、これらを前記取得した文字が同一文字または対称文字でなくなるまで繰り返し、それまでの文頭方向および文末方向の文字の位置を左右対称文字列に対応する範囲として出力し、これをテキスト中の全ての文字を基点として繰り返すことで行う
ことを特徴とする請求項１に記載の顔文字検出装置。
【請求項３】
左右対称文字列抽出は、
テキストから連続する２つの同一文字および連続する一対の対称文字を抽出し、抽出した前記テキスト中の任意の連続する２つの同一文字または連続する一対の対称文字を基点としてその文頭方向および文末方向に隣接する文字を当該テキストからそれぞれ取得し、これらが同一文字または対称文字かどうかを判定し、同一文字または対称文字でなければ左右対称文字列に対応する範囲無しとして何も出力せず、同一文字または対称文字であれば更にその文頭方向および文末方向に隣接する文字をそれぞれ取得して同様の判定を行い、これらを前記取得した文字が同一文字または対称文字でなくなるまで繰り返し、それまでの文頭方向および文末方向の文字の位置を左右対称文字列に対応する範囲として出力し、これを抽出した前記テキスト中の連続する２つの同一文字または連続する一対の対称文字の全てを基点として繰り返すことで行う
ことを特徴とする請求項１に記載の顔文字検出装置。
【請求項４】
前記に加え、
顔文字を構成する文字列中の顔部分の文字列を登録してなる顔部分辞書を記憶する顔部分辞書記憶部と、
テキストから前記顔部分辞書記憶部に記憶された顔部分辞書に登録されている顔部分の文字列に対応する範囲を抽出する顔部分抽出部とを備え、
左右対称文字列抽出は、
抽出された前記テキストにおける任意の顔部分の範囲を基点としてその文頭方向および文末方向に隣接する文字を当該テキストからそれぞれ取得し、これらが同一文字または対称文字かどうかを判定し、同一文字または対称文字でなければ左右対称文字列に対応する範囲無しとして何も出力せず、同一文字または対称文字であれば更にその文頭方向および文末方向に隣接する文字をそれぞれ取得して同様の判定を行い、これらを前記取得した文字が同一文字または対称文字でなくなるまで繰り返し、それまでの文頭方向および文末方向の文字の位置を左右対称文字列に対応する範囲として出力し、これを抽出された前記テキストにおける全ての顔部分の範囲を基点として繰り返すことで行う
ことを特徴とする請求項１に記載の顔文字検出装置。
【請求項５】
左右対称情報生成は、
文字単位に分割された前記テキスト中の各文字の位置と、抽出された前記テキストにおける左右対称文字列の範囲の文字位置とを比較し、一致する場合は左右対称文字列であることを示す左右対称情報を、一致しない場合は左右対称文字列でないことを示す左右対称情報を、当該テキスト中の各文字の表記に対応させて出力することで行う
ことを特徴とする請求項１乃至４のいずれかに記載の顔文字検出装置。
【請求項６】
テキスト中の顔文字を検出する方法であって、
左右対称文字列抽出部が、テキストから、２つの同一文字または一対の対称文字の少なくとも一方を含み、全体として左右対称性を有する左右対称文字列に対応する範囲を抽出するステップと、
文字分割部が、前記テキストを文字単位に分割するステップと、
左右対称情報生成部が、文字単位に分割された前記テキスト中の各文字が左右対称文字列に含まれるか否かを示す左右対称情報を、抽出された前記テキストにおける左右対称文字列の範囲に基づいて生成するステップと、
ＢＩＯ判定部が、文字単位に分割された前記テキスト中の各文字の表記およびその左右対称情報を入力とし、少なくともテキスト中の各文字の表記およびその左右対称情報を素性として、当該テキスト中の各文字が顔文字を構成する文字列の最初の文字を意味する“Ｂ”、顔文字を構成する文字列の２番目以降の文字を意味する“Ｉ”、顔文字以外の文字を意味する“Ｏ”のいずれに当たるかを判定するためのモデルを用いて、前記テキスト中の各文字が前記“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定するステップとを含む
ことを特徴とする顔文字検出方法。
【請求項７】
左右対称文字列抽出は、
テキスト中の任意の文字を基点としてその文頭方向および文末方向に隣接する文字を当該テキストからそれぞれ取得し、これらが同一文字または対称文字かどうかを判定し、同一文字または対称文字でなければ左右対称文字列に対応する範囲無しとして何も出力せず、同一文字または対称文字であれば更にその文頭方向および文末方向に隣接する文字をそれぞれ取得して同様の判定を行い、これらを前記取得した文字が同一文字または対称文字でなくなるまで繰り返し、それまでの文頭方向および文末方向の文字の位置を左右対称文字列に対応する範囲として出力し、これをテキスト中の全ての文字を基点として繰り返すことで行う
ことを特徴とする請求項６に記載の顔文字検出方法。
【請求項８】
左右対称文字列抽出は、
テキストから連続する２つの同一文字および連続する一対の対称文字を抽出し、抽出した前記テキスト中の任意の連続する２つの同一文字または連続する一対の対称文字を基点としてその文頭方向および文末方向に隣接する文字を当該テキストからそれぞれ取得し、これらが同一文字または対称文字かどうかを判定し、同一文字または対称文字でなければ左右対称文字列に対応する範囲無しとして何も出力せず、同一文字または対称文字であれば更にその文頭方向および文末方向に隣接する文字をそれぞれ取得して同様の判定を行い、これらを前記取得した文字が同一文字または対称文字でなくなるまで繰り返し、それまでの文頭方向および文末方向の文字の位置を左右対称文字列に対応する範囲として出力し、これを抽出した前記テキスト中の連続する２つの同一文字または連続する一対の対称文字の全てを基点として繰り返すことで行う
ことを特徴とする請求項６に記載の顔文字検出方法。
【請求項９】
前記に加え、
顔部分抽出部が、テキストから、顔文字を構成する文字列中の顔部分の文字列を登録してなる顔部分辞書に登録されている顔部分の文字列に対応する範囲を抽出するステップを含み、
左右対称文字列抽出は、
抽出された前記テキストにおける任意の顔部分の範囲を基点としてその文頭方向および文末方向に隣接する文字を当該テキストからそれぞれ取得し、これらが同一文字または対称文字かどうかを判定し、同一文字または対称文字でなければ左右対称文字列に対応する範囲無しとして何も出力せず、同一文字または対称文字であれば更にその文頭方向および文末方向に隣接する文字をそれぞれ取得して同様の判定を行い、これらを前記取得した文字が同一文字または対称文字でなくなるまで繰り返し、それまでの文頭方向および文末方向の文字の位置を左右対称文字列に対応する範囲として出力し、これを抽出された前記テキストにおける全ての顔部分の範囲を基点として繰り返すことで行う
ことを特徴とする請求項６に記載の顔文字検出方法。
【請求項１０】
左右対称情報生成は、
文字単位に分割された前記テキスト中の各文字の位置と、抽出された前記テキストにおける左右対称文字列の範囲の文字位置とを比較し、一致する場合は左右対称文字列であることを示す左右対称情報を、一致しない場合は左右対称文字列でないことを示す左右対称情報を、当該テキスト中の各文字の表記に対応させて出力することで行う
ことを特徴とする請求項６乃至９のいずれかに記載の顔文字検出方法。
【請求項１１】
コンピュータを、請求項１乃至５のいずれかに記載の顔文字検出装置の各手段として機能させるためのプログラム。
【請求項１２】
コンピュータに、請求項６乃至１０のいずれかに記載の顔文字検出方法の各処理ステップを実行させるためのプログラム。
【請求項１３】
請求項１１または１２に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト（ＨＴＭＬソーステキストを含む。）中の顔文字を検出する技術に関する。
【背景技術】
【０００２】
顔文字とは、テキスト中で使用可能な文字を組み合わせて様々な感情等に対応する擬似的な人の表情を表すようにしたもので、パーソナルコンピュータや携帯電話における電子メールなどのテキストベースのコミュニケーションツールにおいて、書き手（送信側）の感情等を読み手（受信側）に伝える手段として用いられることが多い。例えば、「今日はとっても楽しかったです。(^^)明日も楽しみ！」というテキスト中の文字列「(^^)」が顔文字であり、この場合、「喜び」の感情を表している。
【０００３】
従来、テキスト中の顔文字を検出する技術としては、既存のＨＴＭＬタグ除去技術、形態素解析技術を利用してテキスト中の各文字が属する形態素の品詞を抽出し、これを当該テキスト中の各文字の表記とともに素性として用いて、顔文字を構成する文字列の最初の文字を意味する“Ｂ”、顔文字を構成する文字列の２番目以降の文字を意味する“Ｉ”、顔文字以外の文字を意味する“Ｏ”（以下、これらを顔文字タグと呼ぶ。）のいずれに当たるかを機械学習で推定（判定）する方法があった（非特許文献１参照）。例えば、「今日はとっても楽しかったです。(^^)<br>明日も楽しみ！<br>」というテキストにおいて、文字「(」が顔文字タグ“Ｂ”であることを推定する場合は、図１に示すような太線内の情報を素性として利用していた。
【０００４】
図２は前述した従来の顔文字検出技術にかかる装置の一例を示すもので、ＨＴＭＬタグ除去部１、形態素解析部２、文字分割部３、形態素品詞抽出部４、モデル記憶部５およびＢＩＯ判定部６からなる。
【０００５】
ＨＴＭＬタグ除去部１では、既存のＨＴＭＬタグ除去技術により、入力されたテキストからＨＴＭＬタグを除去する。例えば、入力されたテキストが「今日はとっても楽しかったです。(^^)<br>明日も楽しみ！<br>」の場合、ＨＴＭＬタグ“<br>”が除かれ、「今日はとっても楽しかったです。(^^)明日も楽しみ！」となる。なお、入力されたテキストがＨＴＭＬタグを含まない純粋なテキストであれば、ＨＴＭＬタグ除去部１が不要であることはいうまでもない。
【０００６】
形態素解析部２では、既存の形態素解析技術により、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストを単語に区切り、さらに各単語に品詞を付与する。例えば、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」の場合、区切り記号を“/”、品詞を“［品詞］”で表すと、「今日［名詞］/は［助詞］/とっても［副詞］/楽し［形容詞］/かった［形容詞接尾辞］/です［助動詞］/。［記号-句点］/(［記号-括弧開］/^［記号-その他］/^［記号-その他］/)［記号-括弧閉］/明日［名詞］/も［助詞］/楽しみ［名詞］/！［記号-その他］」となる。
【０００７】
文字分割部３では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストを文字単位（文字コード単位）に分割する。例えば、前記同様、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」の場合、区切り記号を“/”で表すと、「今/日/は/と/っ/て/も/楽/し/か/っ/た/で/す/。/(/^/^/)/明/日/も/楽/し/み/！」となる。
【０００８】
形態素品詞抽出部４では、形態素解析部２での結果と文字分割部３での結果とを入力とし、入力されたテキスト中の各文字の表記および各文字が属する形態素の品詞を抽出する。例えば、形態素解析部２での結果が「今日［名詞］/は［助詞］/とっても［副詞］/楽し［形容詞］/かった［形容詞接尾辞］/です［助動詞］/。［記号-句点］/(［記号-括弧開］/^［記号-その他］/^［記号-その他］/)［記号-括弧閉］/明日［名詞］/も［助詞］/楽しみ［名詞］/！［記号-その他］」であり、文字分割部３での結果が「今/日/は/と/っ/て/も/楽/し/か/っ/た/で/す/。/(/^/^/)/明/日/も/楽/し/み/！」である場合、図３に示すような結果が得られる。
【０００９】
モデル記憶部５では、予め機械学習により生成した、少なくともテキスト中の各文字の表記および各文字が属する形態素の品詞を素性、詳細には図１に示したようにテキスト中の各文字のその文字を含む前後ｎ（ここではｎ＝３）文字の表記、それらの形態素の品詞および前ｎ文字についてのＢＩＯ判定結果を素性として、当該テキスト中の各文字が顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定するためのモデルを記憶している。但し、使用する機械学習によっては、前ｎ文字についてのＢＩＯ判定結果を明示的に与える必要はない。
【００１０】
ＢＩＯ判定部６では、形態素品詞抽出部４での結果を入力とし、モデル記憶部５に記憶されたモデルを用いて、テキスト中の各文字について、その先頭から順に顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定し、顔文字タグ“Ｂ”および“Ｉ”に対応する文字列を検出結果として出力する。例えば、図３に示した結果が入力された場合、図４に示すように、先頭から順に、各文字のその文字を含む前後ｎ（ここではｎ＝３）文字の表記、それらの形態素の品詞および前ｎ文字についてのＢＩＯ判定結果を素性としてモデル記憶部５に記憶されたモデルに入力してＢＩＯ判定結果を得て、顔文字タグ“Ｂ”および“Ｉ”と判定された文字列「(^^)」を、例えばＸＭＬ形式「<face>(^^)</face>」で出力する。
【００１１】
モデル記憶部５に記憶するモデルは、テキスト集合の各テキストに対し、前記ＨＴＭＬタグ除去部１、形態素解析部２、文字分割部３、形態素品詞抽出部４での処理を行い、その結果として得られる、ＨＴＭＬタグが除去され、文字単位に分割されたテキスト中の各文字の表記および各文字が属する形態素の品詞の情報と、前記テキスト中の各文字について前記顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれかに当たるかを人手により判断した結果としての情報とを用い、既存の機械学習によって予め作成したものである。
【００１２】
この際、使用する機械学習としてはどのようなものでも良いが、系列ラベリング問題のためのものが望ましい。系列ラベリング問題とは、与えられた入力トークン列ｘ＝（ｘ１，ｘ２，…ｘＮ）に対して、適切な出力ラベル列ｙ＝（ｙ１，ｙ２，…ｙＮ）を対応づける問題である。
【非特許文献１】田中裕紀、高村大也、奥村学、「文字ベースのコミュニケーションにおける顔文字に関する研究」、言語処理学会第１０回年次大会、Ｄ４−３、２００４
【発明の開示】
【発明が解決しようとする課題】
【００１３】
顔文字を構成する文字列、例えば「(^^)」、「(｀´)」、「(^o^)」、「(^◇^)」、「＼(^◇^)／」、「(> <)」、「(T T)」、「(T△T)」などの文字列に着目すると、「^^」、「TT」などの２つの同一文字、または「(」および「)」、「＼」および「／」、「>」および「<」などの一対の対称文字のいずれか一方を少なくとも含み、文字列全体として左右対称であるケースが少なくない。このような顔文字を構成する文字列の特徴、つまり左右対称性は、顔文字の検出に有効であると思われる。
【００１４】
しかし、前述した従来の顔文字検出技術では、このような顔文字における左右対称性を全く利用していないため、適切に顔文字を検出できないという問題があった。
【００１５】
本発明の目的は、テキストからの顔文字検出において、顔文字における左右対称性の出現傾向を捉え、検出精度を向上することにある。
【課題を解決するための手段】
【００１６】
本発明では、前記目的を達成するため、テキストから、２つの同一文字または一対の対称文字のいずれか一方を少なくとも含み、全体として左右対称性を有する文字列（以下、左右対称文字列と呼ぶ。）に対応する範囲を抽出し、一方、前記テキストを文字単位に分割し、該文字単位に分割された前記テキスト中の各文字が左右対称文字列に含まれるか否か（ＹｅｓかＮｏか）を示す左右対称情報を、抽出された前記テキストにおける左右対称文字列の範囲に基づいて生成し、これを当該テキスト中の各文字の表記とともに素性として用いて、顔文字を構成する文字列の最初の文字を意味する“Ｂ”、顔文字を構成する文字列の２番目以降の文字を意味する“Ｉ”、顔文字以外の文字を意味する“Ｏ”のいずれに当たるかを機械学習で推定（判定）することを特徴とする。例えば、「今日はとっても楽しかったです。(^^)<br>明日も楽しみ！<br>」というテキストにおいて、文字「(」が顔文字タグ“Ｂ”であることを推定する場合は、図５に示すような太線内の情報を素性として利用する。
【発明の効果】
【００１７】
本発明によれば、テキスト中の各文字の表記とともにその文字が左右対称文字列に含まれるか否かを示す左右対称情報を素性として機械学習で推定（判定）するため、顔文字における左右対称性の出現傾向を捉え、検出精度を向上することが可能となる。
【発明を実施するための最良の形態】
【００１８】
＜第１の実施の形態＞
図６は本発明の顔文字検出装置の第１の実施の形態を示すもので、図中、従来例と同一構成部分は同一符号をもって表す。即ち、１はＨＴＭＬタグ除去部、３は文字分割部、１１は左右対称文字列抽出部、１２は左右対称情報生成部、１３はモデル記憶部、１４はＢＩＯ判定部である。
【００１９】
左右対称文字列抽出部１１は、テキストから、２つの同一文字または一対の対称文字のいずれか一方を少なくとも含み、全体として左右対称性を有する左右対称文字列に対応する範囲を抽出、詳細には後述するような処理を行い、左右対称文字列に対応する範囲の文字位置を取得する。なお、左右対称文字列に対応する範囲の具体的な文字位置としては、当該範囲に含まれる全ての文字の文字位置の外、当該範囲の文頭側の文字および文末側の文字の文字位置のペアでも良い。
【００２０】
左右対称情報生成部１２は、文字分割部３で文字単位（文字コード単位）に分割されたテキストと、左右対称文字列抽出部１１で抽出された前記テキストにおける左右対称文字列の範囲とを入力として、文字単位に分割されたテキスト中の各文字が左右対称文字列に含まれるか否かを判定、詳細には文字単位に分割されたテキスト中の各文字の位置と、抽出された前記テキストにおける左右対称文字列の範囲の文字位置とを比較し、一致する場合は左右対称文字列に含まれることを示す左右対称情報（ここではＹｅｓ）を、一致しない場合は左右対称文字列に含まれないことを示す左右対称情報（ここではＮｏ）を、当該テキスト中の各文字の表記に対応させて出力する。
【００２１】
なお、左右対称文字列に対応する範囲の具体的な文字位置が当該範囲の文頭側の文字および文末側の文字の文字位置のペア、例えば「ａ，ｂ」である場合は、文字単位に分割されたテキスト中の各文字の位置がａ以上かつｂ以下のときを一致といい、ａより小さい又はｂより大きいときを不一致というものとする。
【００２２】
モデル記憶部１３は、予め機械学習により生成した、少なくともテキスト中の各文字の表記およびその左右対称情報を素性、詳細には図５に示したようにテキスト中の各文字のその文字を含む前後ｎ（ここではｎ＝３）文字の表記、それらの左右対称情報および前ｎ文字についてのＢＩＯ判定結果を素性として、当該テキスト中の各文字が顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定するためのモデルを記憶している。但し、使用する機械学習によっては、前ｎ文字についてのＢＩＯ判定結果を明示的に与える必要はない。
【００２３】
ＢＩＯ判定部１４は、左右対称情報生成部１２での結果を入力とし、モデル記憶部１３に記憶されたモデルを用いて、テキスト中の各文字について、その先頭から順に顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定し、顔文字タグ“Ｂ”および“Ｉ”に対応する文字列を検出結果として出力、例えば顔文字の開始タグ“<face>”と顔文字の終了タグ“</face>”との間に顔文字タグ“Ｂ”および“Ｉ”に対応する文字列「ｘｘｘｘ」を記述したＸＭＬ形式「<face>ｘｘｘｘ</face>」で出力する。
【００２４】
モデル記憶部１３に記憶するモデルは、テキスト集合の各テキストに対し、前記ＨＴＭＬタグ除去部１、文字分割部３、左右対称文字列抽出部１１、左右対称情報生成部１２での処理を行い、その結果として得られる、ＨＴＭＬタグが除去され、文字単位に分割されたテキスト中の各文字の表記およびその左右対称情報と、前記テキスト中の各文字について前記顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれかに当たるかを人手により判断した結果としての情報とを用い、既存の機械学習によって予め作成したものである。この際、使用する機械学習としてはどのようなものでも良いが、系列ラベリング問題のためのものが望ましい。
【００２５】
図７は本実施の形態の顔文字検出装置における処理の流れを示すもので、以下、例を挙げてその動作を詳細に説明する。
【００２６】
ＨＴＭＬタグ除去部１に入力されたテキストは、既存のＨＴＭＬタグ除去技術により、当該テキスト中のＨＴＭＬタグが除去され、文字分割部３および左右対称文字列抽出部１１に出力される（ｓ１）。例えば、入力テキストが「今日はとっても楽しかったです。(^^)<br>明日も楽しみ！<br>」であれば、ＨＴＭＬタグ“<br>”が除かれ、「今日はとっても楽しかったです。(^^)明日も楽しみ！」となる。なお、入力されたテキストがＨＴＭＬタグを含まない純粋なテキストであれば、ＨＴＭＬタグ除去部１およびＨＴＭＬタグ除去処理ｓ１が不要であることはいうまでもない。
【００２７】
文字分割部３では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストを文字単位（文字コード単位）に分割し、左右対称情報生成部１２に出力する（ｓ２）。例えば、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」の場合、区切り記号を“/”で表すと、「今/日/は/と/っ/て/も/楽/し/か/っ/た/で/す/。/(/^/^/)/明/日/も/楽/し/み/！」となる。
【００２８】
左右対称文字列抽出部１１では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストから、２つの同一文字または一対の対称文字の少なくとも一方を含み、全体として左右対称性を有する左右対称文字列に対応する範囲を抽出し、その文字位置を取得する（ｓ３）。例えば、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」の場合、文字列「(^^)」が左右対称文字列として抽出され、その文字位置は「１６，１７，１８，１９」（文頭側の文字および文末側の文字の文字位置のペアで表せば「１６，１９」）となる。
【００２９】
なお、文字分割処理および左右対称文字列抽出処理の順序は逆でも良く、あるいは同時であっても良い。
【００３０】
左右対称情報生成部１２では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去され、文字分割部３で文字単位に分割されたテキスト中の各文字の位置と、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去された前記テキストに対して左右対称文字列抽出部１１で抽出された左右対称文字列の範囲の文字位置とを比較し、一致する場合は左右対称文字列であることを示す左右対称情報（Ｙｅｓ）を、一致しない場合は左右対称文字列でないことを示す左右対称情報（Ｎｏ）を、当該テキスト中の各文字の表記に対応させてＢＩＯ判定部１４に出力する（ｓ４）。例えば、文字分割部３での結果が「今/日/は/と/っ/て/も/楽/し/か/っ/た/で/す/。/(/^/^/)/明/日/も/楽/し/み/！」であり、左右対称文字列抽出部１１で抽出された左右対称文字列の範囲の文字位置が「１６，１７，１８，１９」である場合、図８に示すような結果が得られる。
【００３１】
ＢＩＯ判定部１４では、左右対称情報生成部１２での結果を入力とし、モデル記憶部１３に記憶されたモデルを用いて、テキスト中の各文字について、その先頭から順に顔文字タグ“Ｂ”、“Ｉ”、“Ｏ”のいずれに当たるかを判定し、顔文字タグ“Ｂ”および“Ｉ”に対応する文字列を検出結果として出力する（ｓ５）。例えば、図８に示した結果が入力された場合、図９に示すように、先頭から順に、各文字のその文字を含む前後ｎ（ここではｎ＝３）文字の表記、それらの左右対称情報および前ｎ文字についてのＢＩＯ判定結果を素性としてモデル記憶部１３に記憶されたモデルに入力してＢＩＯ判定結果を得て、顔文字タグ“Ｂ”および“Ｉ”と判定された文字列「(^^)」をＸＭＬ形式「<face>(^^)</face>」で出力する。
【００３２】
図１０は左右対称文字列抽出処理の一例、ここでは顔文字を構成する左右対称文字列がそのほぼ中央に、“口”に当たる文字を有する、例えば「(^o^)」、「(^◇^)」のような文字列である場合に有効な処理の流れを示すものである。図中、ｋは処理の基点となるテキスト中の任意の文字の文頭からの文字位置、ｍは当該処理の基点となる文字位置から文頭方向および文末方向に何文字離れたかを示す文字数である。
【００３３】
まず、左右対称文字列抽出部１１は、テキストの先頭文字、即ちｋ＝１の文字位置の文字を基点としてその文頭方向および文末方向に隣接する文字、即ちｍ＝１として（ｋ−ｍ），（ｋ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ１１〜ｓ１６）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。但し、ここではｋ−ｍ＝０であり、文字位置「０」には文字が存在しないため、ステップｓ１８を経てステップｓ１２に戻る。なお、同一文字または対称文字かどうかの判定は、顔文字中で使用されることの多い２つの同一文字や一対の対称文字の集合を格納したリストを予め用意しておき、取得したそれぞれの文字に対してリスト内の２つの同一文字および一対の対称文字毎にマッチングを行うことでできる。
【００３４】
次に、左右対称文字列抽出部１１は、テキストの２番目の文字、即ちｋ＝２の文字位置の文字を基点としてその文頭方向および文末方向に隣接する文字、即ち前記同様にｍ＝１として（ｋ−ｍ），（ｋ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ１２〜ｓ１６）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。
【００３５】
ここで、左右対称文字列抽出部１１は、（ｋ−ｍ），（ｋ＋ｍ）、即ち文字位置「１」および「３」の文字が同一文字または対称文字であればステップｓ１５に戻り、更にその文頭方向および文末方向に隣接する文字、即ちｍ＝２の場合の（ｋ−ｍ），（ｋ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ１５，ｓ１６）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。
【００３６】
この場合、前記同様にｋ−ｍ＝０であり、文字位置「０」には文字が存在しないため、ステップｓ１８に移るが、ｍ＝２であるから、左右対称文字列抽出部１１は、それまでの文頭方向および文末方向の文字の位置である（ｋ−ｍ＋１），（ｋ＋ｍ−１）、ここでは文字位置「１，３」を左右対称文字列に対応する範囲として出力する（ｓ１９）。
【００３７】
以下、左右対称文字列抽出部１１は、前記同様の処理をテキスト中の全ての文字を基点として繰り返す、つまり文字位置ｋがテキストの文末に達するまで繰り返す（ｓ１３）。
【００３８】
なお、ステップｓ１８において、ｍ≧２の場合は、後述する顔文字中の顔部分（“目口目”に該当する部分）のみでも抽出してしまうことになるため、ｍ≧３としても良い。
【００３９】
図１１は左右対称文字列抽出処理の他の例、ここでは顔文字を構成する左右対称文字列がそのほぼ中央に、連続する２つの同一文字または連続する一対の対称文字（通常、２つの“目”に当たる文字）を有する、例えば「(^^)」、「(｀´)」のような文字列である場合に有効な処理の流れを示すものである。図中、（ｉ，ｊ）は処理の基点となる連続する２つの同一文字または連続する一対の対称文字の文字位置、ｍは当該処理の基点となる連続する２つの同一文字または連続する一対の対称文字の文字位置から文頭方向および文末方向に何文字離れたかを示す文字数である。
【００４０】
まず、左右対称文字列抽出部１１は、テキストから連続する２つの同一文字および連続する一対の対称文字を抽出し、それらの文字位置（ｉ，ｊ）を図示しない記憶部に記憶しておく（ｓ２１）。
【００４１】
次に、左右対称文字列抽出部１１は、抽出した前記テキスト中の任意の連続する２つの同一文字または連続する一対の対称文字を基点としてその文頭方向および文末方向に隣接する文字、即ち記憶部から連続する２つの同一文字または連続する一対の対称文字の文字位置（ｉ，ｊ）を一つ取り出し（ｓ２２）、ｍ＝１として（ｉ−ｍ），（ｊ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ２３〜ｓ１６’）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。この際、同一文字または対称文字でなければ、ステップｓ１８を経てステップｓ２２に戻る。
【００４２】
なお、取り出された文字位置（ｉ，ｊ）は、その時点で記憶部から消去されるものとする。
【００４３】
次に、左右対称文字列抽出部１１は、記憶部から別の連続する２つの同一文字または連続する一対の対称文字の文字位置（ｉ，ｊ）を一つ取り出し（ｓ２２）、前記同様にｍ＝１として（ｉ−ｍ），（ｊ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ２３〜ｓ１６’）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。
【００４４】
この際、左右対称文字列抽出部１１は、同一文字または対称文字であればステップｓ１５に戻り、更にその文頭方向および文末方向に隣接する文字、即ちｍ＝２の場合の（ｉ−ｍ），（ｊ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ１５，ｓ１６’）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。
【００４５】
ここで、同一文字または対称文字でなければ、左右対称文字列抽出部１１はステップｓ１８に移り、ｍ＝２であるから、それまでの文頭方向および文末方向の文字の位置である（ｉ−ｍ＋１），（ｊ＋ｍ−１）を左右対称文字列に対応する範囲として出力する（ｓ１９’）。
【００４６】
以下、前記同様の処理をテキスト中の連続する２つの同一文字または連続する一対の対称文字の全てを基点として繰り返す、つまり記憶部に記憶された文字位置（ｉ，ｊ）が全てなくなるまで繰り返す（ｓ２３）。
【００４７】
なお、通常、左右対称文字列抽出部１１では、図１０、図１１で説明した処理の両方を実行するものとする（実行の順序はどちらが先でもかまわない。）が、いずれか一方のみ実行することを否定するものではない。
【００４８】
＜第２の実施の形態＞
図１２は本発明の顔文字検出装置の第２の実施の形態、ここでは顔文字を構成する文字列中の顔部分の文字列を基点として左右対称文字列に対応する範囲を抽出するようにしたもので、図中、第１の実施の形態と同一構成部分は同一符号をもって表す。即ち、１はＨＴＭＬタグ除去部、３は文字分割部、１２は左右対称情報生成部、１３はモデル記憶部、１４はＢＩＯ判定部、２１は顔部分辞書記憶部、２２は顔部分抽出部、２３は左右対称文字列抽出部である。
【００４９】
ここで、顔部分の文字列とは、“目”に当たる文字を２つ並べた文字列（“目目”）や、“目”に当たる文字を２つ並べ、更にその間に“口”に当たる文字を並べた文字列（“目口目”）のことを意味し、顔文字「(X T)」における顔部分「X T」のように完全には左右対称でないものも含むものとする。
【００５０】
顔部分辞書記憶部２１は、顔文字を構成する文字列中の顔部分の文字列の集合を登録してなる顔部分辞書を記憶している。図１３に顔部分辞書の一例を示す。なお、図１３では顔部分の元となる顔文字も併記しているが、同一の顔部分の文字列が複数種類の顔文字に含まれる場合があることを示すためであり、顔文字（の文字列）まで登録する必要があるということではない。
【００５１】
顔部分抽出部２２は、テキストから顔部分辞書記憶部２１に記憶された顔部分辞書に登録されている顔部分の文字列に対応する範囲を抽出、詳細にはテキストに対して顔部分辞書内の顔部分の文字列毎にパターンマッチングを行い、該マッチングした顔部分の文字列に対応する範囲の文字位置を取得する。なお、顔部分の文字列に対応する範囲の具体的な文字位置としては、当該範囲に含まれる全ての文字の文字位置の外、当該範囲の文頭側の文字および文末側の文字の文字位置のペアでも良い。
【００５２】
左右対称文字列抽出部２３は、顔部分抽出部２２により抽出された顔部分の文字列に対応する範囲の文字位置に基づいて、後述するようにテキストから左右対称文字列に対応する範囲の文字位置を取得する。なお、左右対称文字列に対応する範囲の具体的な文字位置として、当該範囲に含まれる全ての文字の文字位置の外、当該範囲の文頭側の文字および文末側の文字の文字位置のペアでも良いことは第１の実施の形態の場合と同様である。
【００５３】
図１４は本実施の形態の顔文字検出装置における処理の流れを示すもので、以下、例を挙げてその動作を詳細に説明する。
【００５４】
ＨＴＭＬタグ除去部１に入力されたテキストは、既存のＨＴＭＬタグ除去技術により、当該テキスト中のＨＴＭＬタグが除去され、文字分割部３、顔部分抽出部２２および左右対称文字列抽出部２３に出力される（ｓ１）。例えば、入力テキストが「今日はとっても楽しかったです。(^^)<br>明日も楽しみ！<br>」であれば、ＨＴＭＬタグ“<br>”が除かれ、「今日はとっても楽しかったです。(^^)明日も楽しみ！」となる。なお、入力されたテキストがＨＴＭＬタグを含まない純粋なテキストであれば、ＨＴＭＬタグ除去部１およびＨＴＭＬタグ除去処理ｓ１が不要であることは第１の実施の形態の場合と同様である。
【００５５】
文字分割部３では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストを文字単位（文字コード単位）に分割し、左右対称情報生成部１２に出力する（ｓ２）。例えば、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」の場合、区切り記号を“/”で表すと、「今/日/は/と/っ/て/も/楽/し/か/っ/た/で/す/。/(/^/^/)/明/日/も/楽/し/み/！」となる。
【００５６】
顔部分抽出部２２では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストから顔部分辞書記憶部２１に記憶された顔部分辞書に登録されている顔部分の文字列に対応する範囲を抽出し、その文字位置を取得する（ｓ６）。例えば、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」の場合、文字列「^^」が顔部分として抽出され、その文字位置は（１７，１８）となる。
【００５７】
左右対称文字列抽出部２３では、ＨＴＭＬタグ除去部１でＨＴＭＬタグが除去されたテキストから、顔部分抽出部２２により抽出された顔部分の文字列に対応する範囲の文字位置に基づいて左右対称文字列に対応する範囲を抽出し、その文字位置を取得する（ｓ３’）。例えば、ＨＴＭＬタグ除去後のテキストが「今日はとっても楽しかったです。(^^)明日も楽しみ！」であり、顔部分の文字列に対応する範囲の文字位置が（１７，１８）である場合、文字列「^^」を顔部分とする文字列「(^^)」が左右対称文字列として抽出され、その文字位置は「１６，１７，１８，１９」（文頭側の文字および文末側の文字の文字位置のペアで表せば「１６，１９」）となる。
【００５８】
以下、第１の実施の形態の場合と同様の左右対称情報生成処理（ｓ４）およびＢＩＯ判定処理（ｓ５）が行われる。
【００５９】
なお、文字分割処理と、顔部分抽出処理および左右対称文字列抽出処理との順序は逆でも良く、あるいは同時であっても良い。
【００６０】
本実施の形態によれば、顔文字中の顔部分を基点として左右対称文字列を抽出するため、必ずしも完全に左右対称でない文字列を含む顔文字の検出も可能となる。
【００６１】
図１５は本実施の形態における左右対称文字列抽出処理の流れを示すものである。図中、（ｉ，ｊ）は処理の基点となる顔部分の文字列に対応する範囲の文字位置（但し、ここでは当該範囲の文頭側の文字および文末側の文字の文字位置のペアとする。）、ｍは当該処理の基点となる顔部分の文字列に対応する範囲の文字位置から文頭方向および文末方向に何文字離れたかを示す文字数である。なお、顔部分抽出部２２で抽出された顔部分の文字列に対応する範囲の文字位置は、図示しない記憶部に記憶されているものとする。
【００６２】
まず、左右対称文字列抽出部２３は、抽出された前記テキストにおける任意の顔部分の範囲を基点としてその文頭方向および文末方向に隣接する文字、即ち記憶部から顔部分の範囲の文字位置（ｉ，ｊ）を一つ取り出し（ｓ３１）、ｍ＝１として（ｉ−ｍ），（ｊ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ３２〜ｓ１６’）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。この際、同一文字または対称文字でなければ、ステップｓ１８を経てステップｓ３１に戻る。
【００６３】
なお、取り出された文字位置（ｉ，ｊ）は、その時点で記憶部から消去されるものとする。
【００６４】
次に、左右対称文字列抽出部２３は、記憶部から別の顔部分の範囲の文字位置（ｉ，ｊ）を一つ取り出し（ｓ３１）、前記同様にｍ＝１として（ｉ−ｍ），（ｊ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ３２〜ｓ１６’）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。
【００６５】
この際、左右対称文字列抽出部２３は、同一文字または対称文字であればステップｓ１５に戻り、更にその文頭方向および文末方向に隣接する文字、即ちｍ＝２の場合の（ｉ−ｍ），（ｊ＋ｍ）の文字位置の文字を当該テキストからそれぞれ取得し（ｓ１５，ｓ１６’）、これらが同一文字または対称文字かどうかを判定する（ｓ１７）。
【００６６】
ここで、同一文字または対称文字でなければ、左右対称文字列抽出部２３はステップｓ１８に移り、ｍ＝２であるから、それまでの文頭方向および文末方向の文字の位置である（ｉ−ｍ＋１），（ｊ＋ｍ−１）を左右対称文字列に対応する範囲として出力する（ｓ１９’）。
【００６７】
以下、前記同様の処理をテキスト中の全ての顔部分の範囲を基点として繰り返す、つまり記憶部に記憶された文字位置（ｉ，ｊ）が全てなくなるまで繰り返す（ｓ３２）。
【００６８】
なお、本発明は、周知のコンピュータに媒体もしくは通信回線を介して、図６の構成図に示された機能を実現するプログラムあるいは図８のフローチャートに示された手順を備えるプログラムをインストールすることによっても実現可能である。
【産業上の利用可能性】
【００６９】
本発明によってテキスト中の顔文字を検出し、これを削除することで、当該テキストに対する形態素解析の精度を向上させることが可能となる。
【図面の簡単な説明】
【００７０】
【図１】従来の顔文字検出技術における素性の説明図
【図２】従来の顔文字検出装置の一例を示す構成図
【図３】形態素品詞抽出結果の一例を示す説明図
【図４】従来の顔文字検出技術によるＢＩＯ判定のようすを示す説明図
【図５】本発明の顔文字検出技術における素性の説明図
【図６】本発明の顔文字検出装置の第１の実施の形態を示す構成図
【図７】図６の顔文字検出装置における処理の流れを示すフローチャート
【図８】左右対称情報生成結果の一例を示す説明図
【図９】本発明の顔文字検出技術によるＢＩＯ判定のようすを示す説明図
【図１０】左右対称文字列抽出処理の一例を示すフローチャート
【図１１】左右対称文字列抽出処理の他の例を示すフローチャート
【図１２】本発明の顔文字検出装置の第２の実施の形態を示す構成図
【図１３】顔部分辞書の一例を示す説明図
【図１４】図１２の顔文字検出装置における処理の流れを示すフローチャート
【図１５】左右対称文字列抽出処理の更に他の例を示すフローチャート
【符号の説明】
【００７１】
１：ＨＴＭＬタグ除去部、３：文字分割部、１１，２３：左右対称文字列抽出部、１２：左右対称情報生成部、１３：モデル記憶部、１４：ＢＩＯ判定部、２１：顔部分辞書記憶部、２２：顔部分抽出部。
【図１】
2010102370.tif 000003
【図２】
2010102370.tif 000004
【図３】
2010102370.tif 000005
【図４】
2010102370.tif 000006
【図５】
2010102370.tif 000007
【図６】
2010102370.tif 000008
【図７】
2010102370.tif 000009
【図８】
2010102370.tif 000010
【図９】
2010102370.tif 000011
【図１０】
2010102370.tif 000012
【図１１】
2010102370.tif 000013
【図１２】
2010102370.tif 000014
【図１３】
2010102370.tif 000015
【図１４】
2010102370.tif 000016
【図１５】
2010102370.tif 000017