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