オンライン教育システムは、数学公式に関する情報を提供できる。学習者、特に初学者が、論文/本を読んでいるとき、または教材を学習しているときに、彼/彼女は、スペースの制限または簡潔さのために、派生物の詳細が省略された特定の数学公式に遭遇する可能性がある。そのため、学習者は、数学公式をなぜ、およびどのように展開可能なのかを理解できない可能性がある。
学習者が公式の名前を知っている場合は、学習者は、その名前を一般的な検索エンジンに入力することが可能であり、検索エンジンは、数学公式の名前を含んでいる多くの文書を返すが、学習者は依然として、返された文書が数学公式を含んでいるかどうかを手作業で確認し、さらに、返された文書が数学公式の派生物の詳細を含んでいるかどうかを手作業で確認する。これは、非常に非効率且つ時間のかかる作業である。
学習者が、数学公式の名前を知らない場合は、学習者は、特定のフォーマットで数学公式を、数学公式のための特定の検索エンジンに手作業で入力することが可能である。入力プロセスは、特に、数学公式が長いものであり、多くの異なる変数および/または演算子を含んでいる場合は、時間がかかり、間違いが起こりやすい。数学公式検索エンジンは、戻り数学公式を含む多くの文書を返すことができるが、学習者は依然として、返された文書が、数学公式の派生物の詳細を含んでいるかどうかを手作業で確認する必要がある。
これと比較して、ここにおいて記述される幾つかの実施の形態は、学習者が、数学公式に関連する名前または用語を知っていることを必要とせず、また数学公式を手作業で入力することを必要としないで、数学公式に関する情報を特定できる。例えば、学習者は、電子文書において数学公式に遭遇し、電子文書に含まれている以上に、数学公式に関する、より詳細な派生物の情報を所望する可能性がある。従って、学習者は、電子文書から直接数学公式を選択するために有効な入力を提供して、数学公式のための特定の検索エンジンへの、特定のフォーマット入力を生成できる。この場合、数学公式検索エンジンは、入力された公式と類似の、または入力された公式と同じである戻り数学公式を含んでいる多くの文書を返すことができるが、学習者は依然として、返された文書が数学公式の派生物の詳細を含んでいるかどうかを手作業で確認する必要がある。
上記の実施の形態と比較して、ここにおいて含まれている幾つかの実施の形態は、単に最もよく一致している公式を見つけるだけでなく、さらに1ステップ先に進んで、関心のある公式の詳細な説明および派生物を含んでいるコンテンツを自動的に見つけようとする。幾つかの実施の形態もまた、名前が未知の公式の関連技術用語も見つけようとする。
本発明の実施の形態が、付随する図面を参照して説明される。ここにおける、実質的に如何なる複数および/または単数の用語の使用に関しては、当業者であれば、状況および/または適用に対して適切なように、複数から単数へ、および/または、単数から複数へ変換可能である。種々の単数/複数の並べ替えは、ここにおいては、明確にするために明示的に記述される。
図1は、幾つかの実施の形態を実現できる、学習者支援システム100の、一例としてのブロック図を例示している。学習者支援システム100は、ネットワーク105と、学習者支援サーバ101と、ユーザ装置120と、コンテンツサーバ115を含むことができる。
一般的に、ネットワーク105は、一つ以上の広域ネットワーク(WAN)および/または構内ネットワーク(LAN)を含むことができ、WANおよびLANにより、学習者アプリケーション111または121は、コンテンツサーバ115にアクセスすることが可能になり、および/または、ユーザ装置120の一つ以上と、学習者支援サーバ101が相互に、および/またはコンテンツサーバ115と通信することが可能になる。幾つかの実施の形態においては、ネットワーク105は、複数のWANおよび/またはLANの間の論理および物理接続により形成されるグローバルインターネットワークを含むインターネットを含む。代替的または追加的に、ネットワーク105は、802.xxネットワーク、ブルートゥース(Bluetooth)アクセスポイント、無線アクセスポイント、またはインターネットプロトコル(IP)ベースネットワークのような、一つ以上のセルラー(無線周波数)RFネットワークおよび/または一つ以上の有線および/または無線ネットワークを含むことができる。ネットワーク105はまた、一つのタイプのネットワークが、別のタイプのネットワークとのインタフェースを取ることを可能にするサーバも含むことができる。
学習者支援サーバ101は、プロセッサ、メモリ、および学習者アプリケーション111を含むことができる。幾つかの実施の形態においては、学習者支援サーバ101上の学習者アプリケーション111は、ユーザ装置120から数学公式を受信するように構成できる。例えば、学習者アプリケーション111は、数学公式を選択した後に、電子文書から数学公式を受信できる。電子文書は、ポータブルドキュメントフォーマット(Portable Document Format)文書(.pdf文書)、ウェブページ(例えば、ハイパーテキストマークアップ言語(HTML))文書)、または、他の適切な電子文書を含むことができる。電子文書に含まれている数学公式は、電子文書の画像、ベクトルグラフィック、またはテキストに含まれる。
学習者アプリケーション111は、フォーマット化公式を数学公式(例えば、選択された数学公式、または、ユーザにより入力された数学公式)から生成でき、フォーマット化公式は、コンテンツサーバ115の一つ以上により生成および/または管理される一つ以上の電子文書から戻り公式を見つけるために使用できる。電子文書および/またはそれらの原本の例は下記に記述される。学習者アプリケーション111は、戻り公式を検索する前に、数学公式を規格化、一般化、およびトークン化して、処理時間を短縮し、数学公式に対して、より良好に一致する公式を見つけることができる。戻り公式を含む電子文書は、コンテンツサーバ115の一つにより生成および/または管理できる。
幾つかの実施の形態においては、クローラは、複数のオンライン教育リソースウェブサイトを巡回し、収集したコンテンツをダウンロードし、収集したコンテンツをコンテンツサーバ115に記憶できる。クローラは、学習者アプリケーション111、コンテンツサーバ115、または、ネットワーク105に通信可能に結合されている他の位置の一部として含むことができる。学習者アプリケーション111は、コンテンツサーバ115に記憶されている、収集されたコンテンツを処理し、収集されたコンテンツを走査して、数学公式を含む電子文書があるかどうかを確認し、数学公式を含む電子文書に対しては、数学公式用の特定の検索エンジンの一部である公式のインデックスを生成する。そして、学習者アプリケーション111は、数学公式に類似の、または数学公式と同じである(および/またはフォーマット化公式に類似の、またはフォーマット化公式と同じである)公式のインデックスにおける戻り公式を見つけて、戻り公式を含む電子文書を判定し、対応する電子文書を検索して、公式の派生物を特定できる。
公式の派生物は、戻り公式の派生物を含むことができる。例えば、学習者アプリケーション111は、コンテンツサーバ115により記憶されている少なくとも一つの電子文書における戻り公式の位置を特定し、戻り公式の周りに境界を設定し、境界内の他の公式の位置を特定することができる。他の公式の、戻り公式への近接性および類似性に基づいて、他の公式は、戻り公式の派生物を記述できる。
学習者アプリケーション111はまた、数学公式に関連する名前または専門用語のような関連コンテンツを特定するようにも構成できる。例えば、学習者アプリケーション111は戻り公式を特定し、戻り公式のそれぞれの周りに境界を設定し、境界内のテキストを検索し、戻り公式の境界内で繰り返される専門用語を抽出することができる。専門用語は、数学公式をより良好に理解するために使用できる。
ユーザ装置120のそれぞれは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、個人情報端末(PDA)、電子リーダ装置、または他の適切なユーザ装置を含むことができる。
ユーザ装置120のそれぞれは、一般的に電子文書を描画および表示するように構成されている表示装置(図示されてない)を含むことができ、および/または表示装置に通信可能に結合できる。代替的または追加的に、ユーザ装置120のそれぞれは、電子文書内の数学公式を選択するためのツールを含むことができる。表示装置は、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、PDA、電子リーダ装置、または内蔵モニタを有している他のユーザ装置120において実現できるような、内蔵モニタを含むことができる。代替的または追加的に、表示装置は外部モニタ、プロジェクタ、テレビジョン、または、ユーザ装置120とは別個であってよく、ユーザ装置120に通信可能に結合できる他の適切な表示装置として実現できる。
幾つかの実施の形態においては、各ユーザ装置120は、学習者支援サーバ101上に記憶されている学習者アプリケーション111を参照して記述したステップの幾つか、またはすべてを行うように構成されている学習者アプリケーション121を含む。例えば、学習者アプリケーション121は、学習者が電子文書から数学公式を選択するためのツールを生成するためのユーザインタフェースモジュールを含むことができる。他の実施の形態においては、ユーザ装置120は、例えば、ブラウザベースアプリケーションにアクセスすることにより、学習者支援サーバ101の学習者アプリケーション111にアクセスする。代替的または追加的に、各ユーザ装置120上の学習者アプリケーション121は、クライアント/サーバ関係にある学習者支援サーバ101上の学習者アプリケーション111と通信できる。
幾つかの例においては、学習者アプリケーション121はまた、コンテンツサーバ115に記憶され、インデックスを付けられた電子文書から戻り公式を特定し、公式の派生物を特定し、および/または関連コンテンツを特定することもできる。幾つかの他の例においては、学習者アプリケーション121は、選択された数学公式を学習者支援サーバ101上の学習者アプリケーション111に送信する。図1においては、複数のユーザ装置120が例示されているが、学習者支援システム100は、より一般的には、一つ以上のユーザ装置120を含むことができる。
コンテンツサーバ115は、電子文書を生成および/または管理するように構成されているアプリケーションおよび/またはハードウェア(例えば、ラック搭載サーバコンピュータ、ブレードサーバコンピュータ、および/または他のコンピュータハードウェア)を含むことができる。電子文書は、オープンコースウェア(OCW)学習教材、巨大オープンオンラインコース(MOOC)学習教材、教授および講師を含む個人により教育機関で教示されるコースのためのコースページ、そのようなコースに関連する講義ノート、ジャーナル記事および/または学会論文を含むオンライン出版物、オンライン百科事典、本など、またはそれらの任意の組み合わせのような、オープン教育リソース(以降、「OER」)を含むことができる。図1においては、複数のコンテンツサーバ115が例示されているが、学習者支援システム100は、より一般的には、一つ以上のコンテンツサーバ115を含むことができる。
下記に、より詳細に記述されるように、コンテンツサーバ115、または、より特別にはコンテンツサーバ115に記憶されている電子文書は、一つ以上の学習者アプリケーション111および121により巡回または処理されることができ、電子文書に含まれる公式のインデックスを作成することができる。学習者アプリケーション111および121の一つ以上は、戻り公式を見つけるために公式のインデックスを使用することができ、戻り公式を含む特定の電子文書を解析でき、公式の派生物および/または関連コンテンツを特定できる。
幾つかの実施の形態においては、学習者アプリケーション111、121の一つまたは両者は、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array:FPGA)または特定用途向け集積回路(Application-Specific Integrated Circuit:ASIC)を含むハードウェアを使用して実現できる。幾つかの実施の形態においては、学習者アプリケーション111、121の一つまたは両者は、ハードウェアとソフトウェアの組み合わせを使用して実現できる。学習者アプリケーション111、121は、装置とサーバの組み合わせにおいて、または、図1の装置またはサーバの一つにおいて記憶できる。学習者アプリケーション111、121の一つまたは両者に対応することができる学習者アプリケーションの、一例としての実施の形態は、下記に、より詳細に記述される。
図2は、ここにおいて記述される少なくとも一つの実施の形態に応じて配置された学習者支援装置(以降「装置」)200の、一例としてのブロック図を例示している。装置200は、図1の学習者支援サーバ101およびユーザ装置120の一つ以上を含むことができ、または、それらに対応することができる。装置200は、ラック搭載サーバコンピュータ、ブレードサーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォン、個人情報端末(PDA)、電子リーダ装置、または他の適切なコンピューティング装置のような、任意の適切な構成因子を有しているコンピューティング装置として実現できる。
幾つかの例によれば、装置200は、学習者アプリケーション201、プロセッサ装置225、通信インタフェース227、記憶装置233、およびメモリ229を含むことができる。装置200の構成要素は、バス212により通信可能に結合できる。バス212は、メモリバス、記憶装置インタフェースバス、バス/インタフェースコントローラ、インタフェースバスなど、またはそれらの任意の組み合わせを含むことができる。幾つかの実施の形態においては、装置200は追加的に、バス212に結合されている表示装置231を含む。
プロセッサ装置225は、演算論理ユニット、マイクロプロセッサ、汎用コントローラ、または、ここにおいて記述されるような動作を行う、または動作の実行を制御するための幾つかの他のプロセッサアレイを含む。プロセッサ装置225はデータ信号を処理し、複合命令セットコンピュータ(Complex Instruction Set Computer(CISC))アーキテクチャ、縮小命令セットコンピュータ(Reduced Instruction Set Computer(RISC))アーキテクチャ、または、命令セットの組み合わせを実現するアーキテクチャを含む種々のコンピューティングアーキテクチャを含むことができる。図2は単一のプロセッサ装置225を含んでいるが、複数のプロセッサ装置を含むことができる。他のプロセッサ、オペレーティングシステム、および物理構成が可能である。
メモリ229は、プロセッサ装置225により実行でき、または、プロセッサ装置225上で動作できる命令またはデータを記憶している。命令またはデータは、ここにおいて記述された動作を行う、または動作の実行を制御するためにプロセッサ装置225により実行できるプログラミングコードを含むことができる。メモリ229は、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory:DRAM)装置、スタティックランダムアクセスメモリ(Static Random Access Memory:SRAM)装置、フラッシュメモリ、または幾つかの他のメモリ装置を含むことができる。幾つかの実施の形態においては、メモリ229はまた、不揮発性メモリ、または、類似の固定記憶装置、およびハードディスクドライブ、フロッピーディスクドライブ(登録商標)、コンパクトディスクROM(Compact Disc-ROM:CD-ROM)装置、DVD-ROM装置、DVD-RAM装置、DVD-RW装置、フラッシュメモリ装置、または、より固定的に情報を記憶するための、幾つかの他の大容量記憶装置を含む媒体も含むことができる。
メモリ229は、公式データ292を記憶できる。公式データ292は、電子文書から選択され、それぞれが、電子文書に画像、ベクトルグラフィックス、および/または他のデータオブジェクトとして含まれている一つ以上の数学公式と、画像に対して光学式文字認識を行って、またはベクトルグラフィックスの構文解析を行って特定した記号を含む一つ以上のフォーマット化公式と、一つ以上の規格化公式と、一つ以上の一般化公式と、一つ以上のトークンと、上記の一つ以上と類似の、または上記の一つ以上と同じである一つ以上の戻り公式を含むことができる。
通信インタフェース227は、装置200が図1の学習者支援サーバ101またはユーザ装置120であるかどうかにより、学習者支援サーバ101、ユーザ装置120、およびコンテンツサーバ115の少なくとも一つとの間で、データの送信および受信を行うことができる。通信インタフェース227は、図1の学習者支援システム100の任意の他のエンティティとの間で、データの送信および受信を行うことができる。幾つかの実施の形態においては、通信インタフェース227は、図1のネットワーク105、または他の通信チャネルへの直接物理接続のためのポートを含んでいる。例えば、通信インタフェース227は、ユニバーサルシリアルバス(Universal Serial Bus:BUS)ポート、セキュアデジタル(Secure Digital:SD)ポート、カテゴリ5(CATegory5:CAT-5)ケーブルポート、または、図1の学習者支援サーバ101、ユーザ装置120、コンテンツサーバ115、または、任意の他のエンティティとの有線通信のための同様のポートを含むことができる。幾つかの実施の形態においては、通信インタフェース227は、図1の学習者支援サーバ101、ユーザ装置120、コンテンツサーバ115、または、任意の他のエンティティの少なくとも一つ以上とデータを交換するための無線トランシーバ、または、IEEE802.11、IEEE802.16、ブルートゥース(Bluetooth(登録商標))または他の適切な無線通信方法を含む一つ以上の無線通信方法を使用する他の通信チャネルを含んでいる。
幾つかの実施の形態においては、通信インタフェース227は、ショートメッセージングサービス(Short Messaging Service:SMS)、マルチメディアメッセージングサービス(Multimedia Messaging Service:MMS)、ハイパーテキストトランスファープロトコル(HyperText Transfer protocol:HTTP)、直接データ接続、無線アプリケーションプロトコル(Wireless Application Protocol:WAP)、電子メール、または他の適切なタイプの電子通信を経由することを含む、セルラー通信ネットワーク上でデータの送受信を行うためのセルラー通信トランシーバを含んでいる。幾つかの実施の形態においては、通信インタフェース227は、有線ポートおよび無線トランシーバを含んでいる。通信インタフェース227はまた、図1のネットワーク105への他の接続も提供でき、送信制御プロトコル/インターネットプロトコル(Trasmission Control Protocol/Internet Protocol:TCP/IP)、HTTP、HTTPセキュア(HTTP Secure:HTTPS)、簡易メール転送プロトコル(Simple Mail Transfer Protocol:SMTP)などを含む標準ネットワークプロトコルを使用して、ファイルおよびメディアオブジェクトを配信できる。
記憶装置233は、ここにおいて記述される機能を提供するためのデータを記憶する非一時的記憶媒体を含むことができる。記憶装置233は、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory:DRAM)装置、スタティックランダムアクセスメモリ(Static Random Access Memory:SRAM)装置、フラッシュメモリ、または幾つかの他のメモリ装置を含むことができる。幾つかの実施の形態においては、記憶装置233はまた不揮発性メモリまたは類似の固定記憶装置および、ハードディスクドライブ、フロッピーディスクドライブ(登録商標)、CD−ROM装置、DVD−ROM装置、DVD−RAM装置、DVD−RW装置、フラッシュメモリ装置、または情報を、より固定的に記憶するための幾つかの他の大容量記憶装置を含む媒体も含んでいる。記憶装置233はまた、一時的にメモリ229に記憶またはロードされる命令および/またはデータも記憶できる。
幾つかの実施の形態においては、記憶装置233は数学公式を含んでいる。学習者アプリケーション201は、例えば、数学公式についてのセマンティック演算子ツリーを構築することにより、数学公式を編成でき、トークンを生成できる。学習者アプリケーション201は、トークンを記憶装置233に記憶できる。従って、数学公式を、非一時的コンピュータ読み取り可能媒体(例えば、記憶装置233および/またはメモリ299)に記憶できる。
図2に例示されているように、学習者アプリケーション201は、ユーザインタフェースモジュール202、フォーマットモジュール206、類似性モジュール208、および識別子モジュール210の少なくとも一つを含むことができる。モジュール202、206、208、および210を含む学習者アプリケーション201は、ここにおいて記述される機能および動作を行う、またはそれらの実行を制御するために、プロセッサ装置225により実行可能なプログラミングコードおよび/またはコンピュータ読み取り可能命令を含むソフトウェアを一般的に含むことができる。学習者アプリケーション201は、装置200の別の構成要素の一つからデータを受信して、そのデータを、記憶装置233とメモリ229の一つ、またはその両者に記憶できる。代替的または追加的に、学習者アプリケーション201は、装置200の他の構成要素にデータ送ることができ、および/またはデータを、記憶装置233とメモリ229の一方、またはその両者に書き込むことができる。
ユーザインタフェースモジュール202は、描画されると、入力された数学公式を電子文書から選択するためのツールを含んでいるユーザインタフェースを表示するグラフィックスを生成するように一般的に構成できる。フォーマットモジュール206は、ここにおいて、より詳細に記述するように、入力された数学公式からフォーマット化公式を生成するように一般的に構成できる。類似性モジュール208は、ここにおいて、より詳細に記述するように、入力された数学公式と類似の、または入力された数学公式と同じ公式を見つけるように一般的に構成できる。識別子モジュール210は、ここにおいて、より詳細に記述するように、公式の派生物および、入力された数学公式に関連する関連コンテンツを特定するように一般的に構成できる。
表示装置231は、バス212を介して学習者アプリケーション201に通信可能に結合できる。描画されたグラフィックスは、表示装置231上で学習者に表示できる。
ユーザインタフェースモジュール202は、入力された数学公式を電子文書から選択するツールを含むユーザインタフェースを表示するグラフィックスを生成できる。電子文書は、学習者には不慣れな数式を伴う、例えば、ワード(Word)またはpdf文書を含むことができる。別の例においては、電子文書は、数学公式の画像を含んでいる記事、または入力された数学公式を特定のフォーマットで描画するプラグインのようなウェブページを含んでいる。
ツールは、ツールを起動するために有効な入力を学習者が提供することにより起動できる。例えば、ツールは、学習者が電子文書のある範囲上でマウスを動かす、入力された数学公式の選択の開始を示すためにマウス上のボタンをクリックする、ボタンを押したままマウスをドラッグする、および入力された数学公式の選択の終了を示すためにボタンから指を放すことにより起動できる。ユーザインタフェースモジュール202は、マウスで選択された領域のアウトラインを表示するグラフィックスを生成できる。幾つかの実施の形態においては、ユーザインタフェースモジュール202は、例えば、入力された公式を選択する最初の試みが、入力された数学公式全体を囲っていない領域という結果となった場合に有益である、領域を再選択するためのオプションを含んでいる。任意の他の適切な入力装置および/または入力動作を、学習者がツールを起動および/または入力された数学公式を選択するために使用できる。
フォーマットモジュール206は、選択された数学公式からフォーマット化公式を生成できる。幾つかの実施の形態においては、フォーマットモジュール206は、選択された数学公式が、画像またはベクトルグラフィックに含まれているかどうか、または、ラテック(LaTex)または数学マークアップ言語(MathML)のような文書マークアップ言語の一部であるかどうかを判定する。選択された数学公式が画像に含まれている場合は、フォーマットモジュール206は、画像に光学式文字認識を行い、選択された数学公式における記号を特定できる。選択された数学公式がベクトルグラフィックに含まれている場合は、フォーマットモジュール206は、ベクトルグラフィックの構文解析を行い、記号を特定できる。選択された数学公式が文書マークアップ言語の一部である場合は、フォーマットモジュール206は、選択された数学公式を文書マークアップ言語から特定できる。フォーマットモジュール206が記号を特定した後、フォーマットモジュール206は、フォーマット化公式として、特定のフォーマットで記号を保存できる。幾つかの実施の形態においては、フォーマットモジュール206は、フォーマット化公式を含むクエリを生成し、クエリは、公式のインデックスを問い合わせるために類似性モジュール208により使用される。
類似性モジュール208は、公式のインデックスから、フォーマット化公式と類似の、またはフォーマット化公式と同じである類似公式を見つけることができる。幾つかの実施の形態においては、類似性モジュール208は、フォーマット化公式に基づいて、公式のインデックスを検索するためのクエリを作成する。例えば、類似性モジュール208は、セマンティック演算子ツリー、レイアウト表現ツリー、または他のタイプのツリーのようなツリーをフォーマット化公式から構築する。ツリーは、フォーマット化公式の特定のタイプと関連するコードと共に、フォーマット化公式からの変数と演算子の両者を含むことができる。セマンティック演算子ツリーは、図7Aを参照して下記に、より詳細に検討される。
類似性モジュール208は、所定の規則に基づいて、フォーマット化公式および/または構築されたツリーの順序を整理することにより、フォーマット化公式および/または構築されたツリーを規格化できる。所定の規則は、フォーマット化公式を規格化するために使用される演算子の順序を含むことができる。例えば、同じ公式を、C×V+Cとしても、C+C×Vとしても表現できる。これらは両者とも同じ公式であるが、変数は異なる順序となっている。類似性モジュール208は、加算演算子を乗算演算子の前に置くことで、公式の両者の例を、C+C×Vとして公式を規格化できる。規格化は、図7Bを参照して下記に、より詳細に検討される。
幾つかの実施の形態においては、類似性モジュール208は、フォーマット化公式、構築されたツリー、および/または規格化公式から、変数をプレースホルダと置き換えた一般化公式を生成する。例えば、類似性モジュール208は、X+YとA+Bを、*+*と一般化できる。複数の変数と少なくとも一つの演算子がカッコの中にある幾つかの実施の形態においては、類似性モジュール208は、カッコ内の式を結合して、単一の変数を生成できる。例えば、類似性モジュール208は、A+(B×C)を最初は*×(*+*)と一般化し、そして、*×*と一般化できる。類似性モジュール208はまた、フォーマット化公式および/または構築されたツリーにおいて、タグで符号化された変数と定数を除去することもできる。一般化は、図7Cを参照して下記に、より詳細に検討される。
類似性モジュール208は、フォーマット化公式、規格化公式、および/または一般化公式からトークンを生成できる。例えば、類似性モジュール208は、一般化公式と構築されたツリーに基づくトークンを生成できる。各トークンは、コンテンツが元々の項(例えば、フォーマット化公式または構築されたツリーから)または一般化公式からの一般化された項(例えばプレースホルダ)を記述する場合は、コンテンツとレベルのペアを含むことができる。レベルは、コンテンツに関連する構築されたツリーにおける対応する位置を含むことができる。
類似性モジュール208は、公式のインデックスにおいて、フォーマット化公式と類似の、またはフォーマット化公式と同じである戻り公式を見つけることができる。例えば、類似性モジュール208は公式のインデックスを検索して、選択された数学公式と類似の、または選択された数学公式と同じである戻り公式を特定できる。類似性モジュール208が規格化公式、一般化公式、および/またはトークンを生成する実施の形態においては、類似性モジュール208は、公式のインデックスを検索して戻り公式を特定できる。戻り公式は、選択された数学公式と同じ、例えば、同一であってよく、または、同一の構造を有するが、異なる変数名を有する公式のように、違いを有していてよい。例えば、選択された数学公式は、処理することができ、トークン化公式として表現でき、類似性モジュール208は、これもまたトークン化され、従って、選択された数学公式と類似の戻り公式を特定できる。
幾つかの実施の形態においては、類似性モジュール208は、選択された数学公式と戻り公式との間の類似性の程度を示す類似スコアを生成して、類似スコアが類似スコア閾値を超えている場合は、類似公式を返す。幾つかの実施の形態においては、類似性モジュール208は、上位n個のスコアを有するn個の戻り公式を返すことができる。幾つかの実施の形態においては、類似性モジュール208は、閾値類似性を適用して戻り公式を見つける。例えば、閾値類似性は、選択された数学公式と戻り公式との間の90%(または他の適切なパーセント)の類似性を構成できる。
幾つかの実施の形態においては、類似性モジュール208、またはコンテンツサーバ115上のクローラは、公式のインデックスを生成する検索エンジンを含んでいる。例えば、類似性モジュール208、またはコンテンツサーバ上のクローラは、電子文書を巡回し、電子文書をコンテンツサーバ115に記憶して、数学公式を特定し、電子文書における検出された数学公式にインデックスを付けて、公式のインデックスにする。類似性モジュール208は、特定された数学公式を含む電子文書における公式領域を特定し、特定された数学公式のそれぞれのテキストの行を分割し、そこからフォーマット化公式を作成できる。類似性モジュール208は、フォーマット化公式それぞれに対して、例えば、セマンティック演算子ツリーのようなツリーを構築し、フォーマット化公式および/または対応する構築されたツリーを規格化し、一般化公式を生成し、元々の項および一般化された項を有するトークンを生成できる。類似性モジュール208は、公式のインデックスにおけるトークンを、例えば、図2において記述された記憶装置233に記憶できる。公式のインデックスはまた、公式のインデックスにおける各公式が見つけられた電子文書の表示および/または、それを指し示すポインタ(例えば、ユニフォームリソースロケータ(uniform resource locator:URL))も含むことができ、それにより、類似性モジュール208は、公式のインデックスにおける公式が、選択された数学公式に関して類似公式と判定されたときに、電子文書にアクセスして公式の派生物と関連コンテンツを特定できる。
識別子モジュール210は、選択された数学公式に対する公式の派生物、および名前または専門用語のような関連コンテンツを特定するように構成できる。例えば、公式の派生物は、戻り公式の派生物を含むことができる。幾つかの実施の形態においては、識別子モジュール210は、公式の派生物を、コンテンツサーバ115に記憶されている電子文書の少なくとも一つから特定する。例えば、識別子モジュール210は、電子文書の少なくとも一つおける戻り公式の位置を特定し、電子文書がどのように編成されているかに基づいて、戻り公式の周りに現在の境界を設定する。例えば、電子文書にページが付けられている場合は、識別子モジュール210は、戻り公式の周りの現在の境界を、現在の境界がまた他のページにも延伸している現在のページ上に設定できる。例えば、戻り公式が、現在のページの最初にある場合は、識別子モジュール210は、前ページのすべてまたは一部を、現在の境界の一部として含むことができ、現在のページのすべてまたは一部を含むことができる。代替的または追加的に、識別子モジュール210は、現在のページ内の戻り公式の位置によっては、現在の境界内のみの現在のページのすべてまたは一部、または現在の境界内の現在および次のページ両者のすべてまたは一部を含むことができる。戻り公式が、少なくとも一つのページの境界により分割された、公式の一連の連続する行、または実質的に連続する行に含まれている場合は、現在の境界を延伸して、複数のページをカバーするようにして、公式の一連の連続する行、または実質的に連続する行のすべてを含むことができる。例えば、類似公式が、1ページ目の最後から開始し、2ページ目の中央部で終了する一連の連続する公式に含まれる場合には、識別子モジュール210は、2ページにまたがる連続する公式の周りに現在の境界を設定できる。公式の行は、一連の行におけるすべての行が公式を含んでいる場合は、連続していると考えることができる。公式の行は、電子文書のある領域内で、公式の少なくとも一部を含むと分類される行のパーセンテージが閾値を超える場合は、実質的に連続であると考えることができる。例えば、公式を、公式を記述するテキストと混在させることができるので、閾値は75%であってよい。公式の一部である行のパーセンテージが75%を超える場合は、公式の行は、実質的に連続である。公式の一部である行のパーセンテージが75%未満のときは、公式の行は、複数の公式を表現している可能性がある。
戻り公式が、ページが付けられていない電子文書の一部である例においては、識別子モジュール210は、戻り公式の周りに、現在の境界を作成するために、上方境界と下方境界を設定できる。上方境界は、下方境界よりも大きな設定された距離として定義できる。例えば、上方境界は、戻り公式の上10行として定義でき、下方境界は、戻り公式の下5行として定義できる。
識別子モジュール210が現在の境界を設定した後に、識別子モジュール210は、現在の境界内の他の公式の位置を特定できる。戻り公式の周りまたはその近くに位置している他の公式は、戻り公式の派生物に含まれている可能性があるので、識別子モジュール210は、戻り公式と、他の公式の対応する一つとの間の距離を求めてもよい。距離を求めるための、任意の適切な方法が実装される。例えば、距離は、対応する他の公式から戻り公式までの公式の行数として判定でき、その際は、その間のテキスト(例えば、公式に関連する説明的なテキスト)の行数は考慮しない。代替的または追加的に、距離は、公式の行数と、対応する他の公式から戻り公式までのテキストの行数の両者に基づいて判定できる。代替的にまたは追加的に、距離は、ページが付けられている電子文書に対するページサイズのパーセンテージまたは分数として判定できる。
識別子モジュール210は、他の公式のそれぞれに対して距離を求めて、距離と、他の公式のそれぞれと戻り公式との間の類似性とに基づいてスコアを計算できる。例えば、識別子モジュール210は、フォーマット化公式と戻り公式との間の類似スコア(QC_S)の関数であり、戻り公式と他の公式の一つとの間の各類似スコアC(CO_Si)の合計であるトータルスコア(TS)を計算できる。例えば、トータルスコアを計算する数式は下記のようであってよい。
TS=QC_S*ΣCO_Si*(1/(1+exp(α*LFi+β*LTi))) (1)
ここでiはインデックスであり、expは、自然対数の底e(例えば、約2.71828)の、カッコ内で指定されている冪数であり、LFiは、i番目の他の公式から戻り公式までの公式の行数であり、LTiは、i番目の他の公式から戻り公式までのテキストの行数であり、αとβは、距離効果を調整するための負の定数因子である。
幾つかの実施の形態においては、識別子モジュール210は、公式の名前、知識のポイント、または専門用語のような関連コンテンツを、コンテンツサーバ115に記憶されている電子文書から戻り公式を特定して、戻り公式を囲んでいるテキストから、n−gramパターンを抽出することにより特定する。例えば、類似スコア閾値は、識別子モジュール210、学習者により設定でき、または予め設定することができ、またはデフォルト値であってよい。識別子モジュール210は、類似スコア閾値を超える類似性スコアを有する戻り公式に基づいて、選択された数学公式と類似の、または選択された数学公式と同じである戻り公式を特定できる。識別子モジュール210は、戻り公式それぞれに対して現在の境界を設定して、現在の境界内のテキストを検索できる。現在の境界は、公式の派生物を特定することを参照して上記に記述した方法と同じ方法で判定できる。テキストがセクションタイトルの一部であったり、またはテキストが強調されたりしている場合は、識別子モジュール210は、テキストにおける語句のそれぞれの重みを調整できる。例えば、重みは、タイトルの一部である語句、または強調されている語句は、公式の名前、知識のポイント、または専門用語と関連する可能性が高いことを反映するように調整できる。より特別には、タイトルの一部である語句、または強調されている語句の重みは、幾つかの実施の形態においては増加できる。識別子モジュール210は、調整された重みで検索されたテキストから、繰り返されるn−gramパターンを抽出できる。幾つかの実施の形態においては、識別子モジュール210は、n−gramパターンからストップ語句を除去する。例えば、識別子モジュール210は、「the」、「is」、「at」、および「on」のような機能語句を除去できる。識別子モジュール210は、ストップ語句が除去されたn−gramパターンから、閾値頻度を有するn−gramパターンを抽出できる。閾値頻度は、語句が戻り公式に関連しているために、語句が十分に共通しているという確率を確実に、または増大できる。例えば、戻り公式の名前を、類似公式の近くで特定できる可能性がある。
図3は、数学公式に対する公式の派生物と、数学公式に関連している関連コンテンツを特定する方法300の、一例としてのフロー図である。方法300は、その全体または一部を、図1の学習者アプリケーション111、121、図2の装置200、または他の適切な装置、サーバ、および/またはシステムの一つ以上により実現できる。方法300は、ブロック302において開始できる。
ブロック302において、第1電子文書に含まれている数学公式を受信できる。数学公式は、ユーザインタフェース、例えば、図2のユーザインタフェースモジュール202により生成されるユーザインタフェースを介して学習者により選択されたものであってよい。
ブロック304において、フォーマット化公式を、数学公式から生成できる。図2におけるフォーマットモジュール206は、フォーマット化公式を生成できる。フォーマット化公式は、数学公式が、第1電子文書においてどのように表現されているかに基づいて生成できる。例えば、数学公式の記号は、数学公式が、第1電子文書において画像として、ベクトルグラフィックとして、または他のデータオブジェクトとして含まれているかに従って、異なる方法で特定できる。フォーマット化公式を生成する一つの例としての方法を、図4に関して記述する。選択された数学公式と、異なる対応するフォーマット化公式のイラストが図5に例示されている。
ブロック306において、複数の数学公式において、フォーマット化公式と類似の、またはフォーマット化公式と同じである戻り公式を見つけることができ、この戻り公式は、前述した公式のインデックスを含むことができる。代替的にまたは追加的に、図2の類似性モジュール208は、戻り公式を見つけることができる。幾つかの実施の形態においては、フォーマット化公式をクエリとして使用して(セマンティック演算子ツリーのような)ツリーを構築して、規格化および一般化によりトークン化公式を生成し、戻り公式を特定するための公式のインデックスを検索することにより、戻り公式(またはこの戻り公式を含む複数の戻り公式)を見つけることができる。戻り公式を見つけるための、一例としての方法を、図6Aに関して記述する。戻り公式を見つける方法の、一例としてのイラストが図7A〜7Cに例示されている。戻り公式の、一例としてのイラストが、図8に例示されている。幾つかの実施の形態においては、公式のインデックスもまた、図2の類似性モジュール208により生成される。公式のインデックスを生成する、一例としての方法は、図6Bに関して記述される。
ブロック308において、公式の派生物を、戻り公式の派生物を含む少なくとも一つの他の電子文書から特定できる。例えば、現在の境界を戻り公式の周りに設定することができ、現在の境界内の他の公式は、戻り公式からの距離のそれぞれ、および戻り公式との類似性に基づいて特定できる。図2の識別子モジュール210は、図1のコンテンツサーバ115に記憶されている少なくとも一つの他の電子文書から公式のコンテンツを特定できる。公式の派生物を特定する、一例としての方法は、図9に関して記述される。戻り公式の派生物に含むことができる他の公式の、一例としてのイラストは、図10A〜10Cに例示されている。
ブロック310において、数学公式に関連する関連コンテンツを特定できる。図2の識別子モジュール210は、関連コンテンツを特定できる。関連コンテンツは、例えば、数学公式に関連する知識ポイントまたは用語を含むことができる。関連コンテンツを特定する、一例としての方法は、図11に関して記述される。関連コンテンツの、一例としてのイラストが、図12に例示されている。
図4は、数学公式からフォーマット化公式を生成する方法400の、一例としてのフロー図である。方法400は、その全体または一部を、図1の学習者アプリケーション111、121、図2の装置200、または他の適切な装置、サーバ、および/またはシステムの一つ以上により実現できる。方法400は、ブロック402において開始できる。
ブロック402において、電子文書を受信できる。例えば、図2のフォーマットモジュール206は、電子文書を受信できる。電子文書は、数学公式を含んでいる。ブロック402にはブロック404が続くことができる。
ブロック404において、数学公式が画像に含まれているかどうかが判定される。例えば、数学公式はジェイペグ(Joint PhotoGraphic Experts Group:jpeg)画像、ポータブルネットワークグラフィックス(Portable Network Graphics:png)画像、エグジフ(Exchangeable Image File Format:Exif)画像、ティフ(Tagged Image File Format:TIFF)画像、ロー(Raw Image Format:RAW)画像、またはビットマップ画像の一部であってよい。代替的または追加的に、電子文書は、.pdf文書または他のタイプの電子文書を含むことができ、数学公式は、例えば、スナップショットツールを使用して、数学公式の画像をキャプチャすることにより選択できる。図2のフォーマットモジュール206は、数学公式が画像に含まれているかどうかを判定できる。ブロック404にはブロック406(ブロック404において「YES」)が続くことができ、またはブロック408(ブロック404において「NO」)が続くことができる。
数学公式が画像に含まれている場合は、方法400はブロック406に進むことができ、そこにおいて、光学式文字認識が画像に対して行われ、数学公式の記号が特定される。図2のフォーマットモジュール206は、光学式文字認識を行うことができる。ブロック406にはブロック412が続くことができる。
数学公式が画像に含まれていない場合は、ブロック404にはブロック408が続くことができ、数学公式がベクトルグラフィックに含まれているかどうかが判定される。幾つかの実施の形態においては、図2のフォーマットモジュール206は、数学公式がベクトルグラフィックに含まれているかどうかを判定できる。ブロック408にはブロック410(ブロック408において「YES」)が続くことができ、またはブロック412(ブロック408において「NO」)が続くことができる。
数学公式がベクトルグラフィックに含まれている場合は、ブロック408にはブロック410が続くことができ、そこにおいて、ベクトルグラフィックは構文解析されて、数学公式の記号が特定される。例えば、図2のフォーマットモジュール206は、ベクトルグラフィックの構文解析を行うことができる。数学公式における記号が特定された後、ブロック412において、数学公式の記号は、フォーマット化公式として特定のフォーマットで保存される。幾つかの実施の形態においては、図2のフォーマットモジュール206は記号を保存する。フォーマット化公式は、クエリに含むことができる。数学公式が、画像にもベクトルグラフィックにも含まれていない場合は、数学公式は、すでにフォーマット化されている可能性があるので、数学公式の記号は、ブロック406と410に関して記述した処理なしで、ブロック412において、特定のフォーマットで保存できる。この、および他の実施の形態においては、フォーマット化された数学公式を、ラテック(LaTex)および数学マークアップ言語(Mathematical Markup Language:MathML)を含む文書マークアップ言語に含めることができる。これらの場合、記号は、対応するテキストから構文解析できる。
図5は、電子文書501から選択できる、一例としての数学公式のイラスト500である。数学公式505は、電子文書501から、前述したユーザインタフェースに含まれているツールにより選択できる。
数学公式505は、図4の方法400に従って処理して、対応するフォーマット化公式を生成することができ、その二つの例が、図5において510(以降、「第1フォーマット化公式510」)と、515(以降、「第2フォーマット化公式」)で例示されている。第1および第2フォーマット化公式510と515は、総称して、複数または単数で、複数の「フォーマット化公式510/515」または単数の「フォーマット化公式510/515」と称することができる。第1フォーマット化公式510はLaTextフォーマットである。第2フォーマット化公式515は、MathMLフォーマットである。より一般的には、数学公式505のような選択された数学公式から生成される、フォーマット化公式510/515のようなフォーマット化公式は、任意の適切なフォーマットを有することができる。数学公式505の記号は、図4の方法400に従って特定できる。
LaTexフォーマットによれば、\(バックスラッシュ)leftは、先行する変数の位置を示すことができる。この例においては、P\leftは、Pが第1変数であることを示すことができる。それに加えて、\overlineは、xの上にティルド(波型記号)を作成することを示すことができ、通常のスラッシュ(/)は、変数の間にラインを作成することができ、幾つかの変数は、語句で表現できる(例えば、「theta(シータ)」は、「θ」を描画できる)。
MathMLフォーマットによれば、<mi>要素は、識別子の存在を意味することができ、<mo>要素は、演算子の存在を意味することができ、<mfenced>要素は、コンテンツをフェンス、例えば、カッコで囲むことを示すことができる。<mrow>要素は、アイテムの水平行を示すことができ、<mover>要素は、式の上方のアクセント記号または極限を示すことができ、<munder>要素は、式の下方のアクセント記号または極限を示すことができる。
図6Aは、図4のフォーマット化公式と類似の、またはそれと同じである戻り公式を特定する方法600の、一例としてのフロー図を例示している。方法600は、その全体または一部を、図1の学習者アプリケーション111、121、図2の装置200、または他の適切な装置、サーバ、および/またはシステムの一つ以上により実現できる。方法600は、ブロック602において開始できる。
ブロック602において、図4のブロック412からのフォーマット化公式のようなフォーマット化公式を含むクエリを受信する。上記ですでに述べたように、フォーマット化公式は、図4のブロック402における電子文書のような電子文書から得られる。
ブロック604において、セマンティック演算子ツリーを構築できる。例えば、図2における類似性モジュール208は、数学公式を、ツリーの一つ以上のノードをトラバースすることにより再作成ができるように、演算子および変数からツリーを構築できる。例えば、X+Yは、XおよびYが子ノードで、+が親ノードであるツリーに構築できる。追加的または代替的に、他のタイプの演算子ツリーも作成できる。例えば、幾つかの演算子、例えば、乗算および加算については水平軸上で、および幾つかの演算子、例えば除算については垂直軸上で表現されるレイアウト表現ツリーを作成できる。
ブロック606において、規格化公式は、所定の規則に基づいてフォーマット化公式の順序を整理することにより、フォーマット化公式から生成できる。例えば、図2の類似性モジュール208は、フォーマット化公式を規格化できる。所定の規則は、例えば、減算、加算、乗算、および除算を含む演算子の順序を含むことができる。演算子の同じ順序を使用することにより、表面上は異なるように見える公式を、戻り公式と同じ、または戻り公式と類似していると特定できる。
ブロック608において、一般化公式は、変数をプレースホルダと置き換え、カッコ内の変数を結合して単一の変数を形成し、単一の変数をプレースホルダにより置き換えることにより規格化公式から生成できる。例えば、X+Yは*+*に一般化でき、A−Bは*−*に一般化でき、X×Yは*×*に一般化でき、X/Yは*/*に一般化できる。式がカッコ内のときは、その式は、単一の式に一般化できる。例えば、(X+Y)は*に一般化できる。幾つかの実施の形態においては、一般化公式は、数学公式をウェブページ上で描画するためのマークアップ言語を含むことができる。図2における類似性モジュール208は、一般化公式を生成できる。
ブロック610において、一般化公式およびツリーに基づいて、トークンを生成できる。例えば、図2の類似性モジュール208は、トークンを生成できる。トークンは、コンテンツとレベルのペアを含むことができ、コンテンツは、一般項および元々の項を記述し、レベルは、コンテンツに対するツリーにおける対応する位置を記述している。
ブロック612において、非一時的コンピュータ読み取り可能媒体に記憶されている公式のインデックスを検索して、トークンと類似の、またはトークンと同じである戻り公式を特定できる。図2の類似性モジュール208は、公式のインデックスを検索できる。トークンとトークン化された戻り公式との間の類似性は、同一の公式、または、それぞれが閾値類似性よりも大きい、トークン化公式との類似性を有している同一の複数の公式を含むことができる。例えば、類似性モジュール208は、トークン化された戻り公式が、使用されている演算子、記号などの順序が違うだけで、数学公式と類似、または、数学公式と同一である場合は、トークン化公式と一致すると判定できる。幾つかの実施の形態においては、トークンと、トークン化された戻り公式との間の類似性は、類似スコア閾値に基づくことができる。ブロック614において、トークン化された戻り公式は、トークンとの類似性に基づいてランク付けできる。代替的または追加的に、図2の類似性モジュール208は、トークン化された戻り公式をランク付けできる。幾つかの実施の形態においては、トークン化された戻り公式は、それらの類似性スコアに基づいてランクの高い順にランク付けすることができ、戻り公式616として出力できる。
図6Bは、オープン教育リソース652に含まれる数学公式から、公式のインデックスを作成する方法650の、一例としてのフロー図を例示している。方法650は、オープン教育リソース652の一部である電子文書を受信できる。電子文書は、図1におけるコンテンツサーバ115に記憶できる。ブロック654において、オープン教育リソースの一部である電子文書を、巡回して数学公式を特定することができる。例えば、図2における類似性モジュール208は、オープン教育リソース652を巡回できる。幾つかの実施の形態においては、類似性モジュール208またはコンテンツサーバ115は、例えば、pdfs、htmlなどの数学公式、文書マークアップ言語、画像、またはベクトルグラフィックで表現されている数学公式を共通して含んでいるフォーマットの電子文書を抽出する教育的クローラを含んでいる。電子文書は、オープン教育リソースから抽出でき、図1において例示されている記憶装置233に取り込むことができる。
ブロック656において、電子文書における数学公式を含む公式領域が特定される。幾つかの実施の形態においては、図2における類似性モジュール208は公式領域を特定できる。
ブロック658において、テキストの行は、特定された公式領域における公式の行から分割できる。例えば、類似性モジュール208は、テキストの行を、公式の行から分割できる。テキストの行は、数学公式を特定することを目的として、公式の行から分割できる。ブロック660において、フォーマット化公式を作成できる。例えば、図4の方法において記述されるステップは、フォーマットモジュール206により行われて、フォーマット化公式を作成できる。
ブロック662において、セマンティック演算子ツリーを、各フォーマット化公式に対して作成できる。各セマンティック演算子ツリーは、図2の類似性モジュール208により作成できる。ブロック664において、規格化公式は、所定の規則に基づいて、フォーマット化公式のそれぞれの順序を整理することにより、フォーマット化公式のそれぞれから生成できる。幾つかの実施の形態においては、図2の類似性モジュール208は、フォーマット化公式のそれぞれを規格化できる。
ブロック666において、一般化公式は、単独の変数をプレースホルダで置き換え、カッコ内の複数の変数を結合して、プレースホルダで単一の変数を形成することにより、規格化公式のそれぞれから生成できる。幾つかの実施の形態においては、図2の類似性モジュール208は、一般化公式を生成する。ブロック668において、トークンが、一般化公式とツリーに基づいて生成される。図2の類似性モジュール208はトークンを生成できる。
ブロック670において、トークンは、非一時的コンピュータ読み取り可能媒体に含まれる公式のインデックスに記憶できる。例えば、トークンは、図2の記憶装置233に記憶できる。幾つかの実施の形態においては、図6Bにおける公式のインデックスは、図6Aのブロック612で検索された公式のインデックスと同じである。
図7Aは、同じ数学公式(X+Y)*(a/b)を表している、一例としてのツリー700を例示している。レイアウト表現ツリー702は、加算および乗算演算子に関連する変数の水平表現と、除算演算子に関連する変数の垂直表現を含むことができる。セマンティック演算子ツリー704は、数学公式を再作成するために、子ノードから開始する順序付けられたトラバーサルとしてツリーをトラバースすることができる。例えば、まず、左側のサブツリーをトラバースして(X+Y)を作成する。そして、右側のサブツリーをトラバースして(a/b)を作成する。最後に、二つのサブツリーを結合して(X+Y)*(a/b)を作成する。
二つのツリー702と704は同じ数式を表現しているが、二つのツリーのそれぞれの対応するMathML表現706または708は異なっている。例えば、レイアウト表現ツリー702のMathML表現706は(X+Y)*を行に編成して、変数の前に除算演算子を表示する。これと比較して、セマンティック演算子ツリー704のMathML表現708は、セマンティック演算子ツリー704が編成される方法に類似している方法で数学公式を編成する。
図7Bは、一例としての規格化公式710を例示している。この例において、C×V+CとC+C×Vは、順序が異なるが同じ公式である。所定の規則が、数学公式に適用されると、数学公式は、必要であれば順序を再配置することで、C+C×Vと規格化できる。幾つかの実施の形態においては、図2の類似性モジュール208は、演算順序の規則を適用して、数学公式をどのように規格化するかを判定する。
図7Cは、一例としての一般化公式720を例示している。この例においては、各変数はアスタリスクで置き換えられており、アスタリスクは、任意の変数に対するプレースホルダを表現している。それに加えて、複数の変数がカッコ内でグループとしてまとめられている場合は、変数は、単一のプレースホルダと関連付けて簡略化できる。例えば、第1行の(X+Y)は*として表現できる。
図7Dは、異なる関数プログラミング言語における、類似コードの断片735および740の例730を例示している。幾つかの実施の形態においては、ある関数プログラミング言語におけるコードまたは式は、構造を数学公式の一部として含むことができる。結果として、コードまたは式は、類似の構造において表現できる。類似性モジュール208は、戻り公式を特定できることに加えて、類似コードの断片も特定できる。この例においては、コードの断片735は、リスプ(LISP)関数プログラミング言語で記述され、コードの断片740は、ハスケル(Haskell)関数プログラミング言語で記述されている。他の、一例としての関数プログラミング言語としては、アーラン(Erlang)がある。
LISPのコードの断片735は、数学公式がポーランド(Polish)表記法で処理される場合の例を含んでいる。例えば、第1行は、関数(lambda(arg)(+arg1))を確立している。この関数は、それを関数定義に渡すことで呼び出せる。第2行は、関数定義defunの例を含んでいる。第3行は、1、2、3、a、5及び6を追加する追加手順を使用している。
コードの断片740のHaskellでの関数コーディングは、タイプクラスのインテグラル(整数)、フラクショナル(小数)、およびフローティング(浮動小数)、およびクラスの各タイプと関連付けられているクラスメソッドを含んでいる。例えば、インテグラルクラスは、quot、rem、div、mod、quotRem、divMod、およびtoIntegerのクラスメソッドを含んでいる。Quotは、整数の除算で、余りは0に切り捨て、remは整数の除算で、余りは、被除数の符号を有しており、divは整数の除算で、余りは、負の無限大に切り捨て、quotRemは、被除数と除数を引数として、(商、余り)のペアを返し、divModは、被除数と除数を引数として、(div,mod)のペアを返す。
図8は、図5の数学公式505と類似の、または数学公式505と同じである戻り公式803A〜803C(以降、まとめて「類似公式803」)の例800を例示している。戻り公式803のそれぞれは、対応する教育ウェブサイト805A〜805C(以降、まとめて「教育ウェブサイト805」)に含むことができる。数学公式505は、前記で検討したように、クエリとして選択できる。図6Aにおいて記述した方法600のような方法は、戻り公式803が数学公式505と類似している、または数学公式505と同じであると特定するために実行できる。例えば、数学公式505と比較して、戻り公式803のそれぞれは、区間の存在、および変数に対する、少なくとも幾つかの異なる記号のように、違いの少ない同じ基本レイアウトを含んでいる。
図9は、公式の派生物を特定する方法900の、一例としてのフロー図を例示している。一般的に、数学公式の派生物は、対応する学習教材(例えば、教育ウェブサイト、教科書など)内で、数学公式に近接している位置で特定できることがよくある。従って、公式の派生物は、下記に、より詳細に記述するように、他の公式の、対応する戻り公式からの距離と、他の公式の、対応する戻り公式との類似性に基づいて特定できる。方法900は、その全体または一部を、図1の学習者アプリケーション111、121、図2の装置200、または他の適切な装置、サーバ、および/またはシステムの一つ以上により実現できる。方法900は、ブロック902において開始できる。
ブロック902において、戻り公式の位置が、少なくとも一つの電子文書において特定される。幾つかの実施の形態においては、図2の識別子モジュール210は、戻り公式の位置を、図1におけるコンテンツサーバ115の対応する一つにより生成および/または管理される少なくとも一つの電子文書において特定する。例えば、戻り公式は、図1のコンテンツサーバ115の一つにより管理されている.pdf文書において位置を特定できる。
ブロック904において、少なくとも一つの電子文書にページが付けられているかどうかが判定される。例えば、図2の識別子モジュール210は、少なくとも一つの電子文書にページが付けられているかどうかを判定できる。少なくとも一つの電子文書にページが付けられている場合は(ブロック904において「YES」)、ブロック908において、現在の境界を、少なくとも一つの電子文書の現在のページに基づいて、戻り公式の周りに設定でき、ここにおいて、現在のページとは、戻り公式を含んでいる、少なくとも一つの電子文書のページのことである。幾つかの実施の形態においては、図2の識別子モジュール210は、現在のページに基づいて現在の境界を設定できる。例えば、戻り公式が現在のページの最初に位置している場合は、識別子モジュール210は、前のページのすべてまたは一部を現在の境界の一部として含むことができ、および/または現在のページのすべてまたは一部を含むことができる。戻り公式が、少なくとも一つのページ境界で分割されている公式の一連の連続する、または実質的に連続する行に含まれている場合は、現在の境界を、公式の一連の連続する、または実質的に連続する行のすべてを含むために複数のページをカバーするように拡張できる。幾つかの実施の形態においては、一連の連続する、または実質的に連続する公式の閾値量を、現在の境界内に含むことができる。ブロック908には、下記に検討するブロック910が続くことができる。
幾つかの実施の形態においては、少なくとも一つの教育ウェブサイトにページが付けられていない場合は(ブロック904において「NO」)、ブロック906において、上方境界と下方境界を設定して、戻り公式の周りに現在の境界を設定できる。幾つかの実施の形態においては、現在の境界は、上方境界と下方境界を含み、上方境界は、下方境界よりも長い、設定された距離である。例えば、上方境界を10行、15行、または他の数の行だけ戻り公式の上方に設定でき、下方境界を、5行、7行、または他の数の行だけ戻り公式の下方に設定できる。代替的または追加的に、戻り公式が、公式の一連の連続する、または実質的に連続する行において、ページが付けられていない教育ウェブサイト内に含まれている場合は、上方および下方境界を、公式の一連の連続する、または実質的に連続する行の最初および/または最後を含むために、十分な行数だけ拡張できる。ブロック906にはブロック910を続くことができる。
ブロック910において、少なくとも一つの教育ウェブサイトにおける現在の境界内の他の公式の位置を特定できる。例えば、図2の識別子モジュール210は、現在の境界内の他の公式の位置を特定できる。他の公式を教育ウェブサイト全体で検索せずに、他の公式を現在の境界内に位置している公式に制限することにより、処理オーバーヘッドを有利に削減できる。戻り公式が、一連の連続する、または実質的に連続する公式に含まれている場合は、現在の境界内に位置している他の公式は、一連の連続する、または実質的に連続する公式に含まれている戻り公式以外の任意の公式を含むことができる。
ブロック912において、他の公式のそれぞれに対して、戻り公式と、他の公式の対応する一つとの間の距離を求めることができる。例えば、図2の識別子モジュール210は、他の公式のそれぞれに対して距離を求めることができる。代替的または追加的に、図9には例示されていないが、方法900は追加的に、他の公式のそれぞれに対して、戻り公式と他の公式の対応する一つとの間の類似性を計算することを含むことができる。ブロック914において、戻り公式に関連する、公式の派生物に対するスコアが、他の公式のそれぞれと、戻り公式との間の距離および類似性に基づいて計算できる。幾つかの実施の形態においては、図2の識別子モジュール210は、スコアを計算できる。スコアは、クエリにおける戻り公式とフォーマット化公式との間の類似スコアQC_Sと、戻り公式と他の公式のそれぞれとの間の類似スコアCO_Siの両者に基づく、上記に検討したトータルスコアTSを含むことができる。幾つかの実施の形態においては、複数の戻り公式のそれぞれと関連付けられた公式の派生物に対するトータルスコアは、図9の方法900に従って判定でき、関連する公式の派生物は、それらのトータルスコアに従ってランク付けできる。トータルスコアおよび/またはランキングが高いほど、学習者に、対応する戻り公式の派生物のような、適切な公式の派生物を含む可能性がより高い、それらの関連する公式の派生物を示すことができる。各戻り公式は、選択された数学公式と類似、または選択された数学公式と同じであってよいが、戻り公式の派生物は、学習者により、選択された数学公式の派生物について学習するために調べることができる。
図10Aは、図8の戻り公式803の一つの派生物に含まれていると判定された公式1005の例1000を例示している。特に、公式1005は、戻り公式803Aの派生物に含まれていると判定される。戻り公式803Aに関して、公式1005は、図9の状況において検討された「他の公式」の一つの例である。この例においては、公式1005は、戻り公式803Aに近い(例えば、戻り公式803Aからの距離が短い)。特に、公式1005は、戻り公式803Aからの距離が1行である。公式1005と戻り公式803Aとの間の唯一の違いは、公式1005が、戻り公式803Aと比較して、余分なx変数を含んでいることである。公式1005と戻り公式803Aとの間の相対的に小さな距離および類似性に少なくとも基づいて、公式1005は、戻り公式803Aの派生物に含まれると判定できる。
図10Bは、図8の戻り公式803の一つの派生物に含まれると判定された別の公式1015の例1010を例示している。特に、公式1015は、戻り公式803Bの派生物に含まれると判定できる。戻り公式803Bに関して、公式1015は、図9の状況において検討した「他の公式」の一つの例である。この例においては、公式1015は、戻り公式803Bからの距離が3行である。公式1015と戻り公式803Bとの間の唯一の違いは、公式1015におけるp(y|y,θ)が、戻り公式803Bにおいてはp(y|θ)と短縮されていることである。公式1015と戻り公式803Bとの間の相対的に小さな距離および類似性に少なくとも基づいて、公式1015は、戻り公式803Bの派生物に含まれると判定できる。
図10Cは、図8の戻り公式803の一つの派生物に含まれることを拒絶された公式1027の例1020を例示している。特に、公式1027は、戻り公式803Cの派生物に含まれないと判定される。戻り公式803Cに関して、公式1027は、図9の状況において検討した「他の公式」の一つの例である。この例においては、公式1027は、戻り公式803Cからの距離が1行である。戻り公式803Cに対する、公式1027の相対的に近い近接性にも拘わらず、図10Cから明白なように、公式1027と戻り公式803Cとの間の類似度は相対的に低い。従って、戻り公式803Cと公式1027との間の差は、公式1027が、戻り公式803Cの派生物に含まれることを拒絶されるのに十分なほど大きい。例えば、公式1027および/または、公式1027を含み、戻り公式803Cを囲む現在の境界内の一つ以上の他の公式からの距離およびそれらとの類似性に基づいて、戻り公式803Cに対して計算されるトータルスコアTS(上記の検討参照)は相対的に低い。
図11は、数学公式に関連する関連コンテンツを特定する方法1100の、一例としてのフロー図を例示している。数学公式は、学習者により選択され、それに対して学習者が、より多くの情報を所望している数学公式を含むことができる。上記の検討と類似して、数学公式を、下記に続く検討において都合のよいように、「選択された数学公式」と称することができる。代替的または追加的に、方法1100は、図4の方法400のような、任意の適切な方法に従って、選択された数学公式に対して生成できるフォーマット化公式を含むことができる。方法1100は、その全体または一部を、図1の学習者アプリケーション111、121、図2の装置200、または他の適切な装置、サーバ、および/またはシステムの一つ以上により実現できる。方法1100は、ブロック1102において開始できる。
ブロック1102において、類似スコア閾値を設定できる。図2の識別子モジュール210は、類似スコア閾値を設定できる。代替的または追加的に、類似スコア閾値はデフォルト値に設定でき、学習者の入力に基づいて設定でき、および/または機械学習に基づいて設定できる。
ブロック1104において、フォーマット化公式と類似の、またはフォーマット化公式と同じであり、類似スコア閾値を超える類似性スコアを有し、類似公式を含む戻り公式を特定でき、戻り公式のそれぞれは、対応する電子文書において出現する。幾つかの実施の形態においては、図2の識別子モジュール210は戻り公式を特定し、戻り公式のそれぞれは、図2におけるコンテンツサーバ115の少なくとも一つにより生成された、対応する電子文書において出現する。
ブロック1106において、対応する電子文書における戻り公式のそれぞれに対して現在の境界を設定できる。図2における識別子モジュール210は、現在の境界を設定できる。現在の境界は、例えば、図9に関して記述したように、戻り公式のそれぞれに対して設定できる。ブロック1108において、戻り公式のそれぞれに対して、対応する電子文書の現在の境界内においてテキストを検索できる。テキストは、戻り公式の対応する一つを記述することを支援できる知識ポイントまたは専門用語を含むことができる。図2の識別子モジュール210は、テキストを検索できる。
ブロック1110において、セクションタイトルの一部、または強調されている、検索されたテキストに含まれる各語句の重みを調整できる。例えば、セクションタイトルの一部である語句、または強調されている語句は、戻り公式に関連する知識ポイントまたは専門用語である可能性が高い。代替的または追加的に、識別子モジュール210は、セクションタイトルの一部、または強調されている、検索されたテキストに含まれている各語句の重みを調整できる。
ブロック1112において、調整された重みで検索されたテキストからの繰り返されるn−gramパターンを抽出できる。図2の識別子モジュール210は、繰り返されるn−gramパターンを抽出できる。ストップ語句を、管理者により、または通常容認されているストップ語句のリストに基づいて定義できる。ブロック1114において、ストップ語句をn−gramパターンから除去できる。例えば、図2の識別子モジュール210は、n−gramパターンからストップ語句を除去できる。ブロック1116において、閾値頻度を有するn−gramパターンを、除去処理されたn−gramパターンから抽出できる。幾つかの実施の形態においては、図2の識別子モジュール210は、閾値頻度を有するn−gramパターンを抽出できる。
図12は、関連コンテンツの例のイラスト1200である。例えば、図2の識別子モジュール210および/または他のモジュールは、教育ウェブサイト805における戻り公式803を特定でき、または、図11の方法1100を実行して、学習者が関心を持つ、選択された数学公式に関連付けることができる戻り公式803に関連する知識ポイントまたは専門用語を特定できる。図12のイラスト1200においては、識別子モジュール210は、「事後予測分布」が、戻り公式に関連する専門用語1200であることを、少なくとも、専門用語1200がn−gramパターンの一部であり、また、ページのうちの一つのページではタイトル中に存在していることに基づいて特定できる。
ここにおいて記述された実施の形態は、下記に、より詳細に検討されるように、種々のコンピュータハードウェアまたはソフトウェアモジュールを含む特定用途または汎用コンピュータの使用を含むことができる。
ここにおいて記述された実施の形態は、記憶されているコンピュータ実行可能命令またはデータ構造を保持または有するコンピュータ読み取り可能媒体を使用することにより実現できる。そのようなコンピュータ読み取り可能媒体は、汎用または特定用途コンピュータによりアクセスできる任意の利用可能な媒体であってよい。一例としては、そのようなコンピュータ読み取り可能媒体は、ランダムアクセスメモリ(Random Access Memory:RAM)、リードオンリメモリ(Read-Only Memory:ROM)、電気的消去可能型プログラマブルリードオンリメモリ(Electrically Erasable Programmable Read-Only Memory:EEPROM)、コンパクトディスクリードオンリメモリ(Compact Disc Read-Only Memory:CD-ROM)または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶装置、フラッシュメモリ装置(例えば、固定回路記憶装置)、または、コンピュータ実行可能命令またはデータ構造の形式の所望のプログラムコードを保持または記憶するために使用でき、汎用または特定用途コンピュータによりアクセスできる任意の他の記憶媒体を含んでいる実体的コンピュータ読み取り可能記憶媒体を含むことができる。上記の組合せもまたコンピュータ読み取り可能媒体の範囲内に含めることができる。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、特定用途コンピュータ、または特定用途処理装置(例えば、一つ以上のプロセッサ)に、ある機能または機能群を行わせる命令およびデータを含むことができる。主題を、構造的特徴および/または方法論的動作に関して特定の言語において記述してきたが、付随する請求項において定義される主題は、上記に記述した特定の特徴または動作に必ずしも制限されないということは理解されるべきである。上記に記述した特定の特徴および動作は、請求項を実現する、一例としての形式として開示されている。
ここにおいて使用されているように、「モジュール」または「構成要素」という用語は、モジュールまたは構成要素の動作、および/または、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読み取り可能媒体、処理装置など)上に記憶でき、および/または、それにより実行できるソフトウェアオブジェクトまたはソフトウェアルーチンを行うように構成されている特定のハードウェア実現形態のことを指すことができる。幾つかの実施の形態においては、ここにおいて記述されている異なる構成要素、モジュール、エンジン、およびサービスは、コンピューティングシステム上で実行される(例えば、別個のスレッドのような)オブジェクトまたはプロセスとして実現できる。ここにおいて記述されるシステムおよび方法の幾つかは、全体的に、ソフトウェア(汎用ハードウェア上に記憶され、および/または、それにより実行される)において実現されるものとして記述されたが、特定のハードウェアインプレメンテーションまたはソフトウェアと特定のハードウェアインプレメンテーションの組合せもまた可能であり、想定される。本記述においては、「コンピューティングエンティティ」は、ここにおいて以前に定義したような任意のコンピューティングシステムであってよく、またはコンピューティングシステム上で動作する任意のモジュールまたはモジュールの組み合せであってよい。
ここにおいて詳説されたすべての例および条件付き言語は、教示的な目的を意図したものであり、発明者により技術を促進するために貢献された本発明および概念を読者が理解することを支援するものであり、そのような特定の詳説された例および条件に制限されるものではないと解釈されるべきである。本発明の実施の形態を詳細に記述したが、本発明の精神および範囲から逸脱することなく、種々の変化、置換、および変更を、それらに対して行うことができるということは理解されるべきである。