(57)【要約】【課題】単語のベクトルの生成に要するメモリ容量を抑制すること。【解決手段】情報処理装置５０は、テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付け、受け付けた複数の符号情報に基づき、複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定する。情報処理装置５０は、単語に対応するベクトルを、単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、複数のベクトルを代表する代表ベクトルを生成する。【選択図】図２
2019159699.tif 000002
【特許請求の範囲】
【請求項１】
テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付け、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定し、
単語に対応するベクトルを、前記単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、
取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する
処理をコンピュータに実行させることを特徴とする生成プログラム。
【請求項２】
前記特定する処理は、符号情報の特定ビット位置の情報を基にして、出現頻度が基準を超える符号情報を、受け付けた複数の符号情報から特定することを特徴とする請求項１に記載の生成プログラム。
【請求項３】
出現頻度が基準を超える符号情報のベクトルを示す高頻度ベクトルテーブルを補助記憶部から読み込み、前記高頻度ベクトルテーブルを前記記憶部に常駐させる処理を更にコンピュータに実行させることを特徴とする請求項１または２に記載の生成プログラム。
【請求項４】
出現頻度が基準以下となる符号情報のベクトルを示す低頻度ベクトルテーブルを記憶する補助記憶部から、前記低頻度ベクトルテーブルのデータを逐次、読み込み、前記複数の符号情報のうち、出現頻度が基準以下となる符号情報のベクトルを演算する処理を更にコンピュータに実行させることを特徴とする請求項１、２または３に記載の生成プログラム。
【請求項５】
コンピュータが実行する生成方法であって、
テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付け、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定し、
単語に対応するベクトルを、前記単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、
取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する
処理を実行することを特徴とする生成方法。
【請求項６】
テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付ける受付部と、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定し、単語に対応するベクトルを、前記単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する特定部と
を有することを特徴とする情報処理装置。
【請求項７】
第１演算装置と第２演算装置とを有する情報処理システムであって、
前記第１演算装置は、
テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を前記第２演算装置に転送する第１転送部と、
前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準以下となる複数の第１符号情報を特定し、単語に対応するベクトルを、前記単語に対応する前記第１符号情報に関連付けて記憶する第１記憶部を参照して、特定した前記複数の第１符号情報にそれぞれ関連付けられた複数のベクトルを取得する第１特定部と、
前記第２演算装置から転送される代表ベクトルと、前記複数のベクトルとを統合したベクトルデータを生成する統合部と、を有し、
前記第２演算装置は、
前記第１演算装置の前記第１転送部から、前記複数の符号情報を受け付ける受付部と、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の第２符号情報を特定し、単語に対応するベクトルを、前記単語に対応する第２符号情報に関連付けて記憶する第２記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する第２特定部と、
前記代表ベクトルを前記第１演算装置に転送する第２転送部とを有することを特徴とする情報処理システム。
【請求項８】
前記第１転送部は、前記複数の符号情報から、前記複数の第１符号情報を除いた残りの符号情報を、前記第２演算装置に転送することを特徴とする請求項７に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成プログラム等に関する。
【背景技術】
【０００２】
近年、解析対象のテキストデータを構成する形態素それぞれに基づいて、テキストデータからベクトルを生成するWord2Vec技術が存在する。たとえば、Word2Vec技術では、ある単語（形態素）と、ある単語に隣接する他の単語との関係に基づいて、各単語のベクトルを算出する処理を行う。
【０００３】
また、テキストデータのセンテンスのベクトル値を集計する場合に、ベクトルテーブルを用いて、各単語のベクトルを特定する従来技術がある。図１１は、従来技術を説明するための図である。図１１に示す従来技術では、センテンスデータ１ａを基にして、各単語のベクトルを集計し、ベクトルデータ１ｂを生成する場合について説明する。
【０００４】
一例として、センテンスデータ１ａ「He  likes  sweet  apple.」を構成する単語をすれぞれ、（He）（likes）（sweet）（apple）とする。従来技術は、ハッシュフィルタ２と、ベクトルテーブル３とを用いて、単語のベクトルを特定する。ハッシュフィルタ２は、単語のハッシュ値と、ベクトルテーブル３へのポインタとを対応付ける情報である。ベクトルテーブル３は、単語に対応するベクトルを保持するテーブルである。
【０００５】
たとえば、ハッシュフィルタ２に、単語「apple」のハッシュ値を入力すると、単語「apple」に対応するベクトルを格納するベクトルテーブル３の位置が特定される。説明の便宜上、単語「apple」のベクトルを「vec（apple）」と表記する。従来技術では、センテンスデータ１ａに対して形態素解析を行うことで、センテンスデータ１ａに含まれる各単語「He、likes、sweet、apple」を抽出し、ハッシュフィルタ２、ベクトルテーブル３を用いて、各単語のベクトルを集計することで、ベクトルデータ１ｂを生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１９８１０６号公報
【特許文献２】特開２００９−２２３８０１号公報
【特許文献３】特開２００９−０８６２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、単語のベクトルを集計し、ベクトルデータの生成に要するメモリ容量を抑制することができないという問題がある。
【０００８】
たとえば、従来技術で用いるベクトルテーブルは、１つの言語あたり５０万語に対してテーブルのデータ量が、４００ＭＢと大きいため、小規模のコンピュータのメモリ容量を圧迫し、プログラムの実行に支障を及ぼす。また、場合によってはベクトルテーブルをメモリに格納することが難しい場合もある。
【０００９】
１つの側面では、本発明は、単語のベクトルを集計し、ベクトルデータの生成に要するメモリ容量を抑制することができる生成プログラム、生成方法、情報処理装置および情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、コンピュータに次の処理を実行させる。コンピュータは、テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付け、受け付けた複数の符号情報に基づき、複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定する。コンピュータは、単語に対応するベクトルを、単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得する。コンピュータは、取得した複数のベクトルに基づき、複数のベクトルを代表する代表ベクトルを生成する。
【発明の効果】
【００１１】
単語のベクトルを集計し、ベクトルデータの生成に要するメモリ容量を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例に係る情報処理装置の処理の一例を説明するための図である。
【図２】図２は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【図３】図３は、コード変換部の処理を説明するための図である。
【図４】図４は、本実施例に係る第１演算部の構成を示す機能ブロック図である。
【図５】図５は、第１演算部のベクトルテーブルのデータ構造の一例を示す図である。
【図６】図６は、本実施例に係る第２演算部の構成を示す機能ブロック図である。
【図７】図７は、第２演算部のベクトルテーブルのデータ構造の一例を示す図である。
【図８】図８は、本実施例に係る第１演算部の処理手順を示すフローチャートである。
【図９】図９は、本実施例に係る第２演算部の処理手順を示すフローチャートである。
【図１０】図１０は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図１１】図１１は、従来技術を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する生成プログラム、生成方法、情報処理装置および情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
図１は、本実施例に係る情報処理装置の処理の一例を説明するための図である。図１に示すように、この情報処理装置（情報処理システム）は、第１演算部１００と、第２演算部２００とを有する。たとえば、第１演算部１００は、ＰＣ（Personal  Computer）等に対応し、第２演算部２００は、ＰＣに接続されるグラフィックカード等に対応する。第１演算部１００は、第１演算装置の一例である。第２演算部２００は、第２演算装置の一例である。
【００１５】
第１演算部１００は、メインメモリ１５０と、補助記憶部１６０と、制御部１７０とを有する。たとえば、補助記憶部１６０は、ベクトルテーブル１６１を有する。ベクトルテーブル１６１は、低頻度の単語のコードと、ベクトルとを対応付けるテーブルである。制御部１７０は、ＣＰＵ（Central  Processing  Unit）に対応する制御装置である。
【００１６】
制御部１７０は、圧縮テキストデータ１０を受け付けると、圧縮テキストデータ１０を、メインメモリ１５０に格納する。圧縮テキストデータ１０は、テキストデータをコード化（圧縮）したデータである。たとえば、圧縮テキストデータ１０には、コード化された複数の単語が含まれる。以下の説明では、適宜、コード化された単語を「単語コード」と表記する。メインメモリ１５０に格納された圧縮テキストデータ１０は、第２演算部２００にＤＭＡ（Direct  Memory  Access）転送される。
【００１７】
制御部１７０は、ベクトルテーブル１６１の一部のデータをメインメモリ１５０に逐次読み出し、圧縮テキストデータ１０と、ベクトルテーブル１６１とを比較して、圧縮テキストデータ１０に含まれる各単語コードのうち、低頻度の単語コードのベクトルを特定することで、低頻度ベクトルデータ１０ａを生成する。
【００１８】
制御部１７０は、第２演算部２００から送信される高頻度ベクトルデータ１０ｂを取得し、低頻度ベクトルデータ１０ａと、高頻度ベクトルデータ１０ｂとを結合することで、圧縮テキストデータ１０に対応するベクトルデータ２０を生成する。
【００１９】
第２演算部２００は、ビデオメモリ２５０と、制御部２６０とを有する。たとえば、制御部２６０は、ＧＰＵ（Graphics  Processing  Unit）に対応する制御装置である。ビデオメモリ２５０は、ベクトルテーブル２５１を有する。ベクトルテーブル２５１は、高頻度の単語コードと、ベクトルとを対応付けるテーブルである。
【００２０】
制御部２６０は、ＤＭＡ転送により、ビデオメモリ２５１に圧縮テキストデータ１０が格納されると、圧縮テキストデータ１０と、ベクトルテーブル２５１とを比較して、圧縮テキストデータ１０に含まれる各単語コードのうち、高頻度の単語コードのベクトルを特定することで、高頻度ベクトルデータ１０ｂを生成する。高頻度ベクトルデータ１０ｂは、ＤＭＡ転送により、第１演算部２００に転送される。
【００２１】
上記のように、第２演算部２００が、ベクトルテーブル２５１を常駐し、圧縮テキストデータ１０に含まれる単語コードのうち、高頻度の単語コードに対応する高頻度ベクトルデータ１０ｂを生成し、第１演算部２００に転送する。
【００２２】
これに対して、第１演算部１００は、ベクトルテーブル１６１の一部データを逐次読み出して、低頻度の単語コードに対応する低頻度ベクトルデータ１０ａを生成する。第１演算部１００は、自身の生成した低頻度ベクトルデータ１０ａと、第２演算部２００が生成した高頻度ベクトルデータ１０ｂとを結合することで、圧縮テキストデータ１０のベクトルデータ２０を生成する。
【００２３】
第１演算部１００は、ベクトルテーブル１６１の一部をメインメモリ１５０に読み出して、低頻度の単語コードの低頻度ベクトル１０ａを生成し、高頻度の単語コードの高頻度ベクトル１０ｂの生成を、第２演算部２００に依頼することで、単語のベクトルの生成に要するメモリ容量を抑制することができる。
【００２４】
また、第２演算部２００は、ビデオメモリ２５０にベクトルテーブル２５１を常駐させるため、ベクトルテーブル２５１のデータを補助記憶装置から逐次読み出す場合と比較して、高頻度の単語コードの高頻度ベクトル１０ｂを生成する処理を高速化することができる。
【００２５】
次に、本実施例に係る情報処理装置の構成の一例について説明する。図２は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。図２に示すように、この情報処理装置５０は、コード変換部５５と、第１演算部１００と、第２演算部２００とを有する。
【００２６】
コード変換部５５は、テキストデータを圧縮テキストデータ１０に変換する処理部である。コード変換部５５は、圧縮テキストデータを、第１演算部１００に出力する。図２では一例として、コード圧縮部５５が、第１演算部１００の外部にある場合について説明するが、これに限定されるものではない。コード変換部５５は、第１演算部１００の内部にあってもよいし、情報処理装置５０に接続する外部装置にコード変換部５５に対応する機能を持たせてもよい。
【００２７】
図３は、コード変換部の処理を説明するための図である。図３に示すように、コード変換部５５は、テキストデータ５を受け付けると、コード割当表５５ａを基にして、圧縮テキストデータ１０を生成する。たとえば、コード割当表５５ａは、単語コードと、単語（高頻度単語および低頻度単語）とを対応付けるテーブルである。高頻度の単語は、１バイトまたは２バイトの単語コードに変換される。低頻度の単語は、３バイトの単語コードに変換される。
【００２８】
ここで、図３に示すように、高頻度単語の単語コードの先頭４ビットは「００ｈ〜９０ｈ」に含まれる。また、低頻度単語のコードの先頭４ビットは「Ａ０ｈ〜Ｆ０ｈ」に含まれる。このため、単語コードの先頭４ビットを参照することで、単語コードは、高頻度単語の単語であるか、低頻度単語の単語コードであるかを区別することができる。「ｈ」は、数字が１６進数であることを示す記号である。
【００２９】
説明の便宜上、各単語「Kataoka、likes、coffee、He、sweet、apple」に対応する単語コードを「コード（Kataoka）、コード（likes）、コード（coffee）、コード（He）、コード（sweet）、コード（apple）」と表記する。たとえば、単語「likes、coffee、He、sweet、apple」を高頻度単語とすると、各単語コード「コード（likes）、コード（coffee）、コード（He）、コード（sweet）、コード（apple）」の先頭４ビットは、「Ａ０ｈ〜Ｆ０ｈ」に含まれる。単語「Kataoka」を低頻度単語とすると、単語コード「コード（Kataoka）」の先頭４ビットは、「Ａ０ｈ〜Ｆ０ｈ」に含まれる。
【００３０】
続いて、図１で説明した第１演算部１００の構成について説明する。図４は、本実施例に係る第１演算部の構成を示す機能ブロック図である。図４に示すように、この第１演算部１００は、メインメモリ１５０と、補助記憶部１６０と、転送部１５５と、制御部１７０とを有する。
【００３１】
メインメモリ１５０は、圧縮テキストデータ１０、低頻度ベクトルデータ１０ａ、ベクトルデータ２０を保持する記憶装置である。たとえば、メインメモリ１５０は、ＲＡＭ（Random  Access  Memory）等に対応する。
【００３２】
圧縮テキストデータ１０は、コード変換部５５により受け付けるコード化（圧縮）されたテキストデータである。圧縮テキストデータ１０には、コード化された複数の単語コードが含まれる。
【００３３】
低頻度ベクトルデータ１０ａは、圧縮テキストデータ１０に含まれる複数の単語コードのうち、各低頻度単語の単語コードに対応する各ベクトル値を含むものである。
【００３４】
ベクトルデータ２０は、圧縮テキストデータ１０の各単語コードのベクトルを示す。図１で説明したように、ベクトルデータ２０は、第１演算部１００が生成した低頻度ベクトルデータ１０ａと、第２演算部２００が生成した高頻度ベクトルデータ１０ｂとを結合したものとなる。
【００３５】
転送部１５５は、メインメモリ１５０に格納された圧縮テキストデータ１０を取得し、取得した圧縮テキストデータ１０を、第２演算部２００にＤＭＡ転送する処理部である。また、転送部１５５は、第２演算部２００からＤＭＡ転送される高頻度ベクトルデータ１０ｂを受信し、受信した高頻度ベクトルデータ１０ｂを、メインメモリ１５０に格納する。高頻度ベクトルデータ１０ｂの図示を省略する。転送部１５５は、第１転送部の一例である。
【００３６】
補助記憶部１６０は、ベクトルテーブル１６１を保持する記憶装置である。たとえば、補助記憶部１６０は、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００３７】
ベクトルテーブル１６１は、低頻度の単語の単語コードのベクトル値を保持するテーブルである。図５は、第１演算部のベクトルテーブルのデータ構造の一例を示す図である。図５に示すように、ベクトルテーブル１６１は、低頻度単語コードと、ベクトル値とを対応付ける。低頻度単語コードは、低頻度の単語の単語コードを示すものである。ベクトル値は、Word2Vec技術等を基にして、単語コードに対して予め算出された単語のベクトル値である。本実施例では、ある低頻度単語コードのベクトル値を、vec（）によって示すものとする。たとえば、低頻度単語コード「Kataoka」のベクトル値を「vec（Kataoka）」と表記する。なお、低頻度の単語の数は、約５０万語である。
【００３８】
図４の説明に戻る。制御部１７０は、受付部１７１と、特定部１７２と、統合部１７３とを有する。制御部１７０は、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などによって実現できる。
【００３９】
受付部１７１は、コード変換部５５から、圧縮テキストデータ１０を受け付ける処理部である。受付部１７１は、受け付けた圧縮テキストデータ１０を、メインメモリ１５０に格納する。
【００４０】
特定部１７２は、圧縮テキストデータ１０の各単語コードのうち、低頻度の単語コードを特定する。たとえば、特定部１７２は、単語コードの先頭４ビットを参照し、先頭４ビットが「Ａ０ｈ〜Ｆ０ｈ」のいずれかとなる単語コードを低頻度の単語コードとして特定する。低頻度の単語コードは、出現頻度が基準以下となる単語コードである。
【００４１】
特定部１７２は、特定した低頻度の単語コードと、ベクトルテーブル１６１との比較により、低頻度の単語コードに対応するベクトル値を取得する処理を、低頻度の単語コード毎に実行し、取得した各ベクトル値を、低頻度ベクトルデータ１０ａとして生成する。特定部１７２は、第１特定部の一例である。
【００４２】
統合部１７３は、低頻度ベクトルデータ１０ａと、第２演算部２００からＤＭＡ転送される高頻度ベクトルデータ１０ｂとを結合することで、ベクトルデータ２０を生成する処理部である。統合部１７３は、圧縮テキストデータ１０に含まれる各単語コードの順に、各単語コードのベクトル値を配列することで、ベクトルデータ２０を生成してもよいし、圧縮テキストデータ１０に含まれる各単語コードのベクトル値を集積（合計）したベクトル値を、ベクトルデータ２０として生成してもよい。
【００４３】
続いて、図１で説明した第２演算部２００の構成について説明する。図６は、本実施例に係る第２演算部の構成を示す機能ブロック図である。図６に示すように、この第２演算部２００は、ビデオメモリ２５０と、転送部２５５と、制御部２６０とを有する。
【００４４】
ビデオメモリ２５０は、ベクトルテーブル２５１、圧縮テキストデータ１０、高頻度ベクトルデータ１０ｂを保持する記憶装置である。たとえば、ビデオメモリ２５０は、ＲＡＭ等に対応する。
【００４５】
ベクトルテーブル２５１は、高頻度の単語の単語コードのベクトル値を保持するテーブルである。図７は、第２演算部のベクトルテーブルのデータ構造の一例を示す図である。図７に示すように、このベクトルテーブル２５１は、高頻度単語コードと、ベクトル値とを対応付ける。高頻度単語コードは、高頻度の単語の単語コードを示すものである。ベクトル値は、Word2Vec技術等を基にして、単語コードに対して予め算出された単語のベクトル値である。本実施例では、ある高頻度単語コードのベクトル値を、vec（）によって示すものとする。たとえば、高頻度単語コード「apple」のベクトル値を「vec（apple）」と表記する。なお、高頻度の単語の数は、約４０００語である。
【００４６】
圧縮テキストデータ１０は、第１演算部１００からＤＭＡ転送される圧縮テキストデータである。圧縮テキストデータ１０に関する説明は、図４で説明した圧縮テキストデータ１０に関する説明と同様である。
【００４７】
高頻度ベクトルデータ１０ｂは、圧縮テキストデータ１０に含まれる複数の単語コードのうち、各高頻度単語の単語コードに対応する各ベクトル値を含むものである。高頻度ベクトルデータ１０ｂは、代表ベクトルの一例である。
【００４８】
転送部２５５は、第１演算部１００からＤＭＡ転送される圧縮テキストデータ１０を取得した場合に、取得した圧縮テキストデータ１０を、ビデオメモリ２５０に格納する。また、転送部２５５は、ビデオメモリ２５０に格納された高頻度ベクトルデータ１０ｂを取得し、取得した高頻度ベクトルデータ１０ｂを、第１演算部１００にＤＭＡ転送する。転送部２５５は、受付部および第２転送部の一例である。
【００４９】
制御部２６０は、特定部２６１を有する。制御部２６０は、ＧＰＵなどによって実現できる。
【００５０】
特定部２６１は、圧縮テキストデータ１０の各単語コードのうち、高頻度の単語コードを特定する。たとえば、特定部２６１は、単語コードの先頭４ビットを参照し、先頭４ビットが「１０ｈ〜９０ｈ」のいずれかとなる単語コードを高頻度の単語コードとして特定する。高頻度の単語コードは、出現頻度が基準を超える単語コードである。
【００５１】
特定部２６１は、特定した高頻度の単語コードと、ベクトルテーブル２５１との比較により、高頻度の単語コードに対応するベクトル値を取得する処理を、高頻度の単語コード毎に実行し、取得した各ベクトル値を、高頻度ベクトルデータ１０ｂとして生成する。特定部２６１は、第２特定部の一例である。
【００５２】
特定部２６１は、各高頻度の単語コードのベクトル値を集積することで、高頻度ベクトルデータ１０ｂを生成してもよいし、各ベクトル値を配列することで、高頻度ベクトルデータ１０ｂを生成してもよい。
【００５３】
次に、本実施例に係る第１演算部１００の処理手順の一例について説明する。図８は、本実施例に係る第１演算部の処理手順を示すフローチャートである。図８に示すように、第１演算部１００の受付部１７１は、圧縮テキストデータ１０を取得する（ステップＳ１０１）。第１演算部１００の転送部１５５は、圧縮テキストデータ１０を、第２演算部２００にＤＭＡ転送する（ステップＳ１０２）。
【００５４】
第１演算部１００の特定部１７２は、圧縮テキストデータ１０を走査し、圧縮テキストデータ１０に含まれる単語コードのうち、低頻度単語コードを抽出する（ステップＳ１０３）。特定部１７２は、ベクトルテーブル１６１を基にして、各低頻度単語コードのベクトル値を特定し、低頻度ベクトルデータ１０ａを生成する（ステップＳ１０４）。
【００５５】
転送部１５５は、第２演算部２００から、ＤＭＡ転送により高頻度ベクトルデータ１０ｂを受信する（ステップＳ１０５）。第１演算部１００の統合部１７３は、低頻度ベクトルデータ１０ａと、高頻度ベクトルデータ１０ｂとを統合することで、ベクトルデータ２０を生成する（ステップＳ１０６）。
【００５６】
次に、本実施例に係る第２演算部２００の処理手順の一例について説明する。図９は、本実施例に係る第２演算部の処理手順を示すフローチャートである。図９に示すように、第２演算部２００の転送部２５５は、第１演算部１００から、ＤＭＡ転送により、圧縮テキストデータ１０を受信する（ステップＳ２０１）。
【００５７】
第２演算部２００の特定部２６１は、圧縮テキストデータ１０を走査し、圧縮テキストデータ１０に含まれる単語コードのうち、高頻度単語コードを抽出する（ステップＳ２０２）。
【００５８】
特定部２６１は、ベクトルテーブル２５１を基にして、各高頻度単語コードのベクトル値を特定する（ステップＳ２０３）。特定部２６１は、各高頻度単語コードの各ベクトル値を集積することで、高頻度ベクトルデータ１０ｂを生成する（ステップＳ２０４）。
【００５９】
転送部２５５は、ＤＭＡ転送により、高頻度ベクトルデータ１０ｂを第１演算部１００に転送する（ステップＳ２０５）。
【００６０】
次に、本実施例に係る情報処理装置５０の効果について説明する。情報処理装置５０の第１演算部１００は、ベクトルテーブル１６１の一部をメインメモリ１５０に読み出して、低頻度の単語コードの低頻度ベクトル１０ａを生成し、高頻度の単語コードの高頻度ベクトル１０ｂの生成を、第２演算部２００に依頼することで、単語のベクトルの生成に要するメモリ容量を抑制することができる。
【００６１】
情報処理装置５０の第２演算部２００は、ビデオメモリ２５０にベクトルテーブル２５１を常駐させて、高頻度ベクトルデータ１０ｂを生成する。これにより、ベクトルテーブル２５１のデータを補助記憶装置から逐次読み出す場合と比較して、高頻度の単語コードの高頻度ベクトル１０ｂを生成する処理を高速化することができる。
【００６２】
本実施例に係る情報処理装置５０は、圧縮テキストデータ１０の各単語コードが低頻度であるか高頻度であるかを判定する場合に、単語コードの先頭４ビットが所定のビットであるか否かにより、判定を行う。これにより、単語コードの全ビットを参照して判定する場合と比較して、各単語コードが低頻度であるか高頻度であるかを判定する処理を高速化することができる。
【００６３】
ところで、図１では、第１演算部１００と第２演算部２００でベクトルデータの生成を分担しているが、これに限定されるものではない。たとえば、第１演算部のメインメモリ１５０に高頻度のベクトルテーブル２５１を常駐し、第１演算部のみで、高頻度と低頻度のベクトルデータを生成することも可能である。また、図４に示した圧縮テキストデータについても、第１演算部のメインメモリ１５０からそのまま、第２演算部のビデオメモリ２５０にＤＭＡ転送しているが、これに限定されるものではない。たとえば、転送部１５５は、ベクトルテーブル１６１を参照して、圧縮テキストデータ１０から、低頻度の単語コードを取り除き、低頻度の単語コードを取り除いた圧縮テキストデータ１０を、第２演算部のビデオメモリ２５０にＤＭＡ転送してもよい。これにより、ＤＭＡ転送によるデータ量を削減することができる。
【００６４】
次に、上記実施例に示した情報処理装置５０と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１０は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【００６５】
図１０に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。コンピュータ３００は、有線または無線ネットワークを介して収録機器等との間でデータの授受を行うインターフェース装置３０４とを有する。
【００６６】
コンピュータ３００は、グラフィックカード３０５を有する。グラフィックカード３０５のＧＰＵ（図示略）は、特定プロセスを実行する。特定プロセスの処理は、特定部２６１が実行する処理に対応するものである。
【００６７】
また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。
【００６８】
ハードディスク装置３０７は、受付プログラム３０７ａ、特定プログラム３０７ｂ、統合プログラム３０７ｃを有する。ＣＰＵ３０１は、各プログラム３０７ａ〜３０７ｃを読み出してＲＡＭ３０６に展開する。
【００６９】
受付プログラム３０７ａは、受付プロセス３０６ａとして機能する。特定プログラム３０７ｂは、特定プロセス３０６ｂとして機能する。統合プログラム３０７ｃは、統合プロセス３０６ｃとして機能する。
【００７０】
受付プロセス３０６ａの処理は、受付部１７１の処理に対応する。特定プロセス３０６ｂの処理は、特定部１７２の処理に対応する。統合プロセス３０６ｃの処理は、統合部１７３の処理に対応する。
【００７１】
ＲＡＭ３０６とグラフィックカード３０５に含まれるビデオカードとは、ＤＭＡ転送により、データをやり取りする。
【００７２】
なお、各プログラム３０７ａ〜３０７ｃについては、必ずしも最初からハードディスク装置３０７に記憶させておかなくてもよい。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ〜３０７ｃを読み出して実行するようにしても良い。
【００７３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７４】
（付記１）テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付け、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定し、
単語に対応するベクトルを、前記単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、
取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する
処理をコンピュータに実行させることを特徴とする生成プログラム。
【００７５】
（付記２）前記特定する処理は、符号情報の特定ビット位置の情報を基にして、出現頻度が基準を超える符号情報を、受け付けた複数の符号情報から特定することを特徴とする付記１に記載の生成プログラム。
【００７６】
（付記３）出現頻度が基準を超える符号情報のベクトルを示す高頻度ベクトルテーブルを補助記憶部から読み込み、前記高頻度ベクトルテーブルを前記記憶部に常駐させる処理を更にコンピュータに実行させることを特徴とする付記１または２に記載の生成プログラム。
【００７７】
（付記４）出現頻度が基準以下となる符号情報のベクトルを示す低頻度ベクトルテーブルを記憶する補助記憶部から、前記低頻度ベクトルテーブルのデータを逐次、読み込み、前記複数の符号情報のうち、出現頻度が基準以下となる符号情報のベクトルを演算する処理を更にコンピュータに実行させることを特徴とする付記１、２または３に記載の生成プログラム。
【００７８】
（付記５）コンピュータが実行する生成方法であって、
テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付け、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定し、
単語に対応するベクトルを、前記単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、
取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する
処理を実行することを特徴とする生成方法。
【００７９】
（付記６）前記特定する処理は、符号情報の特定ビット位置の情報を基にして、出現頻度が基準を超える符号情報を、受け付けた複数の符号情報から特定することを特徴とする付記５に記載の生成方法。
【００８０】
（付記７）出現頻度が基準を超える符号情報のベクトルを示す高頻度ベクトルテーブルを補助記憶部から読み込み、前記高頻度ベクトルテーブルを前記記憶部に常駐させる処理を更に実行することを特徴とする付記５または６に記載の生成方法。
【００８１】
（付記８）出現頻度が基準以下となる符号情報のベクトルを示す低頻度ベクトルテーブルを記憶する補助記憶部から、前記低頻度ベクトルテーブルのデータを逐次、読み込み、前記複数の符号情報のうち、出現頻度が基準以下となる符号情報のベクトルを演算する処理を更にコンピュータに実行させることを特徴とする付記５、６または７に記載の生成方法。
【００８２】
（付記９）テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を受け付ける受付部と、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の符号情報を特定し、単語に対応するベクトルを、前記単語に対応する符号情報に関連付けて記憶する記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する特定部と
を有することを特徴とする情報処理装置。
【００８３】
（付記１０）前記特定部は、符号情報の特定ビット位置の情報を基にして、出現頻度が基準を超える符号情報を、受け付けた複数の符号情報から特定することを特徴とする付記９に記載の情報処理装置。
【００８４】
（付記１１）前記特定部は、出現頻度が基準を超える符号情報のベクトルを示す高頻度ベクトルテーブルを補助記憶部から読み込み、前記高頻度ベクトルテーブルを前記記憶部に常駐させる処理を更に実行することを特徴とする付記９または１０に記載の情報処理装置。
【００８５】
（付記１２）前記特定部は、出現頻度が基準以下となる符号情報のベクトルを示す低頻度ベクトルテーブルを記憶する補助記憶部から、前記低頻度ベクトルテーブルのデータを逐次、読み込み、前記複数の符号情報のうち、出現頻度が基準以下となる符号情報のベクトルを演算する処理を更に実行することを特徴とする付記９、１０または１１に記載の情報処理装置。
【００８６】
（付記１３）第１演算装置と第２演算装置とを有する情報処理システムであって、
前記第１演算装置は、
テキストデータに含まれる複数の単語にそれぞれ対応する複数の符号情報を前記第２演算装置に転送する第１転送部と、
前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準以下となる複数の第１符号情報を特定し、単語に対応するベクトルを、前記単語に対応する前記第１符号情報に関連付けて記憶する第１記憶部を参照して、特定した前記複数の第１符号情報にそれぞれ関連付けられた複数のベクトルを取得する第１特定部と、
前記第２演算装置から転送される代表ベクトルと、前記複数のベクトルとを統合したベクトルデータを生成する統合部と、を有し、
前記第２演算装置は、
前記第１演算装置の前記第１転送部から、前記複数の符号情報を受け付ける受付部と、
受け付けた前記複数の符号情報に基づき、前記複数の符号情報のうち、出現頻度が基準を超える複数の第２符号情報を特定し、単語に対応するベクトルを、前記単語に対応する第２符号情報に関連付けて記憶する第２記憶部を参照して、特定した前記複数の符号情報にそれぞれ関連付けられた複数のベクトルを取得し、取得した前記複数のベクトルに基づき、前記複数のベクトルを代表する代表ベクトルを生成する第２特定部と、
前記代表ベクトルを前記第１演算装置に転送する第２転送部とを有することを特徴とする情報処理システム。
【００８７】
（付記１４）前記第１転送部は、前記複数の符号情報から、前記複数の第１符号情報を除いた残りの符号情報を、前記第２演算装置に転送することを特徴とする付記１３に記載の情報処理システム。
【符号の説明】
【００８８】
５０  情報処理装置
５５  コード変換部
１００  第１演算部
１５０  メインメモリ
１５５，２５５  転送部
１６０  補助記憶部
１６１，２５１  ベクトルテーブル
１７０  制御部
１７１  受付部
１７２  特定部
１７３  統合部
２００  第２演算部
【図１】
2019159699.tif 000003
【図２】
2019159699.tif 000004
【図３】
2019159699.tif 000005
【図４】
2019159699.tif 000006
【図５】
2019159699.tif 000007
【図６】
2019159699.tif 000008
【図７】
2019159699.tif 000009
【図８】
2019159699.tif 000010
【図９】
2019159699.tif 000011
【図１０】
2019159699.tif 000012
【図１１】
2019159699.tif 000013