(57)【特許請求の範囲】
【請求項１】
複数の記号で表された顔文字の読み情報を推定する顔文字読み情報推定装置であって、
複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要記号と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を格納する格納部と、
外部からの顔文字の入力を受け付ける受付部と、
前記顔文字辞書に登録されている顔文字毎に、前記主要記号と前記受付部に入力された前記顔文字を表す複数の記号とを比較し、前記入力された顔文字を表す複数の記号全体における前記主要記号と同一の記号の割合を取得する取得部と、
前記取得部で取得された割合に基づいて、前記入力された顔文字と、前記顔文字辞書に登録されている顔文字との類似度を算出する算出部と、
前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み情報の中から、前記入力された顔文字の読み情報を推定する推定部と、を備える顔文字読み情報推定装置。
【請求項２】
前記格納部に格納されている顔文字辞書には、前記顔文字の読み情報として、当該顔文字の読みと、アクセントとが登録されており、
前記推定部は、前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み及びアクセントの中から、前記入力された顔文字の読み及びアクセントを推定することを特徴とする請求項１に記載の顔文字読み情報推定装置。
【請求項３】
前記格納部に格納されている顔文字辞書には、前記少なくとも１つの主要記号とともに、前記顔文字を表す複数の記号のうち前記主要記号以外の記号である従属記号も登録されており、
前記算出部は、前記顔文字辞書から前記割合が所定の第１の閾値以上である顔文字を抽出するとともに、当該抽出された顔文字の主要記号及び従属記号の並び順と、前記入力された顔文字の前記主要記号と同一の記号及び前記従属記号と同一の記号の並び順との矛盾箇所の数を算出し、当該矛盾箇所の数と、前記割合とに基づいて、前記類似度を算出することを特徴とする請求項１又は２に記載の顔文字読み情報推定装置。
【請求項４】
前記推定部は、前記算出部で算出された類似度が最も大きい顔文字の読み情報を、前記入力された顔文字の読み情報として推定することを特徴とする請求項１〜３のいずれか一項に記載の顔文字読み情報推定装置。
【請求項５】
前記推定部は、前記算出部で算出された類似度が所定の第２の閾値以上である顔文字の読み情報の全てを、前記入力された顔文字の読み情報として推定することを特徴とする請求項１〜３のいずれか一項に記載の顔文字読み情報推定装置。
【請求項６】
請求項１〜５のいずれか一項に記載の顔文字読み情報推定装置と、
前記顔文字読み情報推定装置の前記推定部で推定された、前記入力された顔文字の読み情報を、文字データ又は音声として出力する出力装置と、を備える情報端末。
【請求項７】
複数の記号で表された顔文字の読み情報をコンピュータを用いて推定する顔文字読み情報推定方法であって、
外部からの顔文字の入力を受け付ける受付工程と、
複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要記号と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を参照して、当該顔文字辞書に登録されている顔文字毎に、前記主要記号と前記入力された前記顔文字を表す複数の記号とを比較し、前記入力された顔文字を表す複数の記号全体における前記主要記号と同一の記号の割合を取得する取得工程と、
前記取得工程で取得された割合に基づいて、前記入力された顔文字と、前記顔文字辞書に登録されている顔文字との類似度を算出する算出工程と、
前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み情報の中から、前記入力された顔文字の読み情報を推定する推定工程と、をコンピュータが実行することを特徴とする顔文字読み情報推定方法。
【請求項８】
コンピュータに、複数の記号で表された顔文字の読み情報を推定させる顔文字読み情報推定プログラムであって、
コンピュータに、
外部からの顔文字の入力を受け付ける受付工程、
複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要記号と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を参照して、当該顔文字辞書に登録されている顔文字毎に、前記主要記号と前記入力された前記顔文字を表す複数の記号とを比較し、前記入力された顔文字を表す複数の記号全体における前記主要記号と同一の記号の割合を取得する取得工程、
前記取得工程で取得された割合に基づいて、前記入力された顔文字と、前記顔文字辞書に登録されている顔文字との類似度を算出する算出工程、及び
前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み情報の中から、前記入力された顔文字の読み情報を推定する推定工程、を実行させることを特徴とする顔文字読み情報推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、顔文字読み情報推定装置、顔文字読み情報推定方法、及び顔文字読み情報推定プログラム、並びに情報端末に関する。
【背景技術】
【０００２】
音声合成の分野においては、複数の記号の組み合わせで表記される顔文字（『（^_^）』、『(T_T)』など）を、顔文字が表す意味として読み上げるための方法が検討・開発されてきている（例えば、特許文献１〜３参照）。これらの方法では、顔文字（『（^_^）』、『(T_T)』など）を「カッコ、ハット、アンダーバー…」というように記号として読み上げずに、「ニコリ」や「エーン」のように読み上げるようにする。なお、本明細書では、説明の便宜上、二重かぎ括弧『』に囲まれた文字列は、顔文字又は顔文字の構成部品を意味するものとする。すなわち、二重かぎ括弧『』は顔文字の一部を構成しないものとする。
【０００３】
上記特許文献１では、複数の顔文字の表記と、これに対応する読みを予め辞書に登録しておき、当該辞書から顔文字の読みを検索することで、顔文字が表す意味を読み上げる技術が開示されている。また、特許文献２では、予め、顔文字の輪郭となる文字を輪郭記号表として定義しておき、輪郭記号を頼りに顔文字部分を検出し、輪郭内部に存在する特徴文字の数に応じて、読み方を決定する技術が開示されている。更に、特許文献３では、目の部品、口の部品というように、顔の部品毎に文字（記号）と意味を予め定義しておき、顔文字全体が表す意味を、部品の積み上げで解析する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３０５９８７号公報
【特許文献２】特開２００２−２６８６６５号公報
【特許文献３】特開２００５−２８４１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、予め辞書登録しておいた顔文字しか読み上げることができず、バリエーションが豊富な顔文字を読み上げることができない。また、特許文献２では、輪郭記号の全部又は一部が存在しない顔文字（『^_^；』、『´ω`)ノ』など）や輪郭記号が別の意味で用いられている顔文字（輪郭記号（丸括弧）が頬を表す『(  ´)Д(｀ )』など）を読み上げることができない。
【０００６】
また、特許文献２及び３では、同じ記号が異なる顔のパーツとして用いられる場合（手と鼻として同じ記号が用いられる『(  ゜∋゜)』や『∈(゜◎゜)∋』など）や、想定した顔部品が揃っていない場合（片方の目が存在しない『（´Д⊂グスン』など）は正しく読み上げることができない。
【０００７】
そこで本件は上記の課題に鑑みてなされたものであり、多種多様な顔文字に対して、その意味を表す読み情報を精度良く推定することが可能な顔文字読み情報推定装置、顔文字読み情報推定方法、及び顔文字読み情報推定プログラムを提供することを目的とする。また、本件は、ユーザに対して顔文字の適切な読みを提供することが可能な情報端末を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本明細書に記載の顔文字読み情報推定装置は、複数の記号で表された顔文字の読み情報を推定する顔文字読み情報推定装置であって、複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要記号と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を格納する格納部と、外部からの顔文字の入力を受け付ける受付部と、前記顔文字辞書に登録されている顔文字毎に、前記主要記号と前記受付部に入力された前記顔文字を表す複数の記号とを比較し、前記入力された顔文字を表す複数の記号全体における前記主要記号と同一の記号の割合を取得する取得部と、前記取得部で取得された割合に基づいて、前記入力された顔文字と、前記顔文字辞書に登録されている顔文字との類似度を算出する算出部と、前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み情報の中から、前記入力された顔文字の読み情報を推定する推定部と、を備える顔文字読み情報推定装置である。
【０００９】
本明細書に記載の情報端末は、本明細書に記載の顔文字読み情報推定装置と、前記顔文字読み情報推定装置の前記推定部で推定された、前記入力された顔文字の読み情報を、文字データ又は音声として出力する出力装置と、を備える情報端末である。
【００１０】
本明細書に記載の顔文字読み情報推定方法は、複数の記号で表された顔文字の読み情報をコンピュータを用いて推定する顔文字読み情報推定方法であって、外部からの顔文字の入力を受け付ける受付工程と、複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要記号と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を参照して、当該顔文字辞書に登録されている顔文字毎に、前記主要記号と前記入力された前記顔文字を表す複数の記号とを比較し、前記入力された顔文字を表す複数の記号全体における前記主要記号と同一の記号の割合を取得する取得工程と、前記取得工程で取得された割合に基づいて、前記入力された顔文字と、前記顔文字辞書に登録されている顔文字との類似度を算出する算出工程と、前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み情報の中から、前記入力された顔文字の読み情報を推定する推定工程と、をコンピュータが実行する顔文字読み情報推定方法である。
【００１１】
本明細書に記載の顔文字読み情報推定プログラムは、コンピュータに、複数の記号で表された顔文字の読み情報を推定させる顔文字読み情報推定プログラムであって、コンピュータに、外部からの顔文字の入力を受け付ける受付工程、複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要記号と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を参照して、当該顔文字辞書に登録されている顔文字毎に、前記主要記号と前記入力された前記顔文字を表す複数の記号とを比較し、前記入力された顔文字を表す複数の記号全体における前記主要記号と同一の記号の割合を取得する取得工程、前記取得工程で取得された割合に基づいて、前記入力された顔文字と、前記顔文字辞書に登録されている顔文字との類似度を算出する算出工程、及び前記類似度に基づいて、前記顔文字辞書に登録されている顔文字の読み情報の中から、前記入力された顔文字の読み情報を推定する推定工程、を実行させる顔文字読み情報推定プログラムである。
【発明の効果】
【００１２】
本明細書に記載の顔文字読み情報推定装置、顔文字読み情報推定方法、及び顔文字読み情報推定プログラムは、多種多様な顔文字に対して、その意味を表す読み情報を精度良く推定することが可能なできるという効果を奏する。また、本明細書に記載の情報端末は、ユーザに対して顔文字の適切な読みを提供することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係る携帯電話の構成を概略的に示すブロック図である。
【図２】図１の処理部のハードウェア構成を示す図である。
【図３】処理部の機能ブロック図である。
【図４】図３の顔文字抽出部の構成図である。
【図５】図３の顔文字読み推定部の構成図である。
【図６】一実施形態に係る携帯電話（処理部）の一連の処理を示すフローチャートである。
【図７】図６のステップＳ３における具体的な処理内容を示すフローチャートである。
【図８】図８（ａ）〜図８（ｄ）は、図７の処理を説明するための図（その１）である。
【図９】図９（ａ）〜図９（ｄ）は、図７の処理を説明するための図（その２）である。
【図１０】図６のステップＳ５における具体的な処理内容を示すフローチャートである。
【図１１】顔文字辞書の具体的な登録内容を示す図である。
【図１２】類似度算出部に出力された対応付け結果を示す図である。
【図１３】図１０のステップＳ７０における具体的な処理内容を示すフローチャートである。
【図１４】図１３の処理を説明するための図である。
【図１５】図１０のステップＳ７１における具体的な処理内容を示すフローチャートである。
【図１６】図１５の処理を説明するための図である。
【図１７】辞書部品順序と、未知顔文字対応付け順序とを示す図である。
【図１８】図１０のステップＳ７２における具体的な処理内容を示すフローチャートである。
【図１９】図１８の処理を説明するための図（その１）である。
【図２０】図１８の処理を説明するための図（その２）である。
【図２１】図１８の処理を説明するための図（その３）である。
【図２２】図１８の処理を説明するための図（その４）である。
【発明を実施するための形態】
【００１４】
以下、一実施形態について、図１〜図２２に基づいて詳細に説明する。図１には、一実施形態に係る携帯電話１００の構成がブロック図にて示されている。この図１に示すように、携帯電話１００は、入力部５２と、表示ディスプレイ５４と、スピーカ５６と、処理部５０と、を備える。
【００１５】
入力部５２は、キーボードやタッチパネルなどを含み、ユーザが処理部５０に対する指示を入力するためのインタフェースである。また、入力部５２には通話等において用いるマイクや、メールやＷｅｂサイトのデータなど無線通信で送られてくるテキストを受け取る通信デバイスも含まれている。表示ディスプレイ５４は、液晶ディスプレイや有機ＥＬディスプレイなどを含み、処理部５０による処理結果を表示する。スピーカ５６は、通話相手の声などを出力するほか、処理部５０の読み上げ機能による、メールやブラウザ内の文書の読み上げ音声を出力する。
【００１６】
処理部５０は、一般的な携帯電話における各種処理（通話、メール、インターネット、カメラ撮影など）を行うとともに、文書の読み上げ処理を実行する。図２には、処理部５０のハードウェア構成が示されている。この図２に示すように、処理部５０は、ＣＰＵ９０、ＲＯＭ９２、ＲＡＭ９４、記憶部（ここでは一例としてＨＤＤ（Hard Disk Drive））９６、入出力部９７等を備えている。これら処理部５０の構成各部は、バス９８に接続されている。処理部５０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（顔文字読み情報推定プログラムを含む）をＣＰＵ９０が実行することにより、図３の各部の機能が実現される。また、入出力部９７には、図１の入力部５２、表示ディスプレイ５４、及びスピーカ５６等が接続されている。なお、上記においては、記憶部９６としてＨＤＤを採用しているが、これに限らず、耐衝撃性、省電力性の観点からＳＳＤ（Solid State Drive）を採用することとしても良い。
【００１７】
図３は、処理部５０のうち、文書読み上げに関する機能を示した機能ブロック図である。この図３に示すように、処理部５０は、顔文字読み情報推定装置としての言語解析部２、及び出力装置としての波形処理部３、として機能する。言語解析部２は、入力されたテキストや顔文字を解析して、その読み、アクセントなどを推定する。波形処理部３は、言語解析部２で解析された読みの情報から音声波形を生成する。
【００１８】
言語解析部２は、より詳細には、図３に示すように、テキスト入力受付部２１、顔文字抽出部２２、言語辞書格納部２３、通常テキスト解析部２４、格納部としての顔文字辞書格納部２５、顔文字読み推定部２６、読み出力部２７を含む。
【００１９】
テキスト入力受付部２１は、テキスト情報の入力を受け付け、顔文字抽出部２２へテキスト文字列を出力する。なお、テキスト入力受付部２１へのテキストの入力方法としては、キーボードからの直接入力方法や、有線又は無線ネットワークを介した通信による入力方法を採用することができる。また、テキスト入力受付部２１に入力されるテキストは、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの記録メディアから取得してもよいし、スキャナを用いてスキャンした画像データをＯＣＲ（Optical Character Reader）処理して取得してもよい。更には、その他一般的なテキストの入力方法を、適宜採用することとしてもよい。
【００２０】
顔文字抽出部２２は、テキスト入力受付部２１から出力されたテキスト文字列を受け付け、記号が二つ以上連続している部分を顔文字として抽出する。抽出された顔文字は顔文字読み推定部２６へ出力され、顔文字ではない通常テキストは、通常テキスト解析部２４へ出力される。
【００２１】
ここで、顔文字抽出部２２の詳細について、顔文字抽出部２２の構成図である図４に基づいて説明する。顔文字抽出部２２は、入力バッファ２２１、文字判定部２２４、顔文字バッファ２２２、通常文字列バッファ２２３、及び出力部２２５を含んでいる。入力バッファ２２１にはテキスト入力受付部２１から出力された入力テキストが格納される。文字判定部２２４は、入力テキスト中で記号が２文字以上連続している部分を顔文字と判定し、当該部分を顔文字バッファ２２２に格納する。また、文字判定部２２４は、顔文字以外の部分については通常文字列と判定し、通常文字列バッファ２２３に格納する。顔文字バッファ２２２には入力テキストから抽出された顔文字が格納され、通常文字列バッファ２２３には、入力テキスト中の顔文字以外の通常文字列が格納される。出力部２２５は、顔文字バッファ２２２に格納されている文字列を、顔文字読み推定部２６に出力するとともに、通常文字列バッファ２２３に格納されている文字列を、通常テキスト解析部２４に出力する。
【００２２】
図３に戻り、通常テキスト解析部２４は、言語辞書格納部２３を参照して、テキストの読み・アクセントなどを決定し、読みとその他の韻律記号を読み出力部２７に出力する。ここで、テキスト解析の処理としては、一般的に知られている形態素解析処理を用いることができる。また、出力形式としては、JEITA IT-4002に示される日本語テキスト音声合成用記号のカナレベルの表記を用いることができる。
【００２３】
顔文字辞書格納部２５には、図１１に示すような顔文字辞書が格納されている。この図１１に示すように、顔文字辞書には、「表記」と、読み情報としての「読み・アクセント」と、「主要部品」と、「従属部品」とが顔文字毎に通し番号（データＮｏ．）が付与された状態で紐付けられて登録されている。
【００２４】
「表記」には、既知の顔文字全体の記号が登録されている。「読み・アクセント」には顔文字の意味を表す読みとアクセントを登録する。読みとアクセントは、例えばJEITA IT-4002に示される日本語テキスト音声合成用記号のカナレベルの表記により登録することができる。
【００２５】
「主要部品」は、顔文字の意味を担う、すなわち、顔文字の意味内容に寄与する、として予め抽出された主要記号であり、例えば、同じ意味を表す既知の複数の顔文字間で重複している記号である。「従属部品」は、顔文字の意味との関係が薄い記号であり、主要部品以外の従属記号である。なお、連続する同一の記号は一つだけ登録するようにしてもよい。
【００２６】
例えば、「ワーイ」という意味の既知の顔文字が『＼(^O^)／』『＼(^^＠)／』『＼^o^／』の３つあったとする。これらに共通する記号は、『＼』、左側の『^』、右側の『^』、『／』である。したがって、これら４つの記号が「ワーイ」の主要部品となる。そして、各顔文字から主要部品を除いたものが各顔文字の従属部品となる。すなわち、顔文字『＼(^O^)／』であれば、その主要部品は『＼^^／』、従属部品は『(O)』となる。また、顔文字『＼(^^＠)／』であれば、主要部品は『＼^^／』、従属部品は『(＠)』となる。更に、顔文字『＼^o^／』であれば、主要部品は『＼^^／』、従属部品は『o』となる。
【００２７】
なお、主要部品の抽出方法としては、同じ意味を表す既知の複数の顔文字のうちある一定数以上の顔文字間で共通する部品を主要部品としても良い。このようにすることで、より多くのバリエーションに対応できるようになる。
【００２８】
図３に戻り、顔文字読み推定部２６は、入力された顔文字に対して、図１１の顔文字辞書に登録されている顔文字との類似度を計算し、当該類似度に基づいて、入力された顔文字の読みを推定する。ただし、類似度が予め定められている閾値を超えない場合は、顔文字ではないと判定し、通常テキスト解析部２４へ出力する。通常テキスト解析部２４では、記号としての読みを解析する。
【００２９】
ここで、顔文字読み推定部２６は、図５に示すように、受付部としての顔文字入力受付部２６０と、取得部としての割合取得部２６１と、算出部としての類似度算出部２６２と、推定部としての読み推定部２６４と、を有する。顔文字入力受付部２６０は、顔文字抽出部２２の出力部２２５から出力された顔文字の入力を受け付ける。割合取得部２６１は、主要部品対応付け部２６１１と、従属部品対応付け部２６１２とを有している。類似度算出部２６２は、割合取得部２６１から出力されたデータに基づいて、顔文字抽出部２２から入力された顔文字と、顔文字辞書に登録されている各顔文字との類似度を算出する。読み推定部２６４は、類似度算出部２６２において算出された類似度に基づいて、顔文字抽出部２２から入力された顔文字の読みを推定し、読み出力部２７に対して出力する。ただし、類似度が予め定められている閾値を超えない場合は、顔文字ではないと判定し、顔文字入力受付部で受け付けたテキストを通常テキスト解析部２４へ出力する。
【００３０】
読み出力部２７は、通常テキスト解析部２４から出力された通常テキストの読みと、顔文字読み推定部２６から出力された顔文字の読みを順番につなぎ合わせ、最終的な読みとして、波形処理部３へ出力する。
【００３１】
波形処理部３は、韻律辞書格納部３１と、波形辞書格納部３２と、音声生成部３３とを有する。韻律辞書格納部３１には、イントネーションやリズムといった人間の喋り方の特徴を表すデータが登録された韻律辞書が格納されている。波形辞書格納部３２には、人間の音声データそのもの又は音声データから抽出した音声特徴量が登録された波形辞書が格納されている。音声生成部３３は、読み出力部２７から入力されたテキストの読みと、韻律辞書及び波形辞書のデータから音声を生成する。なお、音声生成部３３の音声生成の方法としては、コーパスベース音声合成方式や、フォルマント合成方式など公知の方法を採用することができる。
【００３２】
次に、図６〜図２２に基づいて、処理部５０におけるテキスト読み上げ処理について、詳細に説明する。まず、図６のステップＳ１では、テキスト入力受付部２１が、前述した種々方法を用いて、入力テキストを取得する。次いで、ステップＳ２では、顔文字抽出部２２が、テキスト入力受付部２１から出力される入力テキストを取り込む。
【００３３】
次いで、ステップＳ３のサブルーチンでは、顔文字抽出部２２が、入力テキストから解析単位を抽出する処理を実行する。なお、解析単位とは、２文字以上の記号の文字列の連続区間、または、それ以外の文字列の連続区間を意味する。このステップＳ３においては、顔文字抽出部２２は、図７に沿った処理を実行する。なお、図７の処理の説明では、一例として、図８（ａ）に示す「悲しい(´∩｀。)」という入力テキストを、顔文字抽出部２２が取り込んだものとする。
【００３４】
図７の処理では、まず、ステップＳ２１において、文字判定部２２４が、入力バッファ２２１（図４参照）の先頭にポインタを設定する。具体的には、図８（ａ）に示すように、入力テキスト「悲しい(´∩｀。)」のうち、文字「悲」の部分にポインタを設定する。
【００３５】
次いで、ステップＳ２２では、文字判定部２２４が、ポインタが指す文字とその直後の文字が記号であるか否かを判断する。ここではポインタが指す文字「悲」と直後の文字「し」は、記号でないので、ステップＳ２２の判断は否定されて、ステップＳ２７に移行する。
【００３６】
ステップＳ２７に移行すると、文字判定部２２４は、ポインタが指す文字を入力バッファ２２１から削除し、削除した文字を通常文字列バッファ２２３へ格納する。次いで、ステップＳ２８では、文字判定部２２４が、入力バッファ２２１のポインタを１文字進める。そして、次のステップＳ２９では、文字判定部２２４は、ポインタが入力バッファ２２１の最終文字を超えたか、あるいはポインタが指す文字とその直後の文字が共に記号であるか否かを判断する。ここでの判断が否定される場合には、ステップＳ２２に戻る。なお、図８（ａ）の例では、図８（ｂ）に示すように、「悲しい」の３文字が通常文字列バッファ２２３に格納されるまで、ステップＳ２２、Ｓ２７〜Ｓ２９の処理・判断が繰り返される。そして、図８（ｂ）に示すように、ポインタが指す文字が記号『（』であり、その直後の文字が『´』となった場合に、ステップＳ２９の判断が肯定されて、ステップＳ３０に移行する。
【００３７】
ステップＳ３０では、出力部２２５が、通常文字列バッファ２２３の内容を図３の通常テキスト解析部２４に対して出力する（図８（ｃ）参照）。そして、次のステップＳ３１では、文字判定部２２４が、図８（ｄ）に示すように、削除された入力バッファ２２１の文字分だけ、入力バッファ２２１のデータを左詰にする。その後、図６のステップＳ４に移行する。
【００３８】
図６のステップＳ４では、顔文字抽出部２２が、出力した文字列が、顔文字であるか否かを判断する。ここでは、出力部２２５が、通常文字列バッファ２２３の内容「悲しい」を図３の通常テキスト解析部２４に対して出力したため、ステップＳ４の判断は否定され、ステップＳ６に移行する。ステップＳ６では、通常テキスト解析部２４が、言語辞書格納部２３に格納されている言語辞書に基づいて、テキストの読みを解析し、解析した読み情報を読み出力部２７へ出力する。次いで、ステップＳ７では、読み出力部２７が、読み情報を、読み出力部２７が保有するバッファに、順に蓄積する。次いで、ステップＳ８では、顔文字抽出部２２の文字判定部２２４が、入力バッファ２２１が空か否かを判断する。ここでは、まだ、テキスト『(´∩｀。)』が入力バッファ２２１に残っているので、判断は否定されて、ステップＳ３（図７のステップＳ２１）に戻る。
【００３９】
図７のステップＳ２１では、文字判定部２２４が、図９（ａ）に示すように、ポインタを入力バッファ２２１の先頭に設定する。そして、ステップＳ２２では、文字判定部２２４が、ポインタが指す文字とその直後の文字が記号か否かを判断する。ここでは、ポインタが指す文字『（』とその直後の文字『´』がそれぞれ記号であるので、判断は肯定されて、ステップＳ２３に移行する。
【００４０】
ステップＳ２３では、文字判定部２２４が、ポインタが指す文字を入力バッファ２２１から削除し、削除した文字を顔文字バッファ２２２へ格納する。次いで、ステップＳ２４では、文字判定部２２４が、入力バッファ２２１のポインタを１文字進める。そして、次のステップＳ２５では、文字判定部２２４が、ポインタが入力バッファの最終文字を超えたか、或いはポインタが指す文字が記号以外であるか否かを判断する。ここでの判断が否定されると、ステップＳ２３に戻る。その後、ステップＳ２３〜Ｓ２５を繰り返し、ポインタが入力バッファの最終文字を超えた段階（図９（ｂ）参照）で、ステップＳ２６に移行する。
【００４１】
ステップＳ２６では、出力部２２５が、顔文字バッファ２２２の内容を、顔文字読み推定部２６に対して出力する（図９（ｃ）参照）。次いで、ステップＳ３１では、文字判定部２２４が、削除された入力バッファの文字分入力バッファ２２１のデータを左詰にする。なお、図９（ｄ）では、入力バッファ２２１には、データは存在していない。その後、図６のステップＳ４に移行する。
【００４２】
図６のステップＳ４では、顔文字抽出部２２が、出力した文字列が、顔文字であるか否かを判断する。ここでの判断が肯定されると、ステップＳ５に移行する。ここでは、出力部２２５が、通常文字列バッファ２２２の内容『(´∩｀。)』を顔文字読み推定部２６に対して出力したため、ステップＳ４の判断が肯定され、ステップＳ５に進む。ステップＳ５では、顔文字読み推定部２６が、顔文字読み推定処理のサブルーチンを実行する。具体的には、ステップＳ５では、顔文字読み推定部２６が、図１０の処理を実行する。
【００４３】
ここでは、前述のように、顔文字読み推定部２６の顔文字入力受付部２６０には、顔文字として、図９等に示す顔文字『（´∩｀。）』が入力されているものとする。なお、この顔文字は、「グスン」という読みであるものとする。しかるに、図１１に示す顔文字辞書には、『（´∩｀。）』と同一の表記は登録されていないため、入力された顔文字は「未知の顔文字」となる。
【００４４】
図１０では、まず、ステップＳ６１において、割合取得部２６１が、データ番号を表す変数Ｎを作成し、当該変数の初期値として１を設定する。次いで、ステップＳ６２では、割合取得部２６１が、顔文字辞書（図１１参照）からＮ番目（ここでは、１番目）のデータを取得する。この場合、割合取得部２６１は、図１１のうち、データＮｏ．が１のデータ（表記が『(^―^)』のデータ）を取得する。
【００４５】
次いで、ステップＳ６３では、主要部品対応付け部２６１１が、取り出したデータＮｏ.１の主要部品『^ ^』それぞれに対して部品番号を設定する。なお、主要部品の部品番号としては、main（主要な）の頭文字Ｍと通し番号の組み合わせの文字列を設定するものとする。主要部品『^ ^』であれば、主要部品対応付け部２６１１は、左側の『^』にＭ１、右側の『^』にＭ２を設定する。
【００４６】
次いで、ステップＳ６４では、主要部品対応付け部２６１１が、入力された顔文字『（´∩｀。)』の中に、顔文字辞書から取り出した主要部品と一致する記号が存在するかの対応付けを行う。そして、主要部品対応付け部２６１１は、対応付け結果（一致する部品番号）を、顔文字辞書の主要部品数とともに、類似度算出部２６２に対して出力する。ここでは、Ｍ１＝『＾』、Ｍ２＝『＾』であり主要部品数は２であるが、Ｍ１、Ｍ２と一致する部品は、未知の顔文字に含まれていないので、主要部品対応付け部２６１１は、対応付け結果として、空文字を出力する（図１２の「データNo.」１の行と「主要部品対応付け結果」の列、「辞書主要部品数」の列の交わるセルのデータ参照）。なお、一致する対応づけが存在する場合は、主要部品対応付け部２６１１は、対応付け結果として、一致する部品番号と部品表記を類似度算出部２６２に対して出力する。
【００４７】
次いで、ステップＳ６５では、従属部品対応付け部２６１２が、取り出したデータＮｏ.１の従属部品「( ― )」に対して部品番号を設定する。従属部品の部品番号としては、subsidiary（従属的な）の頭文字Ｓと通し番号の組み合わせの文字列を設定するものとする。ここでは、従属部品対応付け部２６１２は、最初の部品『(』をＳ１、真ん中の部品『―』をＳ２、最後の部品『)』をＳ３と設定する。
【００４８】
次いで、ステップＳ６６では、従属部品対応付け部２６１２が、入力された未知の顔文字『(´∩｀。)』の中に、顔文字辞書から取り出した従属部品と一致する記号が存在するかの対応付けを行う。そして、従属部品対応付け部２６１２は、対応付けの結果として、一致する部品番号と部品表記を類似度算出部２６２に対して出力する。ここでは、Ｓ１＝『()、ｓ２=『―』、ｓ３＝『)』であり、Ｓ１、Ｓ３が入力された未知の顔文字の部品と一致するため、対応付け結果としては、Ｓ１（とＳ３）を出力する（図１２の「データNo.」１の行と「従属部品対応付け結果」の列の交わるセルのデータ参照）。
【００４９】
次いで、ステップＳ６７では、割合取得部２６１は、データ番号Ｎを１増やす（Ｎ←Ｎ＋１）。そして、ステップＳ６８では、Ｎが顔文字辞書のデータ数を超えたか否かを判断する。ここでの判断が否定された場合には、ステップＳ６２に戻り、上記と同様の処理を、顔文字辞書のデータＮｏ．＝Ｎの顔文字に対して、実行する。その後、ステップＳ６８の判断が肯定されると、ステップＳ６９Ａに移行する。なお、ステップＳ６９Ａに移行した段階において、類似度算出部２６２に出力された対応付け結果は、図１２のようなデータであるものとする。
【００５０】
ステップＳ６９Ａでは、類似度算出部２６２が、仮の類似度を計算する。この場合、類似度算出部２６２は、図１２の全データに対して、主要部品として対応付けられた部品の数を、顔文字辞書の主要部品数で除した値を仮の類似度として計算する。そして、ステップＳ６９Ｂでは、類似度算出部２６２が、仮の類似度がある閾値（第１の閾値）以上であるデータ番号を抽出する。例えば、図１２の対応付結果の場合、データＮｏ.１、Ｎｏ．２は、主要部品として対応づけられた部品数が０なので、仮の類似度は、０％となる。一方、データＮｏ.３は、主要部品対応付け結果が３であり、辞書主要部品数が３であるので、仮の類似度は１００％（＝３／３×１００）となる。更に、データＮｏ.４は、主要部品対応付け結果が３であり、辞書主要部品数が５であるので、仮の類似度は６０％（＝３／５×１００）となる。ここで、例えば、ステップＳ６９Ｂで用いられる閾値（第１の閾値）が「６０％」であるとすると、当該閾値以上の仮の類似度を有するデータＮｏ.３とデータＮｏ.４が、類似度算出部２６２において抽出されることになる。
【００５１】
次いで、ステップＳ６９Ｃでは、類似度算出部２６２が、顔文字番号を表す変数Ｋを作成し、当該変数の初期値として１を設定する。次いで、ステップＳ７０では、類似度算出部２６２が、抽出した顔文字のうち、Ｋ番目（ここでは１番目）の顔文字（ここでは、データＮｏ．３の顔文字）の部品番号並びを求めるサブルーチンを実行する。ステップＳ７０では、具体的には、類似度算出部２６２が、図１３のフローチャートに沿った処理を実行する。
【００５２】
図１３の処理では、まず、ステップＳ７００１において、類似度算出部２６２が、辞書表記ポインタを辞書表記の先頭に設定する（以降、辞書の各種データを指すポインタは、直接、顔文字辞書格納部２５が配置されているメモリ上の位置を指すようにしても、顔文字辞書格納部２５のデータを一旦ＲＡＭやキャッシュ等に読み込んだ後のＲＡＭやキャッシュ上の対応する位置を指すようにしても、実装に都合のよい方法を採用すればよい）。具体的には、類似度算出部２６２は、辞書表記ポインタを顔文字『(´＿｀。)』の『（』の部分に合わせる（図１４の１回目の１段目参照）。次いで、ステップＳ７００２では、類似度算出部２６２が、主要部品ポインタを主要部品の先頭に設定し、主要部品番号を格納する変数を作成し、１に設定する。具体的には、類似度算出部２６２は、主要部品ポインタを主要部品『 ´ ｀ 。 』のうち、『´』に合わせる（図１４の１回目の１段目参照）。次いで、ステップＳ７００３では、類似度算出部２６２が、従属部品ポインタを従属部品の先頭に設定し、従属部品番号を格納する変数を作成し、１に設定する。具体的には類似度算出部２６２は、従属部品ポインタを従属部品『 ( ＿ ) 』のうち、『(』に設定する（図１４の１回目の１段目参照）。
【００５３】
次いで、ステップＳ７００４では、類似度算出部２６２が、辞書表記ポインタと主要部品ポインタの指す記号が一致しているか否かを判断する。ここでは、図１４の１回目の１段目に示すように、両者は一致していないので、判断が否定され、ステップＳ７００７に移行する。ステップＳ７００７では、類似度算出部２６２が、辞書表記ポインタと従属部品ポインタの指す記号が一致しているか否かを判断する。ここでは、図１４の１回目の１段目に示すように、両者は一致しているので、判断は肯定され、ステップＳ７００８に移行する。
【００５４】
ステップＳ７００８では、類似度算出部２６２が、従属部品を表す頭文字Ｓと従属部品番号（Ｓ１）を類似度算出部２６２が有する出力バッファに出力する。そして、次のステップＳ７００９では、類似度算出部２６２が、従属部品ポインタを次の記号へ進め、従属部品番号に１を加算する（従属部品番号＝２）。このステップＳ７００８、Ｓ７００９の結果が、図１４の１回目の２段目に示されている。
【００５５】
次いで、ステップＳ７０１０では、類似度算出部２６２が、辞書表記ポインタを次の記号へ進める。この結果が、図１４の１回目の３段目に示されている。
【００５６】
次いで、ステップＳ７０１１では、類似度算出部２６２が、辞書表記ポインタが記号を指していないか否かを判断する。ここでは、辞書表記ポインタが記号を指しているので、判断は否定され、ステップＳ７００４に戻る。
【００５７】
次に、繰り返しの２回目について説明する。繰り返しの２回目では、図１４の２回目の１段目に示すように、辞書表記ポインタと主要部品ポインタの指す記号『´』が一致しているので、ステップＳ７００４の判断が肯定され、ステップＳ７００５に移行する。ステップＳ７００５に移行すると、類似度算出部２６２が、図１４の２回目の２段目に示すように、主要部品を表す頭文字Ｍと主要部品番号（Ｍ１）を類似度算出部２６２が有する出力バッファに出力する。
【００５８】
次いで、ステップＳ７００６では、類似度算出部２６２が、図１４の２回目の３段目に示すように、主要部品ポインタを次の記号『｀』に進め、主要部品番号に１を加算する（主要部品番号＝２）。次いで、ステップＳ７０１０では、類似度算出部２６２が、辞書表記ポインタを次の記号『＿』へ進める。次いで、ステップＳ７０１１では、類似度算出部２６２が、辞書表記ポインタが記号を指していないか否かを判断する。ここでは、辞書表記ポインタが記号を指しているので、判断は否定され、ステップＳ７００４に戻る。
【００５９】
以降は、繰り返しの３回目から６回目まで行うことで、辞書表記『(´＿｀。)』の並びを、主要部品番号と従属部品番号の並び（Ｓ１，Ｍ１，Ｓ２，Ｍ２，Ｍ３，Ｓ３）で表すことができる（図１４の最下段参照）。なお、図１１の顔文字辞書の表記の代わりに、主要部品番号と従属部品番号の並びが定義されている場合には、ステップＳ７０の処理を省略することとしてもよい。
【００６０】
以上のようにして、図１３の全処理が終了すると、図１０のステップＳ７１に移行する。ステップＳ７１のサブルーチンでは、類似度算出部２６２が、未知の顔文字の部品番号並びを求める処理を実行する。このステップＳ７１では、類似度算出部２６２が、図１５のフローチャートに沿った処理を実行する。
【００６１】
図１５の処理では、ステップＳ７１０１において、類似度算出部２６２が、未知表記ポインタを未知の顔文字の先頭に設定する。具体的には、類似度算出部２６２は、未知表記ポインタを顔文字入力受付部２６０に入力された顔文字列『(´∩｀。)』の『（』の部分に合わせる。次いで、ステップＳ７１０２では、類似度算出部２６２が、主要部品ポインタを主要部品対応付け結果の先頭に設定する。なお、主要部品対応付け結果は、図１６に示すように、主要部品番号と部品とを対応付けた状態（Ｍ１´Ｍ２｀Ｍ３。）で示される。したがって、ステップＳ７１０２では、主要部品ポインタが、「Ｍ１´」に設定される（図１６の１回目の１段目参照）。
【００６２】
次いで、ステップＳ７１０３では、類似度算出部２６２が、従属部品ポインタを従属部品対応付け結果の先頭に設定する。なお、従属部品対応付け結果は、図１６に示すように、従属部品番号と部品とを対応付けた状態（「Ｓ１（Ｓ３）」）で示される。したがって、ステップＳ７１０３では、主要部品ポインタが、「Ｓ１（」に設定される（図１６の１回目の１段目参照）。
【００６３】
次いで、ステップＳ７００４では、類似度算出部２６２が、未知表記ポインタと主要部品ポインタの指す記号が一致しているか否かを判断する。ここでは、図１６の１回目の１段目に示すように、一致していないので、判断が否定され、ステップＳ７１０７に移行する。ステップＳ７１０７では、類似度算出部２６２が、未知表記ポインタと従属部品ポインタの指す記号が一致しているか否かを判断する。ここでは、図１６の１回目の１段目に示すように、一致しているので、判断は肯定され、ステップＳ７１０８に移行する。
【００６４】
ステップＳ７１０８では、類似度算出部２６２が、従属部品を表す頭文字Ｓと従属部品番号（Ｓ１）を類似度算出部２６２が有する出力バッファに出力する。そして、次のステップＳ７１０９では、類似度算出部２６２が、従属部品ポインタを次の記号へ進める。このステップＳ７１０８、Ｓ７１０９の結果が、図１６の１回目の２段目に示されている。
【００６５】
次いで、ステップＳ７１１０では、類似度算出部２６２が、未知表記ポインタを次の記号へ進める。この結果が、図１６の１回目の３段目に示されている。
【００６６】
次いで、ステップＳ７１１１では、類似度算出部２６２が、未知表記ポインタが記号を指していないか否かを判断する。ここでは、未知表記ポインタが記号を指しているので、判断は否定され、ステップＳ７１０４に戻る。
【００６７】
次に、繰り返しの２回目について説明する。繰り返しの２回目では、図１６の２回目の１段目に示すように、未知表記ポインタと主要部品ポインタの指す記号『´』が一致しているので、ステップＳ７１０４の判断が肯定され、ステップＳ７１０５に移行する。ステップＳ７１０５に移行すると、類似度算出部２６２が、図１６の２回目の２段目に示すように、主要部品を表す頭文字Ｍと主要部品番号（Ｍ１）を類似度算出部２６２が有する出力バッファに出力する。
【００６８】
次いで、ステップＳ７１０６では、類似度算出部２６２が、図１６の２回目の３段目に示すように、主要部品ポインタを次の記号『Ｍ２｀』に進める。次いで、ステップＳ７１１０では、類似度算出部２６２が、未知表記ポインタを次の記号『∩』へ進める。次いで、ステップＳ７１１１では、類似度算出部２６２が、未知表記ポインタが記号を指していないか否かを判断する。ここでは、未知表記ポインタが記号を指しているので、判断は否定され、ステップＳ７１０４に戻る。
【００６９】
以降は、繰り返しの３回目から６回目までを行うことで、入力された未知の顔文字表記『(´∩｀。)』の並びを、主要部品番号と従属部品番号の並び（Ｓ１，Ｍ１，Ｍ２，Ｍ３，Ｓ３）で表すことができる。すなわち、ステップＳ７０、Ｓ７１の処理により、類似度算出部２６２は、図１７のデータＮｏ．３に示すように、辞書部品順序と、未知顔文字対応付け順序と、を得ることができる。
【００７０】
以上のようにして、図１５の全処理が終了すると、図１０のステップＳ７２に移行する。ステップＳ７２のサブルーチンでは、類似度算出部２６２が、部品並びの検証についての処理を実行する。このステップＳ７２では、類似度算出部２６２が、図１８のフローチャートに沿った処理を実行する。なお、ここでは、処理の順番として、最初にデータＮｏ．３の顔文字を用いて部品並びの検証を行うところではあるが、説明の便宜上、図１７の２段目に記載されているデータＮｏ．４を用いて、図１８の処理について説明するものとする。
【００７１】
図１８の処理では、まず、ステップＳ７２０１において、類似度算出部２６２が、対応結果ポインタＡを未知顔文字対応付け順序の先頭に設定する。また、ステップＳ７２０２では、類似度算出部２６２が、辞書部品ポインタＸを辞書部品順序の先頭に設定する。この段階でのポインタの状態が、図１９の１段目に示されている。
【００７２】
次いで、ステップＳ７２０３では、類似度算出部２６２は、対応結果ポインタＡと辞書部品ポインタＸの指す部品が一致するか否かを判断する。ここでは、図１９の１段目に示すように、一致しているので、判断が肯定されてステップＳ７２０５に移行する。なお、ステップＳ７２０３の判断が否定される場合には、ステップＳ７２０４において、類似度算出部２６２が、辞書部品ポインタＸを次の部品に進めた後、再度ステップＳ７２０３に戻る。
【００７３】
ステップＳ７２０５では、類似度算出部２６２が、検証用対応結果ポインタＢを現在の対応結果ポインタＡの次の部品に設定する。次いで、ステップＳ７２０６では、類似度算出部２６２が、検証用対応結果ポインタＢが最終部品を超えたか否かを判断する。ここでの判断が肯定された場合は、これ以上検証すべき記号は存在しないことを示すため、図１８の処理は終了する。ステップＳ７２０６の判断が否定されると、ステップＳ７２０７に移行する。今、図１９の２段目に示されるように、検証用対応結果ポインタＢはまだ最終部品を超えていないため、ステップＳ７２０６での判断は否定されステップＳ７２０７へ進む。ステップＳ７２０７では、検証用辞書部品ポインタＹを現在の辞書部品ポインタＸ直後の部品に設定する。ステップＳ７２０５、Ｓ７２０７の結果、各ポインタは、図１９の２段目のようになる。次いで、ステップＳ７２０８では、類似度算出部２６２が、ポインタＹが辞書並びの最終部品を超えたか否かを判断する。今、図１９の２段目に示されるように、検証用辞書部品ポインタＹはまだ辞書並びの最終部品を超えていないため、ステップＳ７２０８での判断は否定される。ここでの判断が否定されると、ステップＳ７２１０に移行し、類似度算出部２６２は、ポインタＢとＹの指す部品が一致するか否かを判断する。ここでは、図１９の２段目に示すように、両者は一致しているので、判断は肯定され、ステップＳ７２１２に移行する。ステップＳ７２１２では、類似度算出部２６２が、ポインタＢを次の部品に設定する。このステップＳ７２１２の処理を経た状態が、図１９の３段目に示されている。
【００７４】
次いで、ステップＳ７２１３では、類似度算出部２６２が、ポインタＢが最終部品を超えたか否かを判断する。ここでは、超えていないので、判断は否定され、ステップＳ７２０７に戻る。
【００７５】
ステップＳ７２０７に戻ると、類似度算出部２６２は、ポインタＹをＸの次の部品に設定し（図１９の４段目の状態）、ステップＳ７２０８、Ｓ７２１０の判断の後に、ステップＳ７２１１において、ポインタＹを次の部品に設定する（図１９の５段目の状態）。そして、再度、ステップＳ７２０８、Ｓ７２１０の判断の後に、ステップＳ７２１１においてポインタＹを次の部品に設定する（図１９の６段目の状態）。そして、再度、ステップＳ７２０８、Ｓ７２１０の判断の後には、Ｓ７２１０の判断が肯定されるため、ステップＳ７２１２に移行する。ステップＳ７２１２では、類似度算出部２６２は、ポインタＢを次の部品に設定する（図１９の７段目）。
【００７６】
このように、ステップＳ７２０７〜Ｓ７２１３のループを経ることで、対応付け結果のうち、ポインタＡが設定されている部品の右側に存在している部品が、辞書並びのうち、ポインタＸが設定されている部品の右側に存在しているか否かを確認することができる。なお、この処理は、図２０、図２１、図２２に示すように、ポインタＡ、Ｘを適宜右方向にシフトしながら、全ての組み合わせについて確認することになる。
【００７７】
ここで、図２２の８段目に示すように、ポインタＡ，ＸがＭ３に設定されているときに、ポインタＡの右側に存在しているＳ３は、辞書並びのポインタＸの右側には存在していない。このため、ポインタＹが辞書並びの最終部品を越えた時点で、ステップＳ７２０９に移行することになる。
【００７８】
ステップＳ７２０９に移行した場合、類似度算出部２６２が、ペナルティ回数をカウントする。なお、ペナルティ回数は、辞書部品順序と未知顔文字対応付け順序との矛盾箇所の数を表している。そして、上記のようにステップＳ７２０９が行われた後も、ステップＳ７２１４においてポインタＡを次の部品に設定しつつ、上記と同様の処理を繰り返し、ポインタＡが最終部品を越えた時点（ステップＳ７２１５が肯定された時点）で、図１８の全処理を終了して、図１０のステップＳ７３に移行する。なお、図１７の１段目に記載されているデータＮｏ．３の顔文字の場合には、ステップＳ７２０８の判断が１度も肯定されることなく、すなわち、１度もステップＳ７２０９を経ることなく、図１８の全処理を終了する。
【００７９】
図１０のステップＳ７３に移行すると、類似度算出部２６２は、ペナルティ計算を行う。具体的には、類似度算出部２６２は、ペナルティ回数（すなわちステップＳ７２０９の処理が行われた回数＝矛盾箇所の個数）に応じたペナルティ値を算出する。すなわち、類似度算出部２６２は、例えば、ペナルティ値の基準値として１／２が予め設定されている場合において、ペナルティ回数がｍであれば、ペナルティ値を、
ペナルティ値＝（１／２）ｍ          …（１）
の式から算出する。例えば、図１７のデータＮｏ．３の顔文字の場合には、ペナルティ回数が０であるので、ペナルティ値は、（１／２）0＝１となる。また、図１７のデータＮｏ．４の顔文字の場合には、ペナルティ回数が１であるので、ペナルティ値は、（１／２）1＝１／２となる。更に、ペナルティ回数が２であれば、ペナルティ値は、（１／２）2＝１／４となる。
【００８０】
次いで、ステップＳ７４では、Ｋを１増加する。そして、ステップＳ７５において、Ｋが、ステップＳ６９Ｂで抽出された顔文字の数を超えるまで、すなわち、抽出された顔文字の全てについてのペナルティ計算が終了するまで、ステップＳ７０〜Ｓ７５の処理・判断を繰り返す。
【００８１】
ステップＳ７５の判断が肯定されると、類似度算出部２６２は、ステップＳ７６Ａにおいて類似度を計算する。具体的には、類似度算出部２６２は、ステップＳ６９Ａで算出された仮の類似度と、ステップＳ７３で算出されたペナルティ値の積から類似度を算出する。ここでは、図１７に示すデータＮｏ．３の顔文字の類似度が、仮の類似度（１００％）×ペナルティ値（１）＝１００％となる。また、図１７に示すデータＮｏ．４の顔文字の類似度が、仮の類似度（６０％）×ペナルティ値（１／２）＝３０％となる。
【００８２】
そして、ステップＳ７６Ｂでは、読み推定部２６４が、ある閾値（第２の閾値）よりも大きい類似度があるか否かを判断する。ここでの判断が否定された場合には、顔文字ではないと判断して、通常テキスト解析部２４へ文字列を出力する、すなわち、図６のステップＳ６に移行する。一方、ここでの判断が肯定された場合には、ステップＳ７７に移行し、読み推定部２６４が、類似度が閾値よりも大きい顔文字の読み・アクセントを、図１１の顔文字辞書から取得し、読み出力部２７の内蔵バッファに出力する。この場合、閾値よりも類似度が大きい顔文字が複数ある場合には、それら複数の顔文字の読み・アクセントを全て取得し、連続して出力するようにする。このようにすることで、より意味の伝わる読み上げが可能となる。なお、ここでは、顔文字の読み・アクセントとして、「グス’ン」が出力されたものとする。
【００８３】
なお、ステップＳ７７では、読み推定部２６４が、類似度が最も大きい顔文字辞書中の顔文字の読み・アクセントを取得するようにしてもよい。
【００８４】
以上のようにして、図１０の全処理（ステップＳ５）が終了すると、図６のステップＳ７に移行する。ステップＳ７では、読み出力部２６７が、図１０の処理を経て取得された顔文字の読みを、バッファに順に蓄積する。
【００８５】
次いで、ステップＳ８では、文字判定部２２４が、入力バッファ２２１が空か否かを判断する。ここでの判断が肯定されると、ステップＳ９に移行し、読み出力部２７が、バッファに蓄積していた読みを音声生成部３３に出力する。
【００８６】
そして、ステップＳ１０では、音声生成部３３が、蓄積していた読みを繋げて、音声（「悲しいグス’ン」）を生成し、図１のスピーカ５６から出力する。このように本実施形態では、顔文字辞書に登録されていない顔文字についても、その読みを推定して読み上げることが可能である。
【００８７】
以上、詳細に説明したように、本実施形態によると、顔文字辞書格納部２５が、複数の顔文字に関し、顔文字を表す複数の記号から当該顔文字の意味内容に寄与するとして予め抽出された少なくとも１つの主要部品と、当該顔文字の読み情報とが紐付けられて登録された顔文字辞書を格納しており、顔文字読み推定部２６（割合取得部２６１）は、顔文字辞書に登録されている顔文字毎に、主要部品と、顔文字入力受付部２６０が入力を受け付けた顔文字の部品とを比較し、入力された顔文字全体における、主要部品と同一の部品の割合を取得する。そして、類似度算出部２６２は、当該割合に基づいて、入力された顔文字と、顔文字辞書に登録されている顔文字との類似度を算出し、読み推定部２６４が、当該類似度に基づいて、顔文字辞書に登録されている顔文字の読み・アクセントの中から、入力された顔文字の読み・アクセントを推定する。このように、顔文字辞書に登録されている顔文字のうち、入力された顔文字の部品と主要部品が共通する割合が高い顔文字の読み・アクセントを、入力された顔文字の読み・アクセントとして推定することで、入力された顔文字が、顔文字辞書に登録されていない場合であっても、その意味を表す読み・アクセントを精度良く推定することができる。これにより、多種多様な顔文字の読み・アクセントを精度良く推定することができる。
【００８８】
また、本実施形態では、顔文字辞書には、主要部品とともに、主要部品以外の記号である従属部品も登録されており、類似度算出部２６２は、顔文字辞書から上記割合（仮の類似度）が所定の閾値（第１の閾値）以上である顔文字を抽出するとともに、当該抽出された顔文字の主要部品及び従属部品の並び順と、入力された顔文字の主要部品と同一の部品及び従属記号と同一の部品の並び順との矛盾箇所の数（ペナルティ回数）を算出し、当該ペナルティ回数と、仮の類似度とに基づいて、類似度を算出する。すなわち、顔文字辞書に登録されている顔文字のうち、２つの条件（入力された顔文字の部品と主要部品が共通する割合が高く、かつ、主要部品と従属部品の並び順が入力された顔文字の部品の並び順と近い）を満たす顔文字の読み・アクセントを、入力された顔文字の読み・アクセントとして推定する。したがって、入力された顔文字が、顔文字辞書に登録されていない場合であっても、その意味を表す読み・アクセントをより精度良く推定することができる。
【００８９】
なお、上記実施形態では、図７の顔文字辞書に、読み・アクセントが登録されている場合について説明したが、これに限られるものではない。例えば、読みのみが登録されていてもよい。また、上記実施形態では、顔文字の読みを、音声にてスピーカ５６から出力する場合について説明した。しかしながら、これに限らず、顔文字の読みを文字データで出力、すなわち、例えば、顔文字を意味内容を示すテキストに置換して、表示ディスプレイ５４に表示することとしても良い。
【００９０】
また、上記実施形態では、携帯電話１００の内部で、入力テキスト（顔文字を含む）の読みを推定し、音声を生成する場合について説明したが、これに限られるものではない。例えば、携帯電話１００と接続されているサーバに対して、携帯電話１００に入力されたテキストを送信し、サーバにおいて、入力テキスト（顔文字を含む）の読みを推定することとしてもよい。この場合、サーバが推定結果を携帯電話１００に送信することで、携帯電話１００では、上記実施形態と同様、入力テキストの音声を出力することが可能となる（ＡＳＰ(Application Service Provider)）。かかる場合には、携帯電話１００に、顔文字の読みを推定する構成などを設ける必要がなくなるため、携帯電話１００の簡素化を図ることが可能となる。
【００９１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００９２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９４】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【００９５】
２  言語解析部（顔文字読み情報推定装置）
３  波形処理部（出力装置）
２５  顔文字辞書格納部（格納部）
２６０  顔文字入力受付部（受付部）
２６１  割合取得部（取得部）
２６２  類似度算出部（算出部）
２６４  読み推定部（推定部）
【図１】
0005510263.tif 000002
【図２】
0005510263.tif 000003
【図３】
0005510263.tif 000004
【図４】
0005510263.tif 000005
【図５】
0005510263.tif 000006
【図６】
0005510263.tif 000007
【図７】
0005510263.tif 000008
【図８】
0005510263.tif 000009
【図９】
0005510263.tif 000010
【図１０】
0005510263.tif 000011
【図１１】
0005510263.tif 000012
【図１２】
0005510263.tif 000013
【図１３】
0005510263.tif 000014
【図１４】
0005510263.tif 000015
【図１５】
0005510263.tif 000016
【図１６】
0005510263.tif 000017
【図１７】
0005510263.tif 000018
【図１８】
0005510263.tif 000019
【図１９】
0005510263.tif 000020
【図２０】
0005510263.tif 000021
【図２１】
0005510263.tif 000022
【図２２】
0005510263.tif 000023