以下、本実施の形態について図面を参照しながら説明する。なお、同じ構成要素及び同じ処理には全図面を通して同じ符合を付与し、重複する説明を省略する。
図1は、本実施の形態に係る出力装置10の機能構成例を示す図である。出力装置10は、データ蓄積部11、抽出部12、生成部13、学習部14、入力部15、及び出力部16の各機能部を備え、学習部14は学習の対象となる生成モデル17を備える。
データ蓄積部11は、物事を説明するテキストである説明テキストと、説明テキストで説明された物事から連想されるテキストである連想テキストを関連付けたデータ(以降、「ペアデータ」という)を蓄積する。
説明テキストとは、物事の状況または特徴を説明した文または単語である。例えばA寺の説明テキストとして、「A寺は790年に建立された寺院である。昭和25年に焼失し、その後、昭和60年に再建された。秋には園内のメイン通りにあるおよそ300本の楓が紅葉し、人々を魅了している。」というような文が用いられる。
連想テキストとは、説明テキストから連想される文または単語のことである。関連する説明テキストから連想されるテキストであれば連想テキストの文字数に制約はなく、関連する説明テキストの文字数より多くなっても少なくなってもよい。以降では、連想テキストの一例として、説明テキストで表された物事のキャッチコピーが説明テキストに関連付けられ、説明テキストと一緒にデータ蓄積部11に蓄積されている例について説明する。
キャッチコピーとは、連想テキストの一例であり、物事の存在をユーザに印象付けるため、人目を引く表現を用いて物事の特徴をまとめた文または単語である。例えば上述したA寺の説明テキストに対して、「タイムスリップしたかのよう!歴史感じるA寺で紅葉を楽しもう!」というような文が説明テキストで説明される物事のキャッチコピーとなる。
こうしたキャッチコピーはユーザが説明テキストから考えて作成してもよいが、ユーザが作成した説明テキストを入力すれば、入力した説明テキストに関連したキャッチコピーを自動的に生成する図示しない生成装置を用いてもよい。当該図示しない生成装置には、説明テキストからキャッチコピーを生成するモデルが含まれるが、説明の便宜上、説明テキストからキャッチコピーを生成する図示しない生成装置に含まれるモデルを出力装置10における生成モデル17と区別するため、別生成モデル19ということにする。
抽出部12は、データ蓄積部11に蓄積されている各々のペアデータから説明テキストを取得し、取得した説明テキストから特徴語を抽出する。特徴語とは、説明テキストで説明される物事の特徴を、説明テキストに含まれる他の語句よりも明確に表している語句のことをいう。語句には文を構成する最小単位である単語、及び文を意味のわかる範囲で区切った単位である文節、文字で区切ったもの、サブワード(例えば、英語だとpreやtionなどの単位で区切ったもの)が含まれる。したがって、抽出部12は特徴語を文節単位で抽出してもよいが、ここでは単語単位で抽出する例について説明する。
生成部13は、抽出部12で抽出された特徴語と、特徴語の抽出元である説明テキストに関連付けられたキャッチコピーとを関連付けて、生成モデル17の学習データを生成する。生成部13は、生成した学習データをデータ蓄積部11に蓄積する。この場合、生成部13は、生成した学習データと、学習データに含まれる特徴語の抽出元となった説明テキストが含まれるペアデータとを更に関連付けてデータ蓄積部11に蓄積してもよい。
学習部14は、生成部13が生成した各々の学習データを用いて、生成モデル17に特徴語とキャッチコピーとの関連付けを学習させる。生成モデル17は例えばニューラルネットワークで構築されており、特徴語を入力とし、入力される特徴語と関連付けられたキャッチコピーを教師データとする機械学習を繰り返し実行することで、生成モデル17から出力されるキャッチコピーと、教師データであるキャッチコピーとの誤差が小さくなるように学習が行われる。
入力部15は、出力装置10を用いてキャッチコピーを生成したいユーザからの情報を受け付ける。具体的には、入力部15は、ユーザがキャッチコピーの生成対象としている物事の特徴を表した単語を受け付ける。ユーザは、キャッチコピーの生成対象としている物事の特徴を複数の単語で表してもよい。以降では、ユーザが入力部15に入力した少なくとも1つ以上の単語をユーザ単語ということにする。ユーザ単語は本実施の形態に係る入力語の一例である。
なお、抽出部12が特徴語を文節単位で抽出し、学習部14が文節単位の特徴語とキャッチコピーとの関連付けを生成モデル17に学習させている場合、入力部15はユーザから文節単位の入力語を受け付けるようにしてもよい。
入力部15で受け付けたユーザ単語は生成モデル17に入力され、入力されたユーザ単語に対して生成モデル17で生成されたキャッチコピーが出力部16に通知される。
出力部16は、生成モデル17から受け付けたキャッチコピーをユーザが認識できる形式に変換して出力する。具体的には、出力部16は、例えばキャッチコピーを画面に表示する形態、音声で通知する形態、用紙等の記録媒体に文字として印字する形態、及びユーザが読み出し可能な記憶媒体に記憶する形態の少なくとも1つの形態を用いて出力する。
次に、出力装置10における電気系統の要部構成例について説明する。
図2は、出力装置10における電気系統の要部構成例を示す図である。出力装置10は例えばコンピュータ20を用いて構成される。
コンピュータ20は、図1に示した出力装置10に係る各機能部を担うプロセッサの一例であるCPU(Central Processing Unit)21、コンピュータ20を図1に示した各機能部として機能させる出力プログラムを記憶するROM(Read Only Memory)22、CPU21の一時的な作業領域として使用されるRAM(Random Access Memory)23、不揮発性メモリ24、及び入出力インターフェース(I/O)25を備える。そして、CPU21、ROM22、RAM23、不揮発性メモリ24、及びI/O25がバス26を介して各々接続されている。
不揮発性メモリ24は、不揮発性メモリ24に供給される電力が遮断されても、記憶した情報が維持される記憶装置の一例であり、例えば半導体メモリが用いられるがハードディスクを用いてもよい。不揮発性メモリ24は、必ずしもコンピュータ20に内蔵されている必要はなく、例えばメモリカードやUSB(Universal Serial Bus)メモリのようにコンピュータ20に着脱される可搬型の記憶装置であってもよい。データ蓄積部11は、例えば不揮発性メモリ24に構築される。
一方、I/O25には、例えば通信ユニット27、入力ユニット28、及び出力ユニット29が接続される。
通信ユニット27は図示しない通信回線に接続され、図示しない通信回線に接続される外部装置との間でデータ通信を行う通信プロトコルを備える。
入力ユニット28は、ユーザからの指示を受け付けてCPU21に通知する装置であり、例えばボタン、タッチパネル、キーボード、及びマウス等が用いられる。指示が音声で行われる場合、入力ユニット28としてマイクが用いられることがある。
出力ユニット29は、CPU21によって処理された情報を出力する装置であり、ユーザの希望する出力形態に応じて、例えば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、プロジェクタ、プリンタ、スピーカー等が用いられる。
なお、I/O25に接続されるユニットは図2に示した各ユニットに限定されず、必要に応じて外部記憶ユニットといった他のユニットを接続してもよい。
次に、出力装置10の動作について説明する。
図3は、出力装置10のCPU21によって実行される学習処理の流れの一例を示すフローチャートである。学習処理を規定する出力プログラムは、例えば出力装置10のROM22に予め記憶されている。出力装置10のCPU21は、ROM22に記憶される出力プログラムを読み込み、学習処理を実行する。CPU21は、図3に示す学習処理を何れのタイミングで実行してもよいが、一例として、ユーザから生成モデル17の学習指示を受け付けた場合に実行するものとする。
ステップS10において、CPU21は不揮発性メモリ24に記憶されているペアデータの中から、何れか1つのペアデータを選択する。
ステップS20において、CPU21は、ステップS10で選択したペアデータから説明テキストを取得する。
ステップS30において、CPU21は、ステップS20で取得した説明テキストから特徴語を抽出する。説明テキストから特徴語を抽出する抽出モデル18には様々なモデルが存在する。
説明テキストからキャッチコピーを生成する別生成モデル19の学習の過程で生成された情報であって、説明テキストにおける特徴語を規定した特徴語情報が存在する場合、CPU21は、特徴語情報を参照して説明テキストから特徴語を抽出すればよい。
例えば別生成モデル19がアテンション機構を備えている場合、別生成モデル19に入力した説明テキストに含まれる単語毎に、単語がキャッチコピーの生成に与えた影響度が出力される。キャッチコピーの生成に与える影響度が高い単語ほど、物事の特徴を表している単語であり、重要な単語と考えられることから、CPU21は説明テキストに含まれる単語のうち、キャッチコピーの生成に与える影響度が高い単語から順に抽出した単語を特徴語とすればよい。すなわち、アテンション機構を備える別生成モデル19が出力する単語毎の影響度は特徴語情報の一例であり、説明テキストにおける単語の重要度を表している。
説明テキストから抽出する特徴語の数に制約はないが、CPU21は、例えば影響度が予め定めた基準影響度以上となる単語を特徴語として抽出すればよい。また、CPU21は、抽出する特徴語の数を予め指定した数に制限し、影響度が高い方の単語から順に、指定した数以下の単語を特徴語として抽出すればよい。基準影響度及び抽出する単語の数は、入力ユニット28を通じてユーザにより設定される。
別生成モデル19は出力装置10以外の装置である図示しない生成装置に構築しても、出力装置10に構築してもよい。
図4は、アテンション機構を備える別生成モデル19が出力する単語毎の影響度を利用して、説明テキストから特徴語を抽出する抽出モデル18を説明する説明図である。例えば説明テキストから得られた単語の影響度が図4に示すような値を示す場合において、影響度が基準影響度以上となる単語が「紅葉」及び「寺院」であったとすれば、CPU21は、説明テキストから「紅葉」及び「寺院」を特徴語として抽出する。
一方、別生成モデル19が、アテンション機構のようにキャッチコピーに対する単語の影響度を出力するような構成を有していない場合や、そもそも説明テキストからキャッチコピーを生成する別生成モデル19が存在しないような場合には、CPU21は、説明テキストの内容から、説明テキストに含まれる各単語の重要度を算出し、単語の重要度に応じて特徴語を抽出すればよい。
具体的には、説明テキストに現れる頻度が高い単語ほど重要な単語であり、多くの説明テキストに使用されている単語ほど汎用的な単語と考えられるため説明テキストの特徴を表す重要な単語ではないという考えに基づき、説明テキスト内の単語毎に重要度を算出するtf-idf(Term Frequency-Inverse Document Frequency)を用いて、CPU21は例えば予め定めた基準重要度以上となる単語を特徴語として抽出すればよい。また、CPU21は説明テキストにおける単語の係り具合から、説明テキストを、各単語をノードとするグラフ構造で表した上で、説明テキストから重要な単語を抽出するTextRank等の公知の手法を用いて、説明テキストから特徴語を抽出してもよい。
アテンション機構を備える別生成モデル19のようにペアデータを用いて説明テキストから特徴語を抽出するのではなく、説明テキストだけから特徴語を抽出する手法を、「教師なしの特徴語抽出手法」ということがある。tf-idf及びTextRankは教師なしの特徴語抽出手法の一例である。
図5は、教師なしの特徴語抽出手法を抽出モデル18に適用して、説明テキストから特徴語を抽出した例を示す図である。図5は、例示した説明テキストから重要度が基準重要度以上となる「紅葉」及び「寺院」が特徴語として抽出される様子を示している。
また、CPU21は、特徴語の候補として説明テキストから抽出した単語を生成モデル17に入力し、生成モデル17から出力されたキャッチコピーと、単語の抽出元となった説明テキストに予め関連付けられているキャッチコピーとの誤差を表す損失が小さくなるような単語の組み合わせの各々を特徴語としてもよい。生成モデル17における損失は、入力する単語に対して、単語の抽出元となった説明テキストに予め対応付けられているキャッチコピーを出力しようする生成モデル17の学習の過程で得られる値である。例えば双方向の文脈情報を捉えて、説明テキストに含まれる単語毎の重要度を出力するBi-LSTM-CRF(Bidirection Long-Short Term Memory-Conditional Random Field)に、生成モデル17で得られた損失をフィードバックして、単語毎の重要度を出力させるような抽出モデル18が考えられる。
また、説明テキストの特徴を中間表現に変換した後、中間表現に符号化された説明テキストとアテンションに基づいて説明テキストの特徴語を出力するようなリカレントニューラルネットワークを用いたエンコーダ・デコーダモデルに、生成モデル17で得られた損失をフィードバックして、単語毎の重要度を出力させるような抽出モデル18が考えられる。
こうした特徴語の抽出を行った場合、説明テキストからの特徴語の抽出と、生成モデル17の学習が同時に行われることになり、特徴語の抽出と生成モデル17の学習を分離して行うよりも学習処理の効率が向上することになる。
なお、抽出モデル18にBi-LSTM-CRFを用いた場合には、説明テキストに含まれる単語毎に重要度が出力されるため、特徴語が説明テキストに含まれる単語の中から抽出される。一方、抽出モデル18にデコーダが含まれている場合には、デコーダ自体が辞書を備え、辞書の中から中間表現に符号化された説明テキスト及びアテンションに対応した適切な単語を出力するため、説明テキストに含まれない単語も特徴語として抽出されることがある。すなわち、説明テキストに含まれる単語、及び説明テキストに含まれない単語の組み合わせが特徴語として抽出されることがある。
また、ユーザがキャッチコピーを生成したいと考えている物事に関して、例えばインターネット上のブログやソーシャルネットワーキングサービス(Social Networking Service:SNS)等に説明テキスト(以降、「外部の説明テキスト」という)が存在する場合がある。したがって、CPU21は、ステップS20で取得した説明テキストで説明されている物事と同じ物事を説明している外部の説明テキストや、ステップS20で取得した説明テキストと内容が類似する外部の説明テキストを通信ユニット27経由で取得し、教師なしの特徴語抽出手法を用いて外部の説明テキストから特徴語を抽出するようにしてもよい。CPU21は、例えばユーザがURL(Uniform Resource Locator)で指示した外部の説明テキストを、ステップS20で取得した説明テキストと内容が類似する外部の説明テキストとすればよいが、文章の類似度を評価する公知の評価手法を用いてユーザが指示しなくても自律的に外部の説明テキストを検索して特徴語を抽出するようにしてもよい。
特にSNSに投稿された外部の説明テキストには説明テキストの検索性を高めるため、例えば単語の先頭にハッシュタグ“#”のような記号が付与された記号付き単語が用いられることがある。記号付き単語は、外部の説明テキストを生成したユーザが重要と考えている単語であることが多い。したがって、CPU21は、記号付き単語の中から特徴語を抽出するようにすれば、外部の説明テキストに含まれる単語全体を特徴語の候補とする場合と比較して、効率よく特徴語の抽出が完了することになる。
CPU21は、ステップS20で取得した説明テキストだけから特徴語を抽出する形態だけでなく、外部の説明テキストから抽出した特徴語だけを特徴語としてもよい。また、CPU21は、ステップS20で取得した説明テキストから抽出した特徴語に外部の説明テキストから抽出した特徴語の少なくとも1つを加えるようにしてもよい。
図3のステップS40において、CPU21は、ステップS30で抽出した特徴語と、特徴語の抽出元となった説明テキストに予め関連付けられているキャッチコピーとを関連付け、生成モデル17の学習データを生成する。この場合、CPU21は、生成した学習データと、学習データに含まれる特徴語の抽出元となった説明テキストを含むペアデータとを対応付けて、例えば不揮発性メモリ24に記憶する。
なお、CPU21は、説明テキストから抽出する特徴語の数を変えた特徴語の集合を複数生成し、各々の特徴語の集合に対して、特徴語の抽出元となった説明テキストに予め関連付けられているキャッチコピーを関連付けて生成モデル17の学習データを生成してもよい。このようにすることで、1つのペアデータから様々な特徴語の組み合わせを反映した複数の学習データが得られることになる。
また、CPU21は、説明テキストから抽出した特徴語をそのまま学習データに使用するのではなく、抽出した特徴語の中から、学習データに用いる特徴語を更に選択してもよい。特徴語の選択の方法に制約はなく、例えば無作為に選択してもよい。この場合も特徴語の選択方法により、1つのペアデータから、様々な特徴語の組み合わせを反映した複数の学習データが得られることになる。
ステップS50において、CPU21は、不揮発性メモリ24に記憶されているペアデータの中に、まだステップS10で選択していない未選択のペアデータが存在するか否かを判定する。未選択のペアデータが存在する場合にはステップS10に移行して、CPU21は、ステップS10で未選択のペアデータの中から何れか1つのペアデータを選択する。ステップS50の判定処理で未選択のペアデータが存在しないと判定されるまで、ステップS10〜ステップS50の処理を繰り返し実行することで、各々のペアデータに対して、特徴語とキャッチコピーとが関連付けられた学習データが生成されることになる。
一方、ステップS50の判定処理で未選択のペアデータが存在しないと判定された場合には、ステップS60に移行する。
ステップS60において、CPU21は、生成された各々の学習データを用いて、入力された特徴語に対して、特徴語と関連付けられたキャッチコピーが出力されるように生成モデル17を学習する。これにより、ユーザがキャッチコピーを生成したいと考えている物事の特徴を表していると思われるユーザ単語を入力すれば、入力されたユーザ単語からキャッチコピーを生成する生成モデル17が得られることになる。
なお、生成モデル17の学習に関しては様々な手法が適用される。例えば生成モデル17がデコーダを含む場合、各々の特徴語における分散表現の平均を生成モデル17に入力することで、生成モデル17の学習を行えばよい。
ここで、特徴語を含む単語の分散表現とは、単語を予め定めた次元の実数値ベクトルとして表したものであり、特徴語を予め定めた次元に圧縮して表現する中間表現の一例である。単語の分散表現は、例えば生成モデル17に含まれる埋め込み層(embedding層)の出力として得られる。生成モデル17に学習させる学習データが多いほど、生成モデル17の学習過程の中で様々な単語の分散表現が得られることになるため、CPU21は特徴語の分散表現として、生成モデル17のある時点における学習済みの分散表現を用いればよい。また、単語の分散表現は生成モデル17の学習毎に更新されるため、CPU21は最新の分散表現を用いてもよい。更に、CPU21は、学習済みの生成モデル17に新たな学習データを追加して学習し直す毎に、各々の単語の分散表現における初期値を無作為に設定し、最初から学習し直した分散表現を用いてもよい。
図6は、デコーダを含む生成モデル17に、「紅葉」及び「寺院」という2つの特徴語を入力する際の状況を示した図である。「紅葉」及び「寺院」は分散表現の平均として生成モデル17に入力され、入力された特徴語と関連付けられたキャッチコピー(図6の例では、「タイムスリップしたかのよう!歴史感じるA寺で紅葉を楽しもう!」がキャッチコピーである)を出力するように生成モデル17の学習が行われる。
この際、CPU21は、各々の特徴語の分散表現に重み付けを行った上で、重み付けが行われた各々の特徴語における分散表現の平均を生成モデル17に入力し、生成モデル17の学習を行うようにしてもよい。特徴語の分散表現に重み付けを行うことで、キャッチコピーと特徴語との関連度合いが調整される。したがって、例えば特定の特徴語が含まれると、他にどのような特徴語が入力されようとも同じような文脈のキャッチコピーが生成されるような、特定の特徴語に過度に反応するように学習された生成モデル17の構築が抑制される。
図7は、デコーダを含む生成モデル17に、それぞれ重み付けを行った「紅葉」及び「寺院」という2つの特徴語を入力する際の状況を示した図である。重みW1が「紅葉」の重みであり、重みW2が「寺院」の重みである。それぞれ重みW1及び重みW2で重み付けされた「紅葉」及び「寺院」は分散表現の平均として生成モデル17に入力され、入力された特徴語と関連付けられたキャッチコピーを出力するように生成モデル17の学習が行われる。
CPU21は、例えば特徴語の抽出元となった説明テキストにtf-idfを適用して得られた特徴語の重要度や、アテンション機構を備える別生成モデル19が出力した特徴語の影響度を特徴語の重みとして用いる。
生成モデル17に入力する特徴語の入力順に制約はないが、特徴語の入力順に関して何らかの規則を持たせた方が、生成モデル17の学習に要する時間が短縮したり、ユーザの希望に沿ったキャッチコピーが生成されやすくなったりして、生成モデル17の学習効果が向上することがある。したがって、CPU21は、特徴語の重要度、または生成モデル17で生成されるキャッチコピーに与える特徴語の影響度に応じて、生成モデル17に入力する特徴語の入力順を決定してもよい。具体的には、CPU21は、重要度の高い特徴語、または生成モデル17で生成されるキャッチコピーに与える影響度の大きい特徴語から順に選択して生成モデル17に入力する。
なお、生成モデル17に入力される特徴語の数が変われば、特徴語毎の重要度も変化することがある。一方、特徴語を分散表現で生成モデル17に入力した場合、各々の特徴語の分散表現が平均化されて生成モデル17に入力されるため、生成モデル17に入力された特徴語の数は不明となる。
したがって、CPU21は、特徴語と一緒に、生成モデル17に入力する特徴語の数も生成モデル17に入力して生成モデル17の学習を行ってもよい。CPU21は、入力された特徴語の数も生成モデル17が生成するキャッチコピーの内容に影響を与える学習パラメータとして利用することができるため、入力された特徴語の数を生成モデル17に入力せずに学習を行った場合の生成モデル17と比較して、学習後の生成モデル17の構造が変化し、ユーザ単語からユーザの希望に沿ったキャッチコピーを生成しやすい構造を有する生成モデル17が得られることがある。
また、CPU21は、学習データを用いて生成モデル17の学習を行う場合、上述したように、同じペアデータから様々な特徴語の組み合わせを反映した複数の学習データを用いて生成モデル17の学習を行うことが好ましい。この場合においても、特徴語とキャッチコピーとの関連付けが固定化されないようになるため、ペアデータと1対1に対応する学習データだけから学習を行った場合の生成モデル17と比較して、学習後の生成モデル17の構造が変化し、ユーザ単語からユーザの希望に沿ったキャッチコピーを生成しやすい構造を有する生成モデル17が得られることがある。
また、CPU21は、例えば単語の重要度やキャッチコピーに与える影響度を考慮して説明テキストから抽出した特徴語の中に、説明テキストから無作為に抽出した予め定めた数の単語を加えて生成した学習データを用いて、生成モデル17の学習を行うようにしてもよい。説明テキストから無作為に抽出した単語が必ずしも説明テキストの特徴を表している単語であるという保証はないが、無作為に抽出した単語を含む学習データを用いて生成モデル17の学習を行った場合、特徴語の組み合わせが変化するため、生成モデル17が特定の特徴語に過度に反応するように学習されにくくなる。したがって、後述するように、どのようなユーザ単語の組み合わせを生成モデル17に入力しても、入力された特定のユーザ単語に過度に反応して、生成されるキャッチコピーの内容が変化しなくなるような生成モデル17が構築されにくくなる。
上記では、特徴語の分散表現の平均を生成モデル17に入力して生成モデル17の学習を行う例について説明したが、例えばLSTM(Long short-time memory)やGRU(Gated Recurrent Unit)を用いて構成した、分散表現を処理する機構であるエンコーダの出力を生成モデル17に入力して、生成モデル17の学習を行うようにしてもよい。
このようにして学習を行った生成モデル17に対して、ユーザがキャッチコピーを生成したいと考えている物事の特徴を表す単語、すなわち、ユーザ単語を入力することで、ユーザ単語から連想されるキャッチコピーが生成されることになる。
図8は、図3に示す学習処理により学習が行われた生成モデル17に対して、ユーザがユーザ単語を入力した場合に、出力装置10のCPU21によって実行される出力処理の流れの一例を示すフローチャートである。出力処理を規定する出力プログラムは、例えば出力装置10のROM22に予め記憶されている。出力装置10のCPU21は、ROM22に記憶される出力プログラムを読み込み、出力処理を実行する。
ステップS100において、CPU21は、入力ユニット28から受け付けたユーザ単語を、学習済みの生成モデル17に入力する。これにより、生成モデル17に入力されたユーザ単語に対応したキャッチコピーが生成されることになる。
この場合、CPU21は、受け付けたユーザ単語を生成モデル17に入力する前に、ユーザから受け付けたユーザ単語と異なる単語であって、ユーザ単語と関連する単語である関連単語を出力するようにしてもよい。関連単語は、本実施の形態に係る関連語の一例である。
具体的には、CPU21は、図3に示した学習処理のステップS40で生成した学習データに含まれる特徴語から、例えば無作為に選択した少なくとも1つの特徴語を取り除いて、残りの特徴語と取り除いた特徴語を関連付けた学習データを生成する。そして、当該学習データを用いて、残りの特徴語から取り除いた特徴語を推定するような推定モデル(「特徴語推定モデル」という)の学習を行う。その上でCPU21は、学習が行われた特徴語推定モデルにユーザ単語を入力し、特徴語推定モデルから出力される単語をユーザ単語と関連する関連単語として取得する。CPU21は出力ユニット29を制御して出力された関連単語を例えば液晶ディスプレイに表示する。ユーザは自分では気づかなかった物事の特徴を表す関連単語が出力装置10から提示されるため、提示された関連情報をユーザ単語に含めて、再度出力装置10に入力すればよい。また、CPU21は、ユーザの指示がなくとも、受け付けたユーザ単語に関連単語を組み合わせて生成モデル17に入力してキャッチコピーを生成してもよい。これにより、当初入力したユーザ単語から生成されるキャッチコピーよりも、ユーザの希望に沿ったキャッチコピーが生成されるようになることがある。なお、CPU21は、ユーザの指示なしに関連単語をユーザ単語に付け加えてキャッチコピーを生成した場合には、キャッチコピーと共に付け加えた関連単語を出力するようにする。関連単語が複数存在する場合には、CPU21は、例えば関連単語のすべての組み合わせ毎にユーザ単語と組み合わせ、各々の組み合わせ毎に生成モデル17で生成したキャッチコピーを出力してもよい。
また、CPU21は、例えば入力されたユーザ単語が含まれるような説明テキストを参照し、説明テキストで共に用いられているユーザ単語以外の単語、すなわち、共起単語を関連単語として出力するようにしてもよい。
具体的には、CPU21は、ペアデータとして不揮発性メモリ24に記憶されている説明テキスト毎に、説明テキストで用いられている単語毎の出現数を集計した集計情報を予め作成して不揮発性メモリ24に記憶しておき、ユーザ単語を受け付けた場合に集計情報を参照して、例えばユーザ単語が含まれる説明テキストで出現数が最も多い共起単語、または、出現数が多い方から予め定めた数の共起単語を関連単語として出力する。
CPU21は、共起単語を関連単語として出力する場合、共起単語の出現数ではなく、ユーザ単語の分散表現との距離に着目して関連単語として出力する共起単語を選択してもよい。例えば、CPU21は、共起単語の分散表現とユーザ単語の分散表現を比較し、ユーザ単語の分散表現との距離が遠い方から予め定めた数の共起単語を関連単語として選択する。分散表現の距離は、例えばコサイン距離等によって表される。
このように分散表現の距離がユーザ単語から遠い共起単語を関連単語とすることで、類似する単語ばかりがユーザ単語として選ばれることを抑制する。例えばユーザ単語が「安い」であった場合に、「安い」と類似した「低価格」という関連単語をユーザ単語に加えたとしても、ユーザ単語に関連単語を加える前と後でそれぞれ生成されるキャッチコピーは同じような内容となる。しかし、「安い」に対して「笑顔」という別の観点の関連単語が加えられることで、ユーザ単語に関連単語を加える前と後でそれぞれ生成されるキャッチコピーが変化する傾向を示すことになり、生成モデル17で生成されるキャッチコピーの表現に幅が出る。
また、CPU21は、ユーザ単語に対して関連単語が複数得られた場合、すべての関連単語をユーザ単語と共に生成モデル17に入力して1つのキャッチコピーを生成してもよいが、例えばユーザ単語に組み合わせる関連単語を変えて、複数のキャッチコピーを生成してもよい。このように、複数のキャッチコピーを生成する場合、生成されるすべてのキャッチコピーが、例えば価格の安さを強調するといった物事の特定の特徴を表すよりも、価格の安さを強調するキャッチコピーも品質の良さを強調するキャッチコピーも生成されるというように、物事を異なる観点で表したキャッチコピーが生成された方が、ユーザによるキャッチコピーの選択の幅が広がり、ユーザの希望に沿ったキャッチコピーが得られやすくなる。
したがって、例えばCPU21は、ユーザ単語に組み合わせる関連単語を変えながら、生成モデル17で各々の組み合わせに対するキャッチコピーの候補を一旦生成する。その上で、CPU21は、生成したキャッチコピーの候補同士のすべての組み合わせについて類似度を算出し、類似度が最も低くなるキャッチコピーの組み合わせから順に予め定めた数の組み合わせを選択して、最終的なキャッチコピーとして出力してもよい。
また、CPU21は、例えばキャッチコピーのようなテキストの要約を評価する場合に使用されるROUGEスコアをキャッチコピーの候補毎に推定し、ROUGEスコアの高いから予め定めた数のキャッチコピーの候補を最終的なキャッチコピーとして出力してもよい。ROUGEスコアは、既存のキャッチコピーと、生成モデル17が生成したキャッチコピーとの類似度を測る公知の指標である。ROUGEスコアが大きいほど、生成モデル17で生成されたキャッチコピーは既存のキャッチコピーの何れかに類似していることを表していることから、文の構造がキャッチコピーらしい表現になっていることを表しており、換言すれば、キャッチコピーの完成度が高いことを表している。
すなわち、キャッチコピーの完成度とは、生成モデル17で生成されたキャッチコピーの表現が、例えば新聞やウェブページ等に公開されている既存のキャッチコピーに用いられている表現にどの程度類似しているかによって表される。例えばキャッチコピーには「紅葉が美しいです。」というように主語及び述語を明確に表した説明テキストのような表現よりも、「忘れられない紅葉。」というように体言止め等の手法を用いたり、辞書に載っていないような一般的には使用されていない造語を用いたりといった、人の記憶に残りやすい表現が用いられる傾向がある。ROUGEスコアはこうしたキャッチコピーの完成度を評価する指標値の一例である。
CPU21は、既存のキャッチコピーと、当該キャッチコピーのROUGEスコアとの対応付けを学習データとして機械学習した完成度推定モデルに、ユーザ単語を用いて生成モデル17で生成したキャッチコピーを入力して、ユーザ単語から生成されたキャッチコピーの完成度を取得する。
取得したキャッチコピーの完成度が予め定めた値以下の場合には、生成モデル17で生成されたキャッチコピーには、キャッチコピーらしくない表現が含まれることになる。例えば生成モデル17に入力されるユーザ単語の数が少ない場合に、生成モデル17でキャッチコピーらしくない表現を含むキャッチコピーが生成される傾向がある。したがって、CPU21は、生成モデル17で生成したキャッチコピーの完成度が予め定めた値以下である場合には、入力したユーザ単語の数が不足していることをユーザに通知してもよい。
また、例えばCPU21は、ユーザ単語に組み合わせる関連単語を変えながら、生成モデル17で各々の組み合わせに対するキャッチコピーの候補を一旦生成する。その上で、CPU21は、ユーザ単語が含まれる説明テキストで用いられている単語毎の出現数を集計した集計情報を参照し、関連単語の中でも出現数が最も多い関連単語とユーザ単語の組み合わせに対して生成されたキャッチコピーの候補である代表キャッチコピーを特定する。CPU21は、代表キャッチコピー以外のキャッチコピーの各候補と代表キャッチコピーとの類似度を算出し、代表キャッチコピーとの類似度が最も低くなるキャッチコピーの候補から順に予め定めた数のキャッチコピーの候補を選択して、代表キャッチコピーと共に最終的なキャッチコピーとして出力してもよい。代表キャッチコピーは、本実施の形態に係る基準連想テキストの一例である。
すなわち、CPU21は複数の関連単語のうち、ユーザ単語に加えることで、生成モデル17で生成されるお互いのキャッチコピーの類似度ができるだけ低くなるような関連単語を選択する。こうした関連単語の選択は、例えば生成モデル17に入力する単語の数に制限が設けられているような場合にも有効である。
なお、ユーザ単語に付け加えることで類似度が予め定めた類似度より低くなるようなキャッチコピーが得られる関連単語は、受け付けたユーザ単語に対する多くの関連単語の中でもキャッチコピーの表現に変化を与えやすい関連単語であると言える。したがって、CPU21は、受け付けたユーザ単語に対して、当該関連単語が出力されるように特徴語推定モデルを学習すれば、表現が似通っていない多様なキャッチコピーを生成するための関連単語が特徴語推定モデルから得られることになる。
CPU21は、ユーザ単語だけから生成されたキャッチコピーと、関連単語のすべての組み合わせ毎に関連単語の組み合わせをユーザ単語に付け加えて生成された各々のキャッチコピーとの類似度を算出し、類似度が最も低いキャッチコピーの生成に用いられた関連単語を特定する。その上で、CPU21は、受け付けたユーザ単語に対して特定した関連単語が出力されるように特徴語推定モデルを学習するようにしてもよい。
なお、キャッチコピーの類似度は、テキストの類似度を算出する既存の手法が適用される。例えばCPU21はキャッチコピーを分散表現で表し、分散表現のコサイン距離を測定することでキャッチコピーの類似度を算出する。
更に、CPU21は、例えば単語毎に上位概念にあたる単語、及び下位概念にあたる単語を規定した類似語辞書を参照して、ユーザ単語の上位概念にあたる単語、及びユーザ単語の下位概念にあたる単語の少なくとも一方を関連単語として出力してもよい。CPU21は、例えばWordNetのようにインターネット上で提供される類似語辞書を用いても、不揮発性メモリ24に記憶される独自の類似語辞書を用いてもよい。
ステップS110において、CPU21は生成モデル17で生成したキャッチコピーの中から、ユーザまたはCPU21が選択した少なくとも1つのキャッチコピーを取得する。
ステップS120において、CPU21は出力ユニット29を制御して、ステップS110で取得したキャッチコピーを出力して、図8に示す出力処理を終了する。
出力装置10が生成モデル17の他、例えば説明テキストから抽出した特徴語と当該特徴語の抽出元となった説明テキストとを関連付けた学習データを用いて、特徴語から説明テキストの内容を推定する推定モデル(「説明テキスト推定モデル」という)を備えている場合、CPU21は出力ユニット29を制御して、説明テキスト推定モデルにユーザ単語を入力することで得られる説明テキストをキャッチコピーと共に出力してもよい。
出力された説明テキストの内容がキャッチコピーの生成対象となる物事を正しく表していれば、そうした説明テキストと共に出力されているキャッチコピーは信頼できるキャッチコピーということになる。したがって、複数のキャッチコピーが出力されている場合、説明テキスト推定モデルで推定した説明テキストはキャッチコピーを選択する上で有益な情報となる。
一方、入力したユーザ単語に対して出力装置10が説明テキスト推定モデルを用いて推定した説明テキストの内容が、キャッチコピーの生成対象となる物事を正しく表していない場合には、別のユーザ単語を用いてキャッチコピーを生成した方が、ユーザの希望に沿ったキャッチコピーが生成される確率が高くなる。したがって、CPU21は、ユーザから推定した説明テキストの内容に問題があるとの指示を受け付けた場合、ユーザ単語を修正するようにユーザに促す通知を出力してもよい。
このように、ユーザはキャッチコピーの生成対象となる物事に対して様々なユーザ単語を思いついた場合、思いつくユーザ単語を出力装置10に順次入力して、どのユーザ単語に対してどのようなキャッチコピーが出力されるかを確認したいことがある。一方、出力されたキャッチコピーの良し悪し(以降、「キャッチコピーの印象度」という)を判断することはユーザにとって難しい判断であり、特にユーザの希望に沿ったキャッチコピーが複数あるような場合では、キャッチコピーの印象度を表す客観的な指標があった方がユーザはキャッチコピーの選択が行いやすくなる。
したがって、CPU21は生成モデル17で受け付けたユーザ単語に対応するキャッチコピーを生成する前に、受け付けたユーザ単語毎に説明テキスト推定モデルで推定した説明テキストの内容を出力する。これに対して、ユーザは、出力された説明テキストの内容からキャッチコピーの生成対象となる物事を最も正しく表している説明テキストを選択する。CPU21は、選択された説明テキストの推定に用いたユーザ単語を生成モデル17に入力し、キャッチコピーを生成する。生成されたキャッチコピーは、キャッチコピーの生成対象となる物事を最も正しく表している説明テキストの生成に用いられたユーザ単語から生成されたものであるため、ユーザの希望に沿ったキャッチコピーが得られることになる。
ユーザ単語の入力に伴い、出力装置10がユーザに対して出力する情報には様々な情報が含まれる。以下では、出力装置10が出力する情報について説明する。上述したように、出力装置10における情報の出力形態に制約はないが、ここでは一例として、例えば液晶ディスプレイに表示される画面を通じて情報を視覚的に出力する例について説明する。
出力装置10に入力されるユーザ単語の数が多くなれば、ユーザ単語から連想されるキャッチコピーの内容も具体化され、ユーザの希望に沿ったキャッチコピーが生成される傾向がある。しかしながら、生成モデル17に類似したユーザ単語が入力された場合、キャッチコピーの生成過程に与える影響の観点及び度合いが同じ傾向を示すことから、生成されるキャッチコピーの表現が類似する。すなわち、出力装置10に入力するユーザ単語の数を増やしたとしても、入力されたユーザ単語に表現が類似するユーザ単語が複数存在した場合、生成されるキャッチコピーが、入力したユーザ単語の数より少ない数のユーザ単語によって生成されるキャッチコピーと類似することがある。
したがって、CPU21は、既に入力したユーザ単語との類似度が基準類似度以上となるようなユーザ単語を受け付けた場合に、警告を出力してもよい。具体的には、CPU21は、互いの分散表現の距離が基準距離以下となるようなユーザ単語を受け付けた場合に、何れか一方のユーザ単語に対して警告を出力する。
図9は、ユーザ単語の入力画面30の一例を示す図である。図9に示す例では、ユーザが「寺院」、「紅葉」、及び「お寺」という3つのユーザ単語を入力画面30に入力している。「寺院」と「お寺」の分散表現の距離が基準距離以下となるような類似する表現である場合、CPU21は、例えば「お寺」が入力されると「警告:寺院と類似した単語です。」というような警告を出力して、「お寺」は不要なユーザ単語であることをユーザに通知する。当然のことながら、「お寺」ではなく先に入力した「寺院」に対して警告を出力してもよい。
また、図10もユーザ単語の入力画面30の一例を示す図である。図10に示す例では、ユーザが「寺院」、「紅葉」、及び「古い」という3つのユーザ単語を入力画面30に入力している。CPU21は、「寺院」と「紅葉」の組み合わせによって生成モデル17で生成されるキャッチコピーと、「寺院」と「紅葉」と「古い」の組み合わせによって生成モデル17で生成されるキャッチコピーの類似度が基準類似度以上であるか否かを判定する。キャッチコピーの類似度が基準類似度以上である場合、CPU21は例えば「警告:生成されるキャッチコピーに目立った変化がみられません」というような警告文を出力して、ユーザ単語として「古い」を入力してもしなくても、生成されるキャッチコピーに目立った変化がないことをユーザに通知する。
上記では、入力されるユーザ単語の類似度、及び生成されるキャッチコピーの類似度に着目して警告を出力する出力装置10の例について説明したが、ユーザ単語の中には、例えば説明テキストから特徴語として抽出されなかった単語(「非抽出単語」という)のように、特徴語に比べてキャッチコピーとの関連性が低い単語が存在する。具体的に言えば、名詞、形容詞、副詞、及び動詞といった品詞の単語は物事の特徴を表すことが多いが、接続詞、助詞、及び助動詞といった品詞の単語はそれだけでは物事の特徴を表すことがなく、特徴語として抽出されることは少ない。
したがって、CPU21は、図3のステップS30で説明テキストから特徴語を抽出する場合、特徴語として抽出しなかった非抽出単語を記憶しておき、受け付けたユーザ単語に非抽出単語が含まれる場合、警告を出力するようにしてもよい。
図11は、ユーザ単語の入力画面30の一例を示す図である。図11に示す例では、ユーザが「楓」、「黄色」、及び「が」という3つのユーザ単語を入力画面30に入力している。このうち、CPU21が非抽出単語であると判定した「が」のユーザ単語に対して、例えば「警告:本当に必要ですか?」というような警告を出力して、「が」はキャッチコピーの生成に有益なユーザ単語であるかユーザに再考を促している。
上記では、ユーザ単語が非抽出単語であるか否かの判定結果に従って警告を出力する例を示したが、既に説明したように接続詞、助詞、及び助動詞といった品詞の単語は特徴語として抽出されることが少ない。したがって、非抽出単語とする品詞を予め設定しておき、CPU21は、受け付けたユーザ単語の品詞からユーザ単語が非抽出単語であるか否かを判定してもよい。この場合、非抽出単語を収集して予め記憶しておかなくとも、ユーザ単語が非抽出単語か判定することができる。なお、ユーザ単語の品詞の解析には公知の解析手法が用いられる。
CPU21は、非抽出単語に対して警告を出力するだけでなく、例えば非抽出単語をユーザ単語から削除し、残りのユーザ単語のみを生成モデル17に入力して生成したキャッチコピーを出力してもよい。
また、受け付けたユーザ単語に生成モデル17の学習に用いられたことのない未学習単語が含まれる場合、未学習単語が生成モデル17でのキャッチコピーの生成に与える影響度は不明であることから、ユーザの希望に沿ったキャッチコピーが生成されないことがある。したがって、こうした場合、CPU21は、受け付けたユーザ単語に未学習単語が含まれていることをユーザに通知する。CPU21は、例えば生成モデル17の学習に用いた学習データの特徴語を不揮発性メモリ24やインターネットに接続された外部の記憶装置に記憶しておくことで、受け付けたユーザ単語が未学習単語であるか否かを判定する。
CPU21は、受け付けたユーザ単語に未学習単語が含まれていることをユーザに通知した上で、未学習単語をユーザ単語から削除し、残りのユーザ単語のみを生成モデル17に入力して生成したキャッチコピーを出力してもよい。
また、CPU21は、受け付けたユーザ単語に未学習単語が含まれている場合、未学習単語を生成モデル17の学習に用いられたことのある単語で、かつ、未学習単語との類似度が予め定めた値以上の単語に置き換えた上で生成モデル17に入力し、置き換えた単語を含むユーザ単語に対応したキャッチコピーを出力してもよい。
このように、CPU21は、受け付けたユーザ単語がキャッチコピーの生成に一定程度以上の影響度を与える有益なユーザ単語であるか否かをユーザにキャッチコピーを出力する前に表示し、ユーザが出力装置10に適切なユーザ単語を入力できるように支援する。
更に、CPU21は、生成モデル17を用いてユーザ単語から生成したキャッチコピーを出力画面32に複数出力する場合、キャッチコピーの注目度も一緒に出力してもよい。キャッチコピーの注目度とは、キャッチコピーが人目に触れる度合い、または人目に触れる長さの少なくとも一方を表す。出力装置10で生成したキャッチコピーを例えばブログ等のウェブページに掲載する場合、キャッチコピーの注目度は、キャッチコピーを掲載したウェブページの閲覧数によって表される。
出力装置10が出力したキャッチコピーは、まだウェブページに掲載する前のキャッチコピーであることから、当該キャッチコピーがウェブページに記載された場合の閲覧数は不明である。しかし、出力装置10は、既にウェブページに掲載されている既存のキャッチコピーと当該既存のキャッチコピーが掲載されたウェブページの閲覧数との対応付けを学習した閲覧数の推定モデル(「閲覧数推定モデル」という)を予め備え、閲覧数推定モデルに生成モデル17で生成したキャッチコピーを入力することで、生成モデル17で生成したキャッチコピーをウェブページに掲載した場合の閲覧数が得られる。CPU21は、閲覧数推定モデルで推定した閲覧数を生成モデル17で生成したキャッチコピーの注目度として出力すればよい。
図12は、キャッチコピーと共にキャッチコピーの注目度を出力した出力画面32の一例を示す図である。図12の例では、キャッチコピーの候補1に対して予想閲覧数が30,000件という推定値が示され、キャッチコピーの候補2に対して予想閲覧数が20,000件という推定値が示されている。
キャッチコピーに注目度が付加されることから、出力装置10が複数のキャッチコピーを出力して、何れのキャッチコピーを採用するかユーザが選択に迷った場合であっても、ユーザは予想閲覧数を参考にすればキャッチコピーの選択が行いやすくなる。
なお、ユーザによるキャッチコピーの選択性を高めるため、CPU21は複数のキャッチコピーにそれぞれ予想閲覧数を付与する場合、予想閲覧数でキャッチコピーの出力順を並び替えてもよい。例えばCPU21は、予想閲覧数の大きいキャッチコピーほど出力画面32の上に表示されるようにキャッチコピーの表示位置を制御する。
ここでは一例として、ウェブページの閲覧数を用いてキャッチコピーの注目度を表したが、例えばキャッチコピーと商品の売上高の関係、キャッチコピーとイベントの参加人数の関係、またはキャッチコピーと当該キャッチコピーが付された商品やイベントに関するSNSへの投稿数の関係を学習した推定モデルを用いて、生成モデル17で生成したキャッチコピーの注目度を推定してもよい。
キャッチコピーの注目度を推定する推定モデルは出力装置10に構築してもよいが、CPU21は通信ユニット27を経由して、例えばインターネットに接続される外部装置に構築された推定モデルに生成モデル17が生成したキャッチコピーを入力することで得られた出力をキャッチコピーの注目度として出力ユニット29から出力してもよい。
更に、CPU21は、上述した完成度推定モデルで推定したキャッチコピーの完成度を、生成モデル17で生成したキャッチコピーと共に出力画面32に出力してもよい。
上述したように、生成したキャッチコピーのROUGEスコアが大きいほど、キャッチコピーの完成度が高いことを説明したが、このことを別の観点から見れば、生成したキャッチコピーに類似する既存のキャッチコピーが存在することを示していることになる。キャッチコピーが類似し過ぎると著作権侵害になる恐れがあることから、CPU21は生成モデル17で生成したキャッチコピーのROUGEスコアが予め定めた上限値を超えた場合、生成したキャッチコピーを修正するようにユーザに促す警告を出力することが好ましい。
図13は、ユーザにキャッチコピーの修正を促す出力画面32の一例を示す図である。図13の例では、生成モデル17が生成した「見事な紅葉を歴史ある建物と共に楽しもう!」という候補2のキャッチコピーが、Z社が2018年に作成したポスターに掲載された「見事な紅葉を建物と共に楽しもう!」というキャッチコピーに類似していることを注意喚起している。このように、出力装置10は、類似しているキャッチコピーの内容だけでなく、その出典情報も含めて出力画面32に出力してもよい。出典情報も含めて類似しているキャッチコピーを出力するためには、CPU21は、生成モデル17の学習に用いたキャッチコピーや、各種ウェブページから収集したキャッチコピーの出典情報も一緒にキャッチコピーと関連付けて記憶しておけばよい。
ここまでユーザ単語からキャッチコピーを生成する出力装置10について説明してきたが、出力装置10が出力する連想テキストはキャッチコピーに限られず、ユーザ単語から連想される文であればどのような文であってもよい。
例えばクイズにおける問題と解答のように、受け付けたユーザ単語が表す物事そのものを連想して出力するようにしてもよい。具体的にはユーザが「アメリカ」、「6代」、「大統領」をユーザ単語として出力装置10に入力すると、「ジョン・クィンシー・アダムス」という解答を連想テキストとして出力するように、特徴語と特徴語が表す物事そのものを生成モデル17で学習させてもよい。こうした生成モデル17の学習により、出力装置10はユーザが指示した内容を把握できるようになるため、例えばユーザが声で発した単語から、インターネットを用いた情報の検索やエアコンの電源のオン及びオフといった特定の処理を実行する出力装置10を構築することができる。
また、本実施の形態に係る出力装置10は、単語を入力すれば、単語から連想される文を生成し、報告書やメールといった文章を自動で生成するような装置としても利用可能である。具体的には、出力装置10は説明テキストから抽出した特徴語と当該特徴語の抽出元となった説明テキストとを関連付けを学習した説明テキスト推定モデルを備えておき、ユーザが出力装置10に「9時」、「不具合」、「連絡」等を含むユーザ単語を入力した場合、出力装置10は受け付けたユーザ単語を説明テキスト推定モデルに入力して、例えば「表題の件につき、下記の通り報告いたします。9時にお客様から不具合の連絡があり、・・・」というような報告書を生成することも可能である。
以上、実施の形態を用いて本発明について説明したが、本発明は実施の形態に記載の範囲には限定されない。本発明の要旨を逸脱しない範囲で実施の形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
本実施の形態では、一例として学習処理及び出力処理をソフトウェアで実現する形態について説明したが、図3及び図8に示した各フローチャートと同等の処理を、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはPLD(Programmable Logic Device)に実装し、ハードウェアで処理させるようにしてもよい。この場合、各々の処理をソフトウェアで実現した場合と比較して、処理の高速化が図られる。
このように、CPU21を例えばASIC、FPGA、PLD、GPU(Graphics Processing Unit)、及びFPU(Floating Point Unit)といった特定の処理に特化した専用のプロセッサに置き換えてもよい。
実施形態におけるCPU21の動作は、1つのCPU21によって実現される形態の他、複数のCPU21によって実現されてもよい。更に、実施形態におけるCPU21の動作は、物理的に離れた位置に存在するコンピュータ20におけるCPU21の協働によって実現されるものであってもよい。
また、上述した実施の形態では、出力プログラムがROM22にインストールされている形態について説明したが、これに限定されるものではない。本発明に係る出力プログラムは、コンピュータで読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、出力プログラムを、CD(Compact Disc)−ROM、またはDVD(Digital Versatile Disc)−ROM等の光ディスクに記録した形態で提供してもよい。また、本発明に係る各々のプログラムをUSB(Universal Serial Bus)メモリやメモリカード等の可搬型の半導体メモリに記録した形態で提供してもよい。
更に、出力装置10はインターネットに接続される外部装置から通信ユニット27を経由して本発明に係る出力プログラムを取得するようにしてもよい。