(57)【要約】【課題】辞書データの容量を圧縮することが可能になる辞書データ格納構造を提供する。【解決手段】５０音順の各ひらがな毎にそのかな文字で始まる全ての見出し語（単語）について、その見出し語を構成するかな文字を、当該見出し語における先頭からの出現位置[pos]とそのかな文字で終わる見出し語の数[num]とを対応付けて格納し、異なる見出し語でも同じ位置に出現する同じかな文字の共通化を図る。例えば「あ」で始まる見出し語「あい：愛」「あい：相」「あいて：相手」の３つの見出し語を格納する場合、「あ：出現位置[pos=0]：同文字で終わる見出し語数[num=0]」「い：出現位置[pos=1]：同文字で終わる見出し語数[num=2]」「て：出現位置[pos=3]：同文字で終わる見出し語数[num=1]」として格納することで、出現位置[pos]と見出し語数[num]を辿って各見出し語とも読み出し可能に格納できる一方、文字の格納数は延べの７文字分ではなく、３文字分に圧縮できる。【選択図】      図３
2011003146.tif 000002
【特許請求の範囲】
【請求項１】
辞書の見出し語を格納する辞書データ格納構造であって、
見出し語を構成する各文字を、その文字の当該見出し語における出現位置と、その文字が最終出現位置となる見出し語の数とを対応付けて格納し、
異なる見出し語でも同じ位置に出現する同じ文字を共通に格納することを特徴とする辞書データ格納構造。
【請求項２】
複数の見出し語のそれぞれを形態素解析するための形態素解析情報を格納し、
前記見出し語を構成する各文字には、その文字が当該見出し語における最終出現位置の文字である場合に、当該見出し語の前記形態素解析情報へのリンク情報をさらに対応付けて格納したことを特徴とする請求項１に記載の辞書データ格納構造。
【請求項３】
前記形態素解析情報は、解析対象の見出し語のトークン情報と意味情報とを含むことを特徴とする請求項２に記載の辞書データ格納構造。
【請求項４】
請求項１に記載の辞書データ格納構造により格納された辞書データを検索する辞書検索方法であって、
前記見出し語を構成する各文字に対応付けられた、その文字の当該見出し語における出現位置を順番に、その文字が最終出現位置となる見出し語の数が１以上になるところまで、当該出現位置が対応付けられた各文字を読み出して見出し語を検索することを特徴とする辞書検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、辞書の見出し語（単語）を格納した辞書データ格納構造およびその辞書検索方法に関する。
【背景技術】
【０００２】
文書処理装置において、例えば、日本語の文章を連続的な読みで入力し、かな漢字変換した文書を作成する場合、あるいは機械翻訳をする場合、文章を構成する単語の区切りを正しく判断する必要があるため、形態素解析処理（コンピュータによる自然言語処理技術の一つ）が行われる。
【０００３】
この形態素解析処理では、読みで入力された文章を構成するひらがなの羅列を、様々な位置で区切って、辞書に記憶されている単語（見出し語）の読みと一致するか判断する。そして、読みが一致した単語を辞書から読み出し、その前後で同様にして読み出された隣接する単語との繋がり易さを、品詞や文法などを考慮して数値化した左連結コスト，右連結コスト，単語コストに基づき判断する。これにより、読みで入力された文章を、可能な限りユーザの意図する単語の配列にした文章とし、かな漢字変換あるいは機械翻訳をする。
【０００４】
このように、入力された文章の読みに一致する単語を見つけるためなどに使用される辞書のデータベースは、従来、各単語の読みの文字列を、各単語個々の見出し語として記憶すると共に、各見出し語に対応付けて、漢字での文字列や品詞，説明などの意味情報、さらに、形態素解析に使用する場合には、左・右連結コスト，単語コストなどの繋がり易さのトークン情報を記憶して構成される。
【０００５】
形態素辞書を用いた形態素解析装置が考えられている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３５１８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の辞書データベースでは、全ての単語について、各単語の見出し語を構成する読みの文字列を個々に記憶しているため、辞書データの容量が大きくなる欠点があった。
【０００８】
本発明は、このような課題に鑑みなされたもので、辞書データの容量を圧縮することが可能になる辞書データ格納構造およびその辞書検索方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に記載の辞書データ格納構造は、辞書の見出し語を格納する辞書データ格納構造であって、見出し語を構成する各文字を、その文字の当該見出し語における出現位置と、その文字が最終出現位置となる見出し語の数とを対応付けて格納し、異なる見出し語でも同じ位置に出現する同じ文字を共通に格納することを特徴としている。
【００１０】
請求項２に記載の辞書データ格納構造は、前記請求項１に記載の辞書データ格納構造において、複数の見出し語のそれぞれを形態素解析するための形態素解析情報を格納し、前記見出し語を構成する各文字には、その文字が当該見出し語における最終出現位置の文字である場合に、当該見出し語の前記形態素解析情報へのリンク情報をさらに対応付けて格納したことを特徴としている。
【００１１】
請求項３に記載の辞書データ格納構造は、前記請求項２に記載の辞書データ格納構造において、前記形態素解析情報は、解析対象の見出し語のトークン情報と意味情報とを含むことを特徴としている。
【００１２】
請求項４に記載の辞書検索方法は、前記請求項１に記載の辞書データ格納構造により格納された辞書データを検索する辞書検索方法であって、前記見出し語を構成する各文字に対応付けられた、その文字の当該見出し語における出現位置を順番に、その文字が最終出現位置となる見出し語の数が１以上になるところまで、当該出現位置が対応付けられた各文字を読み出して見出し語を検索することを特徴としている。
【発明の効果】
【００１３】
本発明によれば、辞書データの容量を圧縮することが可能になる辞書データ格納構造およびその辞書検索方法を提供できる。
【図面の簡単な説明】
【００１４】
【図１】本発明の辞書データ格納構造およびその辞書検索方法の実施形態に係る音声入力文章作成装置１０の電子回路の構成を示すブロック図。
【図２】前記音声入力文章作成装置１０に記憶された形態素解析辞書１２ｂの全体的なデータ構造を示す図。
【図３】前記形態素解析辞書１２ｂにおける見出し語部１２ｂａの一部のデータ構造を示す図。
【図４】前記音声入力文章作成装置１０による音声認識／文章作成処理を示すフローチャート。
【図５】前記音声入力文章作成装置１０による音声認識／文章作成処理での形態素解析処理（Ｓ３）に伴う形態素解析辞書１２ｂからの候補文字取り出し処理を示すフローチャート。
【図６】前記音声入力文章作成装置１０による形態素解析辞書１２ｂからの候補文字取り出し処理に伴う具体的な形態素候補の取り出し状態を示す図。
【図７】前記音声入力文章作成装置１０に記憶された他の実施形態の形態素解析辞書１２ｂ′の全体的なデータ構造を示す図。
【発明を実施するための形態】
【００１５】
以下図面により本発明の実施の形態について説明する。
【００１６】
図１は、本発明の辞書データ格納構造およびその辞書検索方法の実施形態に係る音声入力文章作成装置１０の電子回路の構成を示すブロック図である。
【００１７】
この音声入力文章作成装置１０は、各種の記憶媒体に記録されたプログラム、又は、伝送されたプログラムを読み込んで、その読み込んだプログラムによって動作が制御されるコンピュータによって構成され、その電子回路には、ＣＰＵ(central processing unit)１１が備えられる。
【００１８】
ＣＰＵ１１は、記憶装置（フラッシュＲＯＭ）１２内に予め記憶された装置制御プログラム、あるいはＣＤ−ＲＯＭなどの外部記憶媒体から前記記憶装置１２に読み込まれた装置制御プログラム、あるいはインターネットＮ上のＷＥＢサーバ（この場合はプログラムサーバ）から通信装置を介して前記記憶装置１２に読み込まれた装置制御プログラムに応じて、ＲＡＭ１４を作業用メモリとして回路各部の動作を制御する。
【００１９】
前記記憶装置１２に記憶された装置制御プログラムは、キー入力部や音声入力部を備えた入力装置１３からのユーザ操作に応じた入力信号に応じて起動される。
【００２０】
前記ＣＰＵ１１には、前記記憶装置１２、入力装置１３、ＲＡＭ１４が接続される他に、表示部や印刷部を備えた出力装置１５などが接続される。
【００２１】
記憶装置１２に記憶される装置制御プログラムとしては、当該音声入力文章作成装置１０の全体の動作を司るシステムプログラムの他に、入力装置１３により入力された例えば文章の読みの音声データをテキストに変換する音声／テキスト変換処理１２ａ１、変換されたテキストデータを形態素解析する形態素解析処理１２ａ２、形態素解析された単語の配列からなる文章を生成する文章変換処理１２ａ３の各処理をＣＰＵ１１に実行させるための音声認識プログラム１２ａが記憶される。
【００２２】
そして、記憶装置１２には、形態素解析辞書１２ｂ（図２・図３参照）が記憶される。
【００２３】
図２は、前記音声入力文章作成装置１０に記憶された形態素解析辞書１２ｂの全体的なデータ構造を示す図である。
【００２４】
図３は、前記形態素解析辞書１２ｂにおける見出し語部１２ｂａの一部のデータ構造を示す図である。
【００２５】
前記形態素解析辞書１２ｂは、見出し語部１２ｂａ、トークン部１２ｂｂ、意味部１２ｂｃから構成される。
【００２６】
見出し語部１２ｂａには、例えば日本語の全ての単語が、ひらがな読みの見出し語１２ｂａｎ…として、図３に示すようなデータ構造で格納される。
【００２７】
図３に示す見出し語部１２ｂａのデータ構造は、５０音の「ね」を先頭位置にする各単語（見出し語）のうちの一部の単語「ねこ」「ねこみ」「ねこむ」「ねころぶ」「ねころがる」「ねり」「ねりこみ」「ねりこむ」「ねる：練る」「ねる：寝る」、および「の」を先頭位置にする各単語（見出し語）のうちの一部の単語「の」「のうか」を格納したデータ構造の具体例である。実際は、５０音順に「あ」で始まる各単語（見出し語）を同様のデータ構造にして格納した領域から、「わ」で始まる各単語（見出し語）を同様のデータ構造にして格納した領域までが直列化され、全体の見出し語部１２ｂａが構成される。
【００２８】
すなわち、この見出し語部１２ｂａに格納される見出し語１２ｂａｎは、見出し語を構成する各文字（ひらがな）を、8bit+8bitのShift-jisコード[letter[0][1]]に、その文字の見出し語における先頭からの出現位置[pos; position]と、その文字で終わる見出し語の数[num; number]と、その見出し語のトークン情報１２ｂｂｎが存在するトークン部１２ｂｂの先頭からのオフセット[offset]とを対応付けたデータ構造として格納される。
【００２９】
例えば、図３のデータ構造で示した見出し語部１２ｂａにおいて、先ず、「ね」の出現位置[pos]は、pos=0（先頭）であるが、その文字「ね」の単独で終わる見出し語の数[num]は、num=0（無）である。次に「こ」の出現位置[pos]は、pos=1（２番目）であり、その文字「こ」で終わる見出し語の数[num]は、num=1（１つ有り）なので、前記pos=0（先頭）である「ね」の文字と組み合わせた「ねこ」の見出し語１２ｂａｎが抽出できる。
【００３０】
続いて、「み」の出現位置[pos]は、pos=2（３番目）であり、その文字「み」で終わる見出し語の数[num]は、num=1（１つ有り）なので、前記pos=0（先頭）である「ね」の文字と、pos=1（２番目）である「こ」の文字とを組み合わせた「ねこみ」の見出し語１２ｂａｎが抽出できる。
【００３１】
同様に、「む」の出現位置[pos]は、pos=2（３番目）であり、その文字「む」で終わる見出し語の数[num]は、num=1（１つ有り）なので、前記pos=0（先頭）である「ね」の文字と、pos=1（２番目）である「こ」の文字とを組み合わせた「ねこむ」の見出し語１２ｂａｎが抽出できる。
【００３２】
さらに、「ろ」の出現位置[pos]は、pos=2（３番目）であるが、その文字「ろ」で終わる見出し語の数[num]は、num=0（無）である。次に「ぶ」の出現位置[pos]は、pos=3（４番目）であり、その文字「ぶ」で終わる見出し語の数[num]は、num=1（１つ有り）なので、前記pos=0（先頭）である「ね」の文字と、pos=1（２番目）である「こ」の文字と、前記num=0であった直前のpos=2（３番目）である「ろ」の文字とを組み合わせた「ねころぶ」の見出し語１２ｂａｎが抽出できる。
【００３３】
同様に、「が」の出現位置[pos]は、pos=3（４番目）であるが、その文字「が」で終わる見出し語の数[num]は、num=0（無）である。次に「る」の出現位置[pos]は、pos=4（５番目）であり、その文字「る」で終わる見出し語の数[num]は、num=1（１つ有り）なので、前記pos=0（先頭）である「ね」の文字と、pos=1（２番目）である「こ」の文字と、前記num=0であった直前のpos=2（３番目）である「ろ」の文字と、前記num=0であった直前のpos=3（４番目）である「が」の文字とを組み合わせた「ねころがる」の見出し語１２ｂａｎが抽出できる。
【００３４】
そして、この見出し語部１２ｂａから抽出される各見出し語１２ｂａｎ…に対応するトークン情報１２ｂｂｎ…は、その見出し語１２ｂａｎの終わりの文字として抽出されたnum≧1であるところのオフセット[offset]に従って、トークン部１２ｂｂから抽出される。
【００３５】
トークン情報１２ｂｂｎは、当該トークン情報１２ｂｂｎが対応付けられた前記見出し語１２ｂａｎについての左連結コストと、右連結コストと、単語コストと、その見出し語１２ｂａｎの意味情報１２ｂｃｎが存在する意味部１２ｂｃの先頭からのオフセット[offset]とを対応付けたデータ構造として格納される。
【００３６】
例えば、前記形態素解析辞書１２ｂの見出し語部１２ｂａに記憶される見出し語「ねり」１２ｂａｎに対応するトークン情報１２ｂｂｎは、具体的には、“左連結コスト[1672]，右連結コスト[1672]，単語コスト[8587]”＋“意味部１２ｂｃにおけるオフセット”となる。また同見出し語「ねり」１２ｂａｎに対応する意味情報１２ｂｃｎは、具体的には、“動詞，一般，*，*，五段-ラ行-一般，連用形-一般，ネル，練る，ねり，ねる，ネリ，ネル，ネル，和”となる。
【００３７】
なお、見出し語部１２ｂａにおいて見出し語１２ｂａｎを構成する最終文字に対応付けられたその文字で終わる見出し語の数[num]が、num≧2（２以上有り：同音異義語）の場合、トークン部１２ｂｂのトークン情報１２ｂｂｎには、各見出し語に対応した左連結コスト・右連結コスト・単語コスト・意味情報１２ｂｃｎへのオフセット[offset]が記述される。
【００３８】
前記ＲＡＭ１４には、出力装置１５での表示や印刷に対応した出力データの記憶領域を有し、その出力すべきデータがビットマップのパターンデータとして展開記憶される出力データメモリ、入力装置１３により入力されたデータが記憶保持される入力データメモリなど、各種のプログラムに従いＣＰＵ１１に入出力される種々のデータが必要に応じて記憶されるワークメモリが備えられる。
【００３９】
そしてＲＡＭ１４には、前記音声認識プログラム１２ａの実行に伴い主に使用されるメモリ領域として、テキストデータメモリ１４ａ、形態素候補バッファ１４ｂ、形態素候補登録リストデータメモリ１４ｃ、文章データメモリ１４ｄが確保される。
【００４０】
テキストデータメモリ１４ａには、入力装置１３により入力された例えば文章の読みの音声データから、前記音声／テキスト変換処理１２ａ１に従い音声／テキスト変換されたテキストデータが記憶される。
【００４１】
形態素候補バッファ１４ｂには、前記形態素解析処理１２ａ２に従い、前記テキストデータメモリ１４ａに記憶されたテキストデータを形態素解析する場合に、当該テキストデータに基づき、前記形態素解析辞書１２ｂの見出し語部１２ｂａから読み出された文字列が、前記テキストデータを構成する文字列との一致／不一致を判断するための候補として記憶される。
【００４２】
形態素候補登録リストデータメモリ１４ｃには、前記形態素解析辞書１２ｂの見出し語部１２ｂａから前記形態素候補バッファ１４ｂに読み出された文字列が、前記テキストデータを構成する文字列と一致した場合に、その文字列が、前記テキストデータを構成する形態素として最適か否かを判断するための候補として登録される。
【００４３】
文章データメモリ１４ｄには、前記形態素候補登録リストデータメモリ１４ｃに登録された前記テキストデータを構成する形態素の候補の中から、最適な形態素として判断された各形態素の組合せからなる文章データが、かな漢字変換された文章データとして記憶される。
【００４４】
次に、前記構成の音声入力文章作成装置１０による音声認識／文章作成機能について説明する。
【００４５】
図４は、前記音声入力文章作成装置１０による音声認識／文章作成処理を示すフローチャートである。
【００４６】
ユーザ操作に応じた音声認識／文章作成モードの設定に伴い、記憶装置１２に記憶された音声認識プロクラム１２ａが起動される。
【００４７】
この後、入力装置１３の音声入力部からユーザの音声による文章データが入力されると（ステップＳ１）、音声／テキスト変換処理１２ａ１に従い、前記入力された音声データが音声認識されてテキストデータ（ひらがなの羅列）に変換され、ＲＡＭ１４内のテキストデータメモリ１４ａに記憶される（ステップＳ２）。
【００４８】
すると、前記テキストデータメモリ１４ａに記憶されたテキストデータ（ひらがなの羅列）の形態素解析処理に移行される（ステップＳ３）。
【００４９】
図５は、前記音声入力文章作成装置１０による音声認識／文章作成処理での形態素解析処理（Ｓ３）に伴う形態素解析辞書１２ｂからの候補文字取り出し処理を示すフローチャートである。
【００５０】
図６は、前記音声入力文章作成装置１０による形態素解析辞書１２ｂからの候補文字取り出し処理に伴う具体的な形態素候補の取り出し状態を示す図である。
【００５１】
前記音声入力処理（ステップＳ１）、テキスト変換処理（ステップＳ２）により、例えば図６に示すように、テキストデータ「…ねりこむ…」が取得されテキストデータメモリ１４ａに記憶された状態で、形態素解析処理（ステップＳ３）に移行されると、先ず、前記テキストデータ「…ねりこむ…」の１文字目「ね」が取得され（ステップＡ１）、形態素解析辞書１２ｂの見出し語部１２ｂａ（図３参照）に記憶されているpos(出現位置)=0(先頭)のところの当該先頭文字「ね」が検索されて形態素候補バッファ１４ｂに記憶される（ステップＡ２）。
【００５２】
すると、前記見出し語部１２ｂａから検索された先頭文字「ね」に対応付けられた、その文字「ね」で終わる見出し語の数[num]について、num=0か否か、つまりこの場合にはその文字「ね」の単独では見出し語（単語）として存在しないか、または幾つ存在するかが判断される（ステップＡ３）。
【００５３】
この場合、先頭文字「ね」に対応付けられた見出し語の数[num]は、num=0（無）と判断されるので（ステップＡ３（Ｙｅｓ））、見出し語部１２ｂａの文字を指示するポインタＰが“＋１”されてＰ＝２となり、「こ」の文字が指示される（ステップＡ５）。
【００５４】
すると、前記ポインタＰ（＝２）により指示された文字「こ」に対応付けられた出現位置[pos]について、pos=0（先頭）か否か、つまりこの場合にはその文字「こ」が見出し語の先頭文字であるか否かが判断される（ステップＡ６）。
【００５５】
例えばpos=0（先頭）と判断された場合には、当該「こ」の文字で始まる見出し語の取り出し位置にポインタＰが進んだと判断されるので、前記「ね」の文字で始まる見出し語の取り出しは終了したと判断される（ステップＡ６（Ｙｅｓ）→Ｅｎｄ）。
【００５６】
ここでは、前記ポインタＰ（＝２）により指示された文字「こ」の出現位置[pos]は、pos=1（２番目）と判断されるので（ステップＡ６（Ｎｏ））、当該文字「こ」が読み取られ（ステップＡ７）、その出現位置［pos=1（２番目）］に従い、前記先頭文字「ね」を記憶させた形態素候補バッファ１４ｂに対し「こ」が追加され、「ねこ」と記憶される（ステップＡ８）。
【００５７】
ここで、前記形態素候補バッファ１４ｂに記憶された文字列「ねこ」は、前記テキストデータメモリ１４ａに記憶された「ねりこむ…」に一致しないと判断されるので（ステップＡ９（Ｎｏ））、前記「こ」の文字の出現位置［pos=1（２番目）］と同じ出現位置[pos=1]が対応付けられた次の文字「り」の位置まで、ポインタＰが更新される（ステップＡ１０）。
【００５８】
すると、ポインタＰ（＝９）により指示された文字「り」が読み取られ（ステップＡ７）、その出現位置［pos=1（２番目）］に従い、前記先頭文字「ね」を記憶させた形態素候補バッファ１４ｂに対し「り」が追加され、「ねり」と記憶される（ステップＡ８）。
【００５９】
ここで、前記形態素候補バッファ１４ｂに記憶された文字列「ねり」は、前記テキストデータメモリ１４ａに記憶された「ねりこむ…」の「ねり」に一致したと判断されるので（ステップＡ９（Ｙｅｓ））、今回追加の文字「り」に対応付けられた、その文字「り」で終わる見出し語の数[num]について、num=0か否か、つまりこの場合にはその文字「り」で終わる見出し語（単語）が存在しないか、または幾つ存在するかが判断される（ステップＡ１１）。
【００６０】
この場合、num=1と判断されるので（ステップＡ１１（Ｎｏ））、前記形態素候補バッファ１４ｂに記憶された文字列「ねり」は、形態素候補の見出し語（単語）として、形態素候補登録リストデータメモリ１４ｃに登録される（ステップＡ４）。
【００６１】
すると、現在のポインタＰ（＝９）が“＋１”されてＰ＝１０となり、「こ」の文字が指示される（ステップＡ５）。
【００６２】
ここで、前記ポインタＰ（＝１０）により指示された文字「こ」の出現位置[pos]は、pos=2（３番目）と判断されるので（ステップＡ６（Ｎｏ））、当該文字「こ」が読み取られ（ステップＡ７）、その出現位置［pos=2（３番目）］に従い、前記文字「ね」を先頭として前記テキストデータ「ねりこむ…」と一致する文字列「ねり」を記憶させた形態素候補バッファ１４ｂに対し「こ」が追加され、「ねりこ」と記憶される（ステップＡ８）。
【００６３】
すると、前記形態素候補バッファ１４ｂに記憶された文字列「ねりこ」は、前記テキストデータメモリ１４ａに記憶された「ねりこむ…」の「ねりこ」に一致したと判断されるが（ステップＡ９（Ｙｅｓ））、今回追加の文字「こ」に対応付けられた、その文字「こ」で終わる見出し語の数[num]について、num=0（無）と判断されるので（ステップＡ１１（Ｙｅｓ））、ポインタＰがさらに“＋１”されてＰ＝１１となり、「み」の文字が指示される（ステップＡ５）。
【００６４】
ここで、前記ポインタＰ（＝１１）により指示された文字「み」の出現位置[pos]は、pos=3（４番目）と判断されるので（ステップＡ６（Ｎｏ））、当該文字「み」が読み取られ（ステップＡ７）、その出現位置［pos=3（４番目）］に従い、前記文字「ね」を先頭として前記テキストデータ「ねりこむ…」と一致する文字列「ねりこ」を記憶させた形態素候補バッファ１４ｂに対し「み」が追加され、「ねりこみ」と記憶される（ステップＡ８）。
【００６５】
ここで、前記形態素候補バッファ１４ｂに記憶された文字列「ねりこみ」は、前記テキストデータメモリ１４ａに記憶された「ねりこむ…」に一致しないと判断されるので（ステップＡ９（Ｎｏ））、前記「み」の文字の出現位置［pos=3（４番目）］と同じ出現位置[pos=3]が対応付けられた次の文字「む」の位置まで、ポインタＰが更新される（ステップＡ１０）。
【００６６】
すると、ポインタＰ（＝１２）により指示された文字「む」が読み取られ（ステップＡ７）、その出現位置［pos=3（４番目）］に従い、前記文字「ね」を先頭として前記テキストデータ「ねりこむ…」と一致する文字列「ねりこ」を記憶させた形態素候補バッファ１４ｂに対し「む」が追加され、「ねりこむ」と記憶される（ステップＡ８）。
【００６７】
ここで、前記形態素候補バッファ１４ｂに記憶された文字列「ねりこむ」は、前記テキストデータメモリ１４ａに記憶された「ねりこむ…」に一致したと判断される（ステップＡ９（Ｙｅｓ））。
【００６８】
そして、今回追加の文字「む」に対応付けられた、その文字「む」で終わる見出し語の数[num]について、num=1と判断されるので（ステップＡ１１（Ｎｏ））、前記形態素候補バッファ１４ｂに記憶された文字列「ねりこむ」は、形態素候補の見出し語（単語）として、形態素候補登録リストデータメモリ１４ｃに登録される（ステップＡ４）。
【００６９】
このような前記一連の候補文字取り出し処理に従い、前記テキストデータ「ねりこむ…」の「ね」の文字を先頭として一致する全ての形態素候補の見出し語（単語）「ねり」「ねりこむ」…が、前記形態素解析辞書１２ｂの見出し語部１２ｂａから抽出され、形態素候補登録リストデータメモリ１４ｃに登録されると、当該各形態素候補の見出し語（単語）「ねり」「ねりこむ」…のそれぞれに対応するトークン情報１２ｂｂｎ…および意味情報１２ｂｃｎ…が読み出される。
【００７０】
そして、前記同様の候補文字取り出し処理に従い抽出された、前記テキストデータ「ねりこむ…」の「ね」の文字と相前後する文字を先頭として一致する各形態素候補の見出し語（単語）との前後関係から、最も適切な見出し語が決定される（ステップＳ３）。
【００７１】
こうして、前記テキストデータメモリ１４ａに記憶されたテキストデータを構成する最適な形態素の配列が解析されると、当該各形態素の組合せからなる文章データが、文章変換処理１２ａ３によりかな漢字変換され、文章データメモリ１４ｄに記憶される（ステップＳ４）。この文章データメモリ１４ｄに記憶された文章データは、ユーザ操作に応じて、出力装置１５により表示または印刷されて出力される（ステップＳ５）。
【００７２】
したがって、前記構成の音声入力文章作成装置１０の形態素解析辞書１２ｂにおける見出し語部１２ｂａのデータ構造によれば、５０音順の各ひらがな毎にそのかな文字で始まる全ての見出し語（単語）について、その見出し語（単語）を構成するかな文字を、当該見出し語における先頭からの出現位置[pos]とそのかな文字で終わる見出し語の数[num]とを対応付けて格納することで、異なる見出し語でも同じ位置に出現する同じかな文字の共通化を図ることができる。このため、辞書の見出し語を個々の見出し語毎にその読みのままの文字列で格納する必要がなくなり、辞書データの容量を圧縮することが可能となる。
【００７３】
例えば「あ」で始まる見出し語（単語）において、「あい：愛」「あい：相」「あいて：相手」の３つの見出し語を格納する場合、「あ：出現位置[pos=0]：同文字で終わる見出し語数[num=0]」「い：出現位置[pos=1]：同文字で終わる見出し語数[num=2]」「て：出現位置[pos=3]：同文字で終わる見出し語数[num=1]」として格納することで、出現位置[pos]と見出し語数[num]を辿って各見出し語とも読み出し可能に格納できる一方で、文字コードの格納数は延べの７文字分ではなく、３文字分に圧縮できる。
【００７４】
また、前記構成の音声入力文章作成装置１０の形態素解析辞書１２ｂにおける見出し語部１２ｂａのデータ構造によれば、見出し語（単語）を構成するかな文字に対応付けて、当該見出し語における先頭からの出現位置[pos]とそのかな文字で終わる見出し語の数[num]とを格納し、さらに、そのかな文字で終わる見出し語について形態素解析するためのトークン情報１２ｂｂｎが存在するトークン部１２ｂｂの先頭からの位置を示すオフセット[offset]も格納した。このため、適宜入力されたテキストデータの文字列と一致する各見出し語を、当該テキストデータを構成する形態素の候補として見出し語部１２ｂａから読み出し、その各見出し語について容易に形態素解析することができる。
【００７５】
なお、前記実施形態の形態素解析辞書１２ｂのデータ構造（図２・図３参照）では、トークン部１２ｂｂのトークン情報１２ｂｂｎに基づいて、当該トークン情報１２ｂｂｎに対応した意味部１２ｂｃの意味情報１２ｂｃｎを読み出すためのリンク情報として、トークン情報１２ｂｂｎに、当該トークン情報１２ｂｂｎに対応した意味情報１２ｂｃｎが存在している意味部１２ｂｃの先頭からのオフセット[offset]を記述した。これに対し、例えば図７における他の実施形態の形態素解析辞書１２ｂ′のデータ構造で示すように、トークン部１２ｂｂ′のトークン情報１２ｂｂｎ′には、当該トークン情報１２ｂｂｎ′に対応した意味情報１２ｂｃｎが存在している意味部１２ｂｃの先頭からの総データ量[amount]を記述して、意味情報１２ｂｃｎを読み出し可能にしてもよい。
【００７６】
図７は、前記音声入力文章作成装置１０に記憶された他の実施形態の形態素解析辞書１２ｂ′の全体的なデータ構造を示す図である。
【００７７】
なお、本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【符号の説明】
【００７８】
１０  …音声入力文章作成装置
１１  …ＣＰＵ
１２  …記憶装置
１２ａ…音声認識プログラム
１２ａ１…音声／テキスト変換処理
１２ａ２…形態素解析処理
１２ａ３…文章変換処理
１２ｂ，１２ｂ′…形態素解析辞書
１２ｂａ…見出し語部
１２ｂａｎ…見出し語
１２ｂｂ，１２ｂｂ′…トークン部
１２ｂｂｎ，１２ｂｂｎ′…トークン情報
１２ｂｃ…意味部
１２ｂｃｎ…意味情報
１３  …入力装置
１４  …ＲＡＭ
１４ａ…テキストデータメモリ
１４ｂ…形態素候補バッファ
１４ｃ…形態素候補登録リストデータメモリ
１４ｄ…文章データメモリ
１５  …出力装置
【図１】
2011003146.tif 000003
【図２】
2011003146.tif 000004
【図３】
2011003146.tif 000005
【図４】
2011003146.tif 000006
【図５】
2011003146.tif 000007
【図６】
2011003146.tif 000008
【図７】
2011003146.tif 000009