(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】情報処理装置、情報処理方法、及び、情報処理プログラム
(51)【国際特許分類】
G06F 16/335 20190101AFI20231003BHJP
G06F 40/44 20200101ALI20231003BHJP
G09B 5/02 20060101ALI20231003BHJP
G09B 19/06 20060101ALI20231003BHJP
【FI】
G06F16/335
G06F40/44
G09B5/02
G09B19/06
(21)【出願番号】P 2021146184
(22)【出願日】2021-09-08
【審査請求日】2022-09-16
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】村山 洋一
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開2005-293115(JP,A)
【文献】特開2016-045299(JP,A)
【文献】特開2005-032193(JP,A)
【文献】特開2004-213327(JP,A)
【文献】特開2006-085389(JP,A)
【文献】特開2020-095615(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
G09B 5/02
G09B 19/06
(57)【特許請求の範囲】
【請求項1】
対象ユーザによる電子辞書の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルに検索履歴の情報を入力してテスト問題のための語句を生成させる問題生成部を具備する情報処理装置。
【請求項2】
前記学習済みモデルは、前記対象ユーザ以外のユーザを含む複数のユーザによる電子機器の検索履歴に含まれる文字列の間の相関関係を学習したものである請求項1に記載の情報処理装置。
【請求項3】
前記問題生成部で生成された前記語句を前記電子辞書に送信する送信部をさらに具備する請求項1
又は2に記載の情報処理装置。
【請求項4】
前記学習済みモデルは、前記検索履歴に含まれる複数の文字列の時系列を学習し、
前記学習済みモデルに前記対象ユーザによる検索履歴を時系列的に入力していくことで、入力した検索履歴に含まれていない語句を時系列的に出力させていく出力部を具備する請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
前記学習済みモデルは、前記検索履歴に含まれる時系列の文字列の間の相関関係を学習する回帰型ニューラルネットワークである請求項
4に記載の情報処理装置。
【請求項6】
前記学習済みモデルは、ユーザの属性毎に、各属性を有するユーザによる検索履歴を学習しており、
前記問題生成部は、前記対象ユーザの属性と同じ属性を有する他のユーザの検索履歴の学習結果に基づいて、前記対象ユーザの学習のための語句を生成させる請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項7】
前記問題生成部は、前記検索履歴に含まれる文字列を単語間にスペースを含む文字列として前記学習済みモデルに入力する請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項8】
前記問題生成部は、前記
対象ユーザの属性を表すユーザ情報に基づいて、前記学習済みモデルにおける学習を実施させる請求項1乃至
7の何れか1項に記載の情報処理装置。
【請求項9】
語句の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルを記憶している情報処理装置のコンピュータが、
前記学習済みモデルに、対象ユーザによる語句の検索履歴の情報を入力して前記対象ユーザの学習のための語句を生成させる処理を実行する、
情報処理方法。
【請求項10】
対象ユーザによる電子辞書の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルに検索履歴の情報を入力してテスト問題のための語句を生成させることをコンピュータに実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及び、情報処理プログラムに関する。
【背景技術】
【0002】
従来、電子辞書においてユーザが検索した単語や熟語等の語句を記憶し、ユーザに提示する単語帳の機能を有する電子辞書が存在する。またこの単語帳の機能を有する電子辞書の中で、単語等をテスト問題としてユーザに出題するテスト機能を備えた電子辞書も存在する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のテスト機能では、出題範囲は、単語帳に登録された単語等に限定されている。つまり、従来のテスト機能では、単語帳に登録された単語等に関連する単語等をテスト問題として出題することはできない。したがって、単語等の復習の役には供するが、語彙力を広げる目的においては十分とは言えない。
【0005】
本発明は、ユーザが検索した語句に関連する可能性のある語句をユーザに提示できる情報処理装置、情報処理方法、及び、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様の情報処理装置は、対象ユーザによる電子辞書の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルに検索履歴の情報を入力してテスト問題のための語句を生成させる問題生成部を備える。
【0007】
本発明の第2の態様の情報処理プログラムは、対象ユーザによる電子辞書の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルに検索履歴の情報を入力してテスト問題のための語句を生成させることをコンピュータに実行させる。
【発明の効果】
【0008】
本発明によれば、ユーザが検索した語句に関連する可能性のある語句をユーザに提示できる情報処理装置、情報処理方法、及び、情報処理プログラムを提供することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の一実施形態に係るシステムの構成の一例を示す図である。
【
図2A】
図2Aは、RNNを用いた問題生成モデルの概念図である。
【
図3】
図3は、電子辞書の動作を示すフローチャートである。
【
図4】
図4は、サーバの動作を示すフローチャートである。
【
図5】
図5は、ユーザが電子辞書を用いて語句の検索をした文章の例である。
【
図6】
図6は、問題生成モデルに入力されるデータと教師データとの関係を示す図である。
【
図7】
図7は、問題生成モデルに入力される検索履歴の単語列と生成される単語との関係を示す図である。
【
図8】
図8は、電子辞書におけるテスト処理について示すフローチャートである。
【
図9】
図9は、テスト問題の提示例を示す図である。
【発明を実施するための形態】
【0010】
本発明の一実施形態について図面を参照して説明する。
図1は、本発明の一実施形態に係るシステム1の構成の一例を示す図である。システム1は、サーバ10と、電子辞書20とを含む。サーバ10と電子辞書20とは、ネットワーク30を介して通信可能に接続される。ネットワーク30は、例えばインターネットである。なお、
図1には、1台の電子辞書20のみが示されているが、電子辞書20の台数は1台に限定されない。すなわち、電子辞書20は2台以上であってもよい。
【0011】
サーバ10は、プロセッサ11と、ROM12と、RAM13と、ストレージ14と、通信装置15とを有している情報処理装置である。これらの各々は、システムバス16を介して互いに接続されている。
【0012】
プロセッサ11は、サーバ10の各種動作を制御するプロセッサである。プロセッサ11は、CPU(Central Processing Unit)等を含む集積回路であってよい。プロセッサ11として、CPU以外のプロセッサ、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPU(Graphic Processing unit)等が用いられてもよい。
【0013】
ROM12は、プロセッサ11等の動作に用いられる情報を記録している。RAM13は、プロセッサ11等の動作のための主記憶装置である。
【0014】
ストレージ14には、プロセッサ11で用いられるサーバ制御プログラム、各種演算を実行するための演算プログラム等の各種プログラム、パラメータ等が記憶されている。このプログラムは、問題生成プログラム141を含む。情報処理プログラムとしての問題生成プログラム141は、ユーザによる電子辞書20における単語等の語句の検索履歴に応じて問題を生成するプログラムである。プロセッサ11は、ストレージ14に記憶された問題生成プログラム141に従って処理を実行することで、問題生成部として動作し得る。なお、問題生成部は、同様の動作を実現する専用の回路によって実現されてもよい。ここで、実施形態におけるユーザとしては、例えば学生が想定される。勿論、ユーザは学生以外であってもよい。
【0015】
また、ストレージ14には、辞書コンテンツ142が記憶されている。辞書コンテンツ142は、英和辞書又は和英辞書といった、単語等の語句と、その発音、意味等が関連付けられて記憶されたコンテンツデータである。辞書コンテンツ142は、英語の辞書に限るものではない。辞書コンテンツ142は、英語以外の言語の辞書のコンテンツデータであってもよい。
【0016】
また、ストレージ14には、ユーザ情報143及び検索履歴144が記憶される。ユーザ情報143は、電子辞書20のユーザを識別するための情報である。ユーザ情報は、例えばユーザのID、電子辞書20のID、ユーザの年齢、所属している学校名、クラス名等のユーザの属性を表す情報を含み得る。検索履歴144は、ユーザが電子辞書20を用いて検索した単語等の履歴の情報である。検索履歴144は、例えば電子辞書20の電源がオフされる毎に収集される。
【0017】
また、ストレージ14には、問題生成モデル145が記憶されている。問題生成モデル145は、ユーザの検索履歴144から取得される文字列を入力とし、入力された文字列に関連する新たな文字列を生成するように構成された学習済みの機械学習モデルである。実施形態において入力又は生成される文字列は、1文字以上の文字からなり、単語、句等を含み得る。実施形態における問題生成モデル145は、例えば回帰型ニューラルネットワーク(RNN)によって構成される。
【0018】
図2Aは、RNNを用いた問題生成モデル145の概念図である。
図2Aは、時刻tにおける問題生成モデル145の状態を示している。
図2Aに示すように、問題生成モデル145は、入力層1451と、中間層1452と、出力層1453とを有している。
【0019】
入力層1451は、検索履歴144として入力される文字列をベクトル量に変換し、変換により得られた文字列ベクトルを中間層1452に出力する。入力される文字列は、例えば単語毎に分かたれており、単語と単語との間にはスペースを含んでいる。
【0020】
中間層1452は、RNNブロックである。RNNブロックには、入力層1451から文字列ベクトルが入力されるとともに、1つ前の時刻におけるRNNブロックの出力とが入力される。RNNブロックは、入力層1451からの入力と1つ前の時刻のRNNブロックの出力とを予め設定された所定の関数fに入力し、関数fの出力を現在の時刻のRNN出力として出力する。
図2Bは、
図2Aに示すRNNブロックを展開した問題生成モデル145を示す図である。
図2Bに示すように、時刻tにおけるRNNブロックは、時刻tにおける入力層からの入力と、時刻t-1におけるRNN出力(t-1)とに基づいてRNN出力(t)を出力する。
図2Bに示すように、それぞれの時刻のRNN出力には、それぞれの時刻以前のRNN出力の状態が反映される。したがって、時刻tにおけるRNN出力(t)には、時刻1から時刻tまでのRNN出力の状態が反映される。このようにして、中間層1452は、時系列の入力の変化を反映したRNN出力を出力する。
【0021】
出力層は、Softmax関数等を用いて、中間層からのRNN出力を文字列の出現確率の分布の値に変換する。例えば、問題生成モデル1452が英単語の検索履歴144の入力に対して1ずつの英数字を出力するように構成されている場合、出力層はアルファベット、数字、スペース、&等の記号といった出現されることが想定されるそれぞれの文字列が出現し得る確率を出力する。
【0022】
ここで、問題生成モデル145は、ユーザ毎に設けられていてもよいし、ユーザの年代毎に設けられていてもよいし、ユーザの通っている学校の学年毎又はクラス毎に設けられていてもよいし、これらの区別なく設けられていてもよい。
【0023】
通信装置15は、ネットワーク30等の外部の通信ネットワークと通信するための回路を含む。
【0024】
電子辞書20は、プロセッサ21と、ROM22と、RAM23と、ストレージ24と、入力装置25と、表示装置26と、通信装置27とを有している。これらの各々は、システムバス28を介して互いに接続されている。電子辞書20は、電子辞書アプリケーションがインストールされたパーソナルコンピュータ(PC)、タブレット端末、スマートフォン等の電子機器であってもよい。
【0025】
プロセッサ21は、電子辞書20の各種動作を制御するプロセッサである。プロセッサ21は、CPU等を含む集積回路であってよい。プロセッサ21として、CPU以外のプロセッサが用いられてもよい。
【0026】
ROM22は、電子辞書20の起動プログラム等を記録している。RAM23は、プロセッサ21等のための主記憶装置である。
【0027】
ストレージ24には、プロセッサ21で用いられる電子辞書制御プログラム等の各種プログラム、パラメータ等が記憶されている。プロセッサ21は、入力装置25からの入力信号等に応じて各種プログラムを実行することで電子辞書20の動作を制御する。各種プログラムは、例えば辞書プログラム241及びテストプログラム242を含む。辞書プログラム241は、ユーザの入力に基づいて辞書コンテンツ243を検索し、検索した結果をユーザに対して提示する一連の処理を実行するためのプログラムである。テストプログラム242は、ユーザに対して単語の意味及び発音等を問うテストに関する一連の処理を実行するためのプログラムである。
【0028】
また、ストレージ24には、辞書コンテンツ243が記憶されている。辞書コンテンツ243は、英和辞書又は和英辞書といった、単語等の語句と、その発音、意味等が関連付けられて記憶されたコンテンツデータである。辞書コンテンツ243は、英語の辞書に限るものではない。辞書コンテンツ243は、英語以外の言語の辞書のコンテンツデータであってもよい。また、辞書コンテンツ243は、サーバ10の辞書コンテンツ142と同一であってもよいし、辞書コンテンツ142の一部のデータだけを含んでいてもよい。
【0029】
入力装置25は、入力キー、タッチパネル等を含む。また、入力装置25は、マイクロホン等の音声入力装置を含んでいてもよい。入力装置25を介したユーザ操作に応じて、そのユーザ操作の内容を示す信号がシステムバス28を介してプロセッサ21に入力される。
【0030】
表示装置26は、液晶ディスプレイ、有機ELディスプレイ等である。表示装置26は、電子辞書20に一体的に設けられていてもよいし、電子辞書20とは別に設けられていてもよい。表示装置26には、各種の画像が表示される。
【0031】
通信装置27は、ネットワーク30等の外部の通信ネットワークと通信するための回路を含む。
【0032】
次に、システム1の動作を説明する。
図3は、電子辞書20の動作を示すフローチャートである。
図3の処理は、例えば電子辞書20の電源がオンされたときに開始される。
【0033】
ステップS1において、電子辞書20のプロセッサ21は、検索を実施するか否かを判定する。例えば、電子辞書20の動作の開始時に表示装置26に表示される検索欄に、ユーザによって単語等の文字列が入力されたたときに、検索を実施すると判定される。ステップS1において、検索を実施すると判定されたときには、処理はステップS2に移行する。ステップS1において、検索を実施すると判定されていないときには、処理はステップS9に移行する。
【0034】
ステップS2において、プロセッサ21は、入力された文字列に基づいて辞書コンテンツ243を参照し、入力された文字列と部分一致する単語等を検索する。
【0035】
ステップS3において、プロセッサ21は、検索の結果、該当する単語等があるか否かを判定する。ステップS3において、該当する単語等があると判定されたときには、処理はステップS4に移行する。ステップS3において、該当する単語等があると判定されていないときには、処理はステップS6に移行する。
【0036】
ステップS4において、プロセッサ21は、該当した単語に関連する辞書コンテンツ243の情報を検索結果としてユーザに表示する。例えば、プロセッサ21は、単語の意味、発音等の情報を表示装置26に表示する。また、例えば該当する単語等が複数存在するときには、プロセッサ21は、該当する単語等の一覧を表示装置26に表示し、その後のユーザによる単語等の選択を受けて、選択された単語の意味、発音等の情報を表示装置26に表示してもよい。
【0037】
ステップS5において、プロセッサ21は、検索の際に入力された文字列の情報を検索履歴として例えばストレージ24に記録しておく。その後、処理はステップS7に移行する。
【0038】
ステップS6において、プロセッサ21は、表示装置26にエラー表示を行う。エラー表示は、例えば該当する単語等がない旨をユーザに通知するためのメッセージの表示を含む。エラー表示の後、処理はステップS7に移行する。
【0039】
ステップS7において、プロセッサ21は、電子辞書20の電源をオフするか否かを判定する。例えば、所定時間の無操作の期間が経過した場合又は電源スイッチがオフされた場合に、電子辞書20の電源をオフすると判定される。ステップS7において、電子辞書20の電源をオフすると判定されたときには、処理はステップS8に移行する。ステップS7において、電子辞書20の電源をオフすると判定されていないときには、処理はステップS1に戻る。
【0040】
ステップS8において、プロセッサ21は、通信装置27を用いて、ストレージ24に記録されている検索履歴の情報をユーザ情報とともにサーバ10に送信する。その後、プロセッサ21は、電子辞書20の電源をオフして
図3の処理を終了させる。検索履歴の情報の送信は、電源オフの直前に行われるのに限らない。検索履歴の情報の送信は、例えば、各日の夜といった特定の時間帯に行われてもよい。
【0041】
ステップS9において、プロセッサ21は、テストを実施するか否かを判定する。例えば、ユーザによって電子辞書20の動作モードがテストモードに指定されたときには、テストを実施すると判定される。この他、電子辞書20の電源がオンされた直後には自動的にテストを実施すると判定されてもよい。ステップS9において、テストを実施すると判定されたときには、処理はステップS10に移行する。ステップS9において、テストを実施すると判定されていないときには、処理はステップS7に移行する。
【0042】
ステップS10において、プロセッサ21は、テスト処理を実行する。テスト処理の実行後、処理はステップS7に移行する。テスト処理については後で説明する。
【0043】
図4は、サーバ10の動作を示すフローチャートである。
図4の処理は、サーバ10の動作中に間欠的に行われる。
【0044】
ステップS101において、サーバ10のプロセッサ11は、問題生成モデル145の学習を実施するか否かを判定する。例えば、各日の夜といった一定期間毎に学習を実施すると判定される。ステップS101において、学習を実施すると判定されたときには、処理はステップS102に移行する。ステップS101において、学習を実施すると判定されていないときには、処理はステップS103に移行する。
【0045】
ステップS102において、プロセッサ11は、問題生成モデル145の学習を実施する。学習の実施後、処理はステップS103に移行する。
【0046】
以下、実施形態における問題生成モデル145の学習について具体例を挙げて説明する。ここで、以下の例では英単語の問題生成モデル145の学習について説明される。
【0047】
例えば、電子辞書20のユーザは、
図5の文章301における枠で示された語句の意味を、電子辞書20を用いて検索したとする。この後、電子辞書20の電源のオフの際には、検索された英単語が並べられた"construct hectic overworking interaction confine wellbeing instance harm reactive proactive "という単語列からなる検索履歴302の情報がユーザ情報とともにサーバ10に送信される。検索履歴302は、単語と単語との間のスペースも1つの文字として含んでいる。
図5の検索履歴302として送信される単語列は、同一文章の中での単語の検索履歴である。この場合、検索される単語は、ある程度の相関を有していると考えられる。例えば、
図5の検索履歴302で言えば、"active"と"proactive"とは反意語の関係を有している。問題生成モデル145は、このような検索される単語の間の相関関係を学習することによって単語等の文字列を生成する。
【0048】
図6は、問題生成モデル145に入力されるデータと教師データとの関係を示す図である。ここで、問題生成モデル145には、例えばスペースを含む30文字の文字列が入力される。そして、問題生成モデル145は、例えば、入力された文字列の次の1文字を予測する。
【0049】
この場合において、プロセッサ11は、まず、問題生成モデル145に、検索履歴302として受信された単語列"construct hectic overworking interaction confine wellbeing instance harm reactive proactive "のうちの先頭の30文字、すなわち"construct hectic overworking i"を入力する。一方で、プロセッサ11は、教師データとして、入力された30文字の次の1文字である"n"を入力する。
【0050】
続いて、プロセッサ11は、問題生成モデル145に、前回入力した"construct hectic overworking i"から所定文字数、例えば3文字だけずらした30文字、すなわち"struct hectic overworking inte"を入力する。一方で、プロセッサ11は、教師データとして、入力された30文字の次の1文字である”r”を入力する。
【0051】
これ以後も同様にして、プロセッサ11は、検索履歴302として受信されたすべての文字を入力する。最後に、プロセッサ11は、教師データとして、"スペース"を入力する。
【0052】
問題生成モデル145は、文字列の入力がある毎に、入力された文字列とその前のRNN出力とを用いて予測を実施する。例えば、問題生成モデル145は、"a"の確率0.2、"b"の確率0.1、…、"z"の確率0.02、"スペース”の確率0.05といったように想定される文字列毎の出現する確率を表す予測確率を予測する。そして、問題生成モデル145は、予測結果と教師データとの差異を小さくするようにRNNブロックにおける関数fで用いられる重み係数等を調整する。このような処理が繰り返されることにより、学習が実施される。
以上説明したように、問題生成モデル145は、検索履歴に基づく文字列の部分文字列を入力し、同検索履歴文字列の別の部分の部分文字列が出力されるように重み係数等を調整する。すなわち、検索履歴に含まれる文字列の間の相関関係を学習する。
【0053】
ここで、
図6の例では、文字列は3文字ずつずらされながら問題生成モデル145に入力される。これに対し、文字のずらし数は、3文字に限るものではない。例えば、文字列は1文字ずつ又は2文字ずつずらされながら問題生成モデル145に入力されてもよいし、4文字以上ずつずらされながら問題生成モデル145に入力されてもよい。文字のずらし数が少ないほど、問題生成モデル145の学習は精度よく実施され得る。一方で、文字のずらし数が少なくなると、学習に時間がかかってしまう。ここで、一般に英単語は3文字以上で構成されることが多いので、3文字ずらしであれば1文字ずらしの場合と同程度の特徴が抽出されやすく、学習の精度も1文字ずらしの場合とそれほど変わらない。したがって、実施形態では、文字のずらし数は3文字とされている。
【0054】
また、前述したように、問題生成モデル145は、ユーザ毎に設けられていてもよいし、ユーザの年代毎に設けられていてもよいし、ユーザの通っている学校の学年毎又はクラス毎に設けられていてもよい。これらの場合、プロセッサ11は、ユーザ情報に基づいて、問題生成モデル145に入力する情報を選別する。例えば、ユーザ毎に問題生成モデル145が設けられる場合、プロセッサ11は、ユーザ情報に基づき、同一のユーザの検索履歴の情報だけで問題生成モデル145の学習を実施させる。同様に、ユーザの年代毎に問題生成モデル145が設けられる場合、プロセッサ11は、ユーザ情報に基づき、同一の年代のユーザの検索履歴の情報だけで問題生成モデル145の学習を実施させる。
【0055】
ここで、
図4の説明に戻る。ステップS103において、プロセッサ11は、電子辞書20からのテスト問題の問い合わせを受けたか否かを判定する。後で説明するように、電子辞書20におけるテスト処理では、電子辞書20からサーバ10に対してテスト問題の問い合わせが行われる。ステップS103は、この問い合わせがあったか否かの判定である。ステップS103において、問い合わせを受信したと判定されたときには、処理はステップS104に移行する。ステップS103において、問い合わせを受信したと判定されていないときには、処理はステップS101に戻る。
【0056】
ステップS104において、プロセッサ11は、問い合わせを受信した電子辞書20のユーザの直近の検索履歴、例えば前日の夜に収集された検索履歴をストレージ14から取得する。
【0057】
ステップS105において、プロセッサ11は、取得した検索履歴を問題生成モデル145に入力し、テスト問題用の単語を生成する。
【0058】
以下、実施形態における問題生成モデル145を用いた単語の生成について具体例を挙げて説明する。
図7は、問題生成モデル145に入力される検索履歴の単語列と生成される単語との関係を示す図である。
【0059】
例えば、直近の検索履歴が、"trial"、"ocean"、"pear"、"palm"、"approachable"という5つの単語であったとする。このとき、プロセッサ11は、この5つの単語を間にスペースを挟みながら並べることで1つの単語列401を生成する。そして、プロセッサ11は、単語列401を問題生成モデル145に入力していく。これを受けて、問題生成モデル145は、"trial ocean pear palm approachable "というスペースを含む文字列に続く次の文字を予測する。
【0060】
まず、プロセッサ11は、"trial ocean pear palm approachable "というスペースを含む35文字を問題生成モデル145に入力する。問題生成モデル145は、入力"trial ocean pear palm approachable "の次に出現し得るアルファベット、数字、スペース、&等の記号といったそれぞれの文字列の予測確率を予測する。
【0061】
次に、プロセッサ11は、単語列401の2文字目から始まり、最初の予測において最も予測確率の高かった文字"s"を含む文字列、すなわち"rial ocean pear palm approachable s"を問題生成モデル145に入力する。問題生成モデル145は、入力"rial ocean pear palm approachable s"の次に出現し得るアルファベット、数字、スペース、&等の記号といったそれぞれの文字列の予測確率を予測する。
【0062】
プロセッサ11は、以後同様に文字列の入力を繰り返していき、"スペース"の予測確率が最も高くなった時点で一旦予測を終了させる。このとき、プロセッサ11は、予測が終了された時点でのそれまでの予測確率の高い文字を先頭から順に抽出し、抽出した文字を並べることで得られる文字列を1つの単語として生成する。例えば、
図7の例では、8回目の入力"cean pear palm approachable survive"のときに、予測される文字に"スペース"が現れる。この前の文字列402である"survive"が問題生成モデル145によって生成された単語である。
【0063】
なお、スペースが出現した後も同様の処理が繰り返されることによって、複数の単語が生成され得る。これにより、単語だけでなく、句等も生成され得る。発明者による実験では、一例として下記の単語列が得られた。
"cognize, stand seem sure experientially strange according contriver tempt allotrope somehow simultaneon desirably seem considerabt absent considerabh support make belong master specific export bound seat product should recognize, present strong reabuer care sure come tend distally complementizer seem make profession"
一部、英単語として存在しない単語が含まれているが、これらは次のステップにおいて選別される。
【0064】
ここで、
図4の説明に戻る。ステップS106において、プロセッサ11は、生成した単語が辞書コンテンツ142に含まれる単語であるか否かを判定する。すなわち英単語として存在しない単語、もしくは辞書コンテンツ142に収録されていない単語は、テスト問題として採用されない。ステップS106において、生成した単語が辞書コンテンツ142に含まれる単語であると判定されていないときには、処理はステップS105に戻る。上述したように、スペースが出現した後も処理を繰り返すことによって、異なる単語が生成されるため、辞書コンテンツ142に含まれる単語が生成されるまで、単語の生成を繰り返し実行する。ここで、再度の単語の生成の際には、プロセッサ11は、先に予測された結果に基づき、辞書コンテンツ142に含まれる単語が生成されるように先頭から文字を抽出してもよい。すなわち、先の予測において各文字の出現確率を記録しておくことで、第2順位や第3順位等の比較的高確率を示した文字を組み合わせて、辞書コンテンツ142に含まれる単語を生成する方法が採用されてもよい。ステップS106において、生成した単語が辞書コンテンツ142に含まれる単語であると判定されたときには、処理はステップS107に移行する。また、ステップS106において、辞書コンテンツ142に含まれる単語であるか否かの判定に加えて、ユーザが過去の所定期間までに検索した単語であるか否かの判定が加えられてもよい。そして、辞書コンテンツ142に含まれる単語であって、過去の所定期間までに検索した単語でないときに、処理がステップS107に移行してもよい。
【0065】
ステップS107において、プロセッサ11は、テスト問題の生成に使用した検索履歴及び生成した単語を含むテスト問題を、問い合わせをしてきた電子辞書20に送信する。その後、処理はステップS101に戻る。なお、テスト問題は、例えば、単語等の語句の意味、発音を問う問題であり、問題とその解答とを含む。意味を問う問題とするか、発音を問う問題とするかは、ランダムに決められてもよいし、電子辞書20のユーザ等によって予め指定されてもよい。
【0066】
図8は、電子辞書20におけるテスト処理について示すフローチャートである。ステップS201において、プロセッサ21は、サーバ10に対してテスト問題の問い合わせをする。
【0067】
ステップS202において、プロセッサ21は、サーバ10からテスト問題を受信したか否かを判定する。ステップS202において、テスト問題を受信したと判定されたときには、処理はステップS203に移行する。ステップS202において、テスト問題を受信したと判定されていないときには、処理はステップS206に移行する。
【0068】
ステップS203において、プロセッサ21は、テスト問題をユーザに提示する。
図9は、テスト問題の提示例を示す図である。
図9の例では、テスト問題の生成に用いられた前日の検索履歴の単語の一覧261が表示されている。さらに、
図9の例では、生成された単語"survive"の意味を問う問題262がテスト問題として提示されている。このような問題の提示を受けてユーザは、入力装置25を用いて回答を入力する。
【0069】
ステップS204において、プロセッサ21は、ユーザからの回答があるか否かを判定する。ステップS204において、プロセッサ21は、ユーザからの回答があると判定されるまで、処理を待機する。ステップS204において、ユーザからの回答があると判定されたときには、処理はステップS205に移行する。
【0070】
ステップS205において、プロセッサ21は、ユーザからの回答と問題の解答とを比較し、問題に対する回答の正否の結果をユーザに提示する。その後、処理はステップS206に移行する。
【0071】
ステップS206において、プロセッサ21は、ユーザからテストの実施の指示がされたか否かを判定する。ステップS206において、ユーザからテストの実施の指示がされたと判定されたときには、処理はステップS207に移行する。ステップS206において、ユーザからテストの実施の指示がされたと判定されていないときには、処理はステップS209に移行する。
【0072】
ステップS207において、プロセッサ21は、テスト問題を生成する。例えば、プロセッサ21は、辞書コンテンツ142の中から単語を選択し、選択した単語の意味、発音を問う問題を生成する。単語の意味を問う問題とするか、発音を問う問題とするかは、ランダムに決められてもよいし、電子辞書20のユーザ等によって予め指定されてもよい。また、単語を選択する際には、プロセッサ21は、辞書コンテンツ142に含まれる単語の中でユーザが過去に検索した単語又は過去に検索していない単語を優先して選択してもよい。
【0073】
ステップS208において、プロセッサ21は、テスト問題をユーザに提示する。その後、処理はステップS204に戻る。ステップS208におけるテスト問題の提示は、基本的には
図9に準じて行われてよい。ただし、前日の検索履歴の単語の一覧261の表示は、省略されてよい。
【0074】
ステップS209において、プロセッサ21は、テストを終了するか否かを判定する。例えば、ユーザによって電子辞書20の動作モードがテストモード以外に指定されたときには、テストを終了すると判定される。ステップS209において、テストを終了すると判定されたときには、プロセッサ21は、
図8の処理を終了させる。ステップS209において、テストを終了すると判定されていないときには、処理はステップS206に戻る。
【0075】
以上説明したように、実施形態によれば、ユーザの電子辞書20の検索履歴の学習結果に基づいてテスト問題が生成される。検索は時系列で行われるので、検索される単語はある程度の相関を有していると考えられる。このような相関に基づいてテスト問題が生成されるので、ユーザが検索した語句に関連する可能性のある語句がテスト問題として提示されやすい。これにより、ユーザの語彙力を効果的に向上させることが期待される。さらには、複数のユーザの検索履歴も含めてテスト問題が生成されることにより、ユーザが検索した語句に関連する可能性のある新たな語句がテスト問題として提示される可能性が高まる。これにより、ユーザの語彙力を効果的に向上させることがより期待される。
【0076】
また、実施形態では。ユーザ情報が考慮されて、ユーザ毎、ユーザの年代毎又はユーザの所属毎に問題生成モデルの学習が実施され得る。これにより、現在のユーザの学習能力に近いテスト問題が生成され得る。
【0077】
[変形例]
以下、実施形態の変形例を説明する。実施形態では、問題生成モデル145としてRNNが用いられている。これは、検索履歴が時系列の単語の並びの情報を有しており、RNNによる学習が好適であるためである。一方で、RNNには、長短期記憶(LSTM)等の種々の派生モデルが存在する。実施形態では、RNNの各種の派生モデルが用いられてもよい。例えば、LSTMであれば、検索履歴に含まれる文字列が非常に長くなった場合であっても、適切に学習が行われ得る。さらには、RNNの代わりに、畳み込みニューラルネットワーク(CNN)等が用いられてもよい。つまり、問題生成モデル145は、ユーザの辞書の検索履歴を入力として、新たな語句を生成できるように構成された任意の機械学習モデルであってよい。
【0078】
また、実施形態では、電子辞書20は、通信可能であるとされている。しかしながら、電子辞書の機種によっては、通信できないものもある。この場合、例えば電子辞書20は、スマートフォン等の端末経由で検索履歴を送信してもよい。例えば、電子辞書20の電源のオフ時に検索履歴とユーザ情報とを含む二次元コードが表示装置26に表示され、ユーザは表示装置26に表示された二次元コードをスマートフォン等で読み取り、スマートフォン等を用いて読み取った情報をサーバ10に送信してもよい。この場合において、サーバ10において生成されたテスト問題は、スマートフォン等に表示されてもよい。これにより、実施形態の技術は通信機能のない電子辞書に対しても適用され得る。
【0079】
また、実施形態では、英語のテスト問題の生成が例示されている。これに対し、実施形態の技術は、英語以外の他言語のテスト問題の生成にも適用され得る。
【0080】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0081】
以下に、本出願の出願当初の特許請求の範囲に記載された発明を付記する。
[1] ユーザによる電子辞書の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルに検索履歴の情報を入力してテスト問題のための語句を生成させる問題生成部を具備する情報処理装置。
[2] 前記問題生成部で生成された前記語句を前記電子辞書に送信する送信部をさらに具備する[1]に記載の情報処理装置。
[3] 前記学習済みモデルは、前記検索履歴に含まれる時系列の文字列の間の相関関係を学習する回帰型ニューラルネットワークである[1]又は[2]に記載の情報処理装置。
[4] 前記問題生成部は、前記検索履歴に含まれる文字列を単語間にスペースを含む文字列として前記学習済みモデルに入力する[1]-[3]の何れか1に記載の情報処理装置。
[5] 前記問題生成部は、前記ユーザの属性を表すユーザ情報に基づいて、前記学習済みモデルにおける学習を実施させる[1]-[4]の何れか1に記載の情報処理装置。
[6] ユーザによる電子辞書の検索履歴に含まれる文字列の間の相関関係を学習した学習済みモデルに検索履歴の情報を入力してテスト問題のための語句を生成させることをコンピュータに実行させるための情報処理プログラム。
【符号の説明】
【0082】
1 システム、10 サーバ、11 プロセッサ、12 ROM、13 RAM、14 ストレージ、15 通信装置、16 システムバス、20 電子辞書、21 プロセッサ、22 ROM、23 RAM、24 ストレージ、25 入力装置、26 表示装置、27 通信装置、28 システムバス、30 ネットワーク、141 問題生成プログラム、142 辞書コンテンツ、143 ユーザ情報、144 検索履歴、145 問題生成モデル、241 辞書プログラム、242 テストプログラム、243 辞書コンテンツ。