数理解析研究所講究録
1169 巻 2000 年 97-101

97

Handwriting Interface for Computer Algebra System$-$ イス––数式処理システムの手書き入力インターフ ”

九州大学大学院

数理学研究科岡村博文
金堀利洋

福岡教育大学

教育学部

叢偉

1

はじめに今日のネットワークやコンビ$\supset_{-}-\text{タ}$の加速的な進歩に伴い、 その用途はあらゆる分野に広がっている。 数学においても例外ではなく、 単なる計算だけに留まらず様々な可能性が考えられている。 例えば、 数式処理システムや数式のデータベースに接続した電子ボードなど数学の授業や講義の新しいスタイルを生み出すかもしれない。 また、 それに歩調を合わせるかのように、$\mathrm{I}\mathrm{E}\mathrm{X}$や MathML といった各種数式フォーマッ

ト、 Mathematica のような数式処理システム、 各種ワープロに付属の数式入力機能など、 コンピ$\not\subset-\text{タ}$上で数式を扱う環境も開発されて来ている。
しかし、 現在、 これらの環境を用いてもコンピ\not\subset 1 $-P$ 上で数式を扱うのはまだまだ簡単であるとは言えな
い $([1][2])$ 。先ず、 数式の入力方法に関して言えば、

どは、 メニ$\supset-$

Mathematica や各種ワープロに付属の数式入力機能な一ボタンなどによる入力操作を繰り返さなければならず、 その煩わしさがスムーズな入力を妨げ、 ユーザの思考の流れを中断させる可能性が高い。

$\mathrm{E}X$や MathML などは数式をスムーズに入力できるが、使いこなせるようになるまで相当な修練が必要とされる。 また、 入力された数式の意味を $-$ 目見ただけで把握することが難しく、 入力の誤りを数式を見ながら訂正することができないという事も挙げられるだろう。
また、 これらのアプリケーション間の互換性の問題も挙げられる。 TEX による数式を MathML に変換しネットワーク上で処理したり、 MathML による数式を数式処理システムで計算することも必要となるだろう。 1 入や MathML の自動点訳、 自動読み上げのアプリケーションも目の不自由な人たちにとって必要不可欠なものになっている。 しかし、 このような数式変換プログラムを様々な数式フォーマットの組み合わせの数ほど開発するには大変な時間と労力が必要となる。
我々は、 この問題を解決するために、 手書き数式入力インターフ$\sigma \mathrm{L}$イスを開発した ([4])。このシステムはリアルタイムで手書き数式を認識し、 自動的に書き換えを行うインタラクティブな手書き数式インターフェイスと、 様々なフォーマットに対応し、 数式の視覚的な編集を可能とするエディタからなる。 そして、その効果を見るために、 数式処理システムである Mathematica に MathLink を通して接続したシステムを開発した。
以下、 そのシステムについて述べる。

2

本システムについて
本システムの基本的な機能は以下のとおりである。

98. ユーザーは、 マウス、 データタブレット、 ペンディスプレイなどを用いて手書きで数式入力することができる。 (図 2-). 手書きで入力された数式は、活字体で表示される。 (図 2-$\mathrm{o}\mathrm{K}$

ボタンを押すことにより構文認識され、 本システムのメインボードに). メインボードに表示された数式は、 切り取り、 コピー、 貼り付けといった基本的な編集機能により、 簡単に編集することができる。 (図 2- ). メインボードに表示された数式を Mathematica で計算することができる。 (図 2- ) この機能は、 MathLink を用いたデータの受け渡しにより実現している。 計算のメニ$=$一は、 それぞれ Mathematica のコマンドに対応している。

. Mathematica による計算結果はメインボードの至る所に貼り付けることができ、 表示されている他の数式と同じように編集できる。 (図 2- ). メインボードに表示された数式の正確なグラフを表示することができる。 (図 2- ). 本システムは、 手書き入力だけでなく、$\mathrm{I}\mathrm{f}\mathrm{f}\mathrm{l}_{\text{、}}$

MathML による数式フォ一マットからの入出力もサポートしている。

図 1: 本システムの全体図

3

手書き数式入力インターフェイス

ユーザーは、 本システムに手書きで数式を入力することができる。 この章では、 この手書き数式入力イン
ターフ イスについて述べる。 ここで用いている文字認識の手法については、 論文 [3] を見られたい。
$\iota$3.1仕様

現在、 本システムでは、 分数、 根号、 極限、 級数、 積分などを含む、 高校または大学初年度の授業で扱われる数式を認識対象としている。 使用する文字や記号の種類もその範囲でよく使われるものに限定している。 アルファベット、 数字、 使用頻度の多いギリシャ文字、 積分記号などの特殊文字、 演算子などが認識対象文字となる。
また、 高校でも行列は使われるが、 今回は認識対象外とする。 表示があまり複雑でない限り、分数、 添え字などの入れ子の構造にも対応している。

32

数式認識 (逐次認識方式)

本システムの最大の特徴は、 全体の数式を書き終えてから文字認識や数式認識を行うのではなく、 ペンを離す度に文字認識を実行し、 文字 (或いは記号) として認識したら直ちに、 整形された文字に書き直し、99位置を調整して表示してしまう点にある。 これを逐次認識方式と呼ぶ。
数式認識では、 入カストローク列の文字・記号の単位の切り出しや文字認識の誤り、 数式構文中の位置判定の誤りが数式全体の認識を破壊してしまうことが多く、 その修正が著しく困難である。 また、 数式の書き直しや整形に神経を裂かれることは、 書き手の思考の中断を生み出すことになり、 スムーズな入力の大きな障害になる。

こうした困難に対する解答が上述の逐次認識方式である。
この方式により、 以下の効果が望める。

1. 文字が書かれる毎に、 きれいな文字に位置も調整して書き直されるので、 誤認識が起きたときには直ちに修正することができる。 また、 添え字は、 小さく添え字位置に表示されるため、 添え字判定の誤りも直ちに修正できる。 修正方法としては、 削除による書き直しだけでなく、 1 クリックによる第 3 位までの認識候補の切り替えも用意している。

2. 逐次、 文字の大きさや位置が調整されて書かれてい図 2: 逐次認識方式による自動書き換え

くため、 数式構文認識の誤りが非常に少なくなる。

3.3

入カルール
本システムでは、 同じ形を持つ文字の識別($C_{\text{、}}c$など) に関して、 次の表のような入力規則を設けている。 表の下段の小文字のの 1 は、 それぞれ数字の$9_{\text{、}}$$q_{\text{、}}$

数字絶対値記号と識別するためのものである。
また、 数字の関しては、 常に第 2 候補、$\mathit{0}$$0_{\text{、}}$$0$

大文字の$O_{\text{、}}$

小文字のを第 3 候補として出力するように汎用入出力インターフェイス
本システムでは、 独自に開発した内部形式で表された数式を画面表示することにより、 数式を視覚的に扱うことが可能である。
また、 各種数式フォーマットからの入出力機能 (インタプリ久コンバータ) を備えている。 インタプリタは数式フォーマットによる数式を内部形式に変換し、 コンバータは内部形式を数式フォーマットによる数式に変換する。 それらは、 汎用性のある構造になっており、 文法を記述したリソースと簡単な仮想関数の書き換えによって、 様々な数式フォーマットに対応することが可能である。 各種数式フォーマットに対応したインタプリタやコンバータを必要に応じてサポートしていくことにより、 数式フォーマット間の変換アプリケーションの開発コストの削減につながる (図 3)。にを認識結果の第 1 候補、 $O$ をしている。

4$\mathit{0}$

図 3: システムの概要

100
4.1

数式の内部形式

数式の内部形式は、 数式の再帰構造を実現する独自のクラス構造で表された形式である。 このクラス設計には、 オブジエクト指向ソフトウエアを設計する上で頻繁に再利用されるデザインパターンの 1 つである

Composite パターンを適用させている ([6])。 Composite パターンは、 オブジェクトを再帰的な木構造に組み立てることを可能にするデザインパターンであるため、 数式の内部形式の実現に適していると考えられる。 この木構造の実現により数式全体とその部分数式とを–様に扱うことが可能になるので、 編集、 数式フォ一マットへの変換などがより簡単に行えるようになる。
また、 新しい数式の構造を簡単に追加できる設計になっているため、 今回未対応である行列の構造を追加することも容易に行うことができる。

4.2

コンバータ

コンバータは、 内部形式により表される数式の木構造から各種数式フォ一マットによる数式文字列への変換を行う。
このクラス設計には、 デザインパターンの 1 つである Builder パタ一’ を適用させている ([6])。 Builder
パターンは、 変換の過程を各種数式フォ一マットに依存せずに行うことができるため、 汎用性のあるコンバータを実現するために採用した。 これにより、 新しい出力フォ一マットへの対応が、 各文字、 記号の変換を記述したリソースといくつかの数式の構造を変換する仮想関数の書き換えによって実現することができる。

4.3

インタプリタインタプリタは、 数式フォ一マットによる数式の構文を解釈し、 その結果生成された構文木から内部形式への変換を行う。

数式の文法を文脈自由文法で表し、 その文脈自由文法を解釈するブッシ ダウンオートマトンをインタプリタの実現に適用させている ([5])。文脈自由文法は、 一般的に言語モデルとして使われ、 数式のような再$\mathrm{n}$帰的な構造を表すことができるので、 構文を記述する文法として採用した。
インタプリタは、 ある数式フォ一マットの文法を記述したリソースを読み込むことにより、 その数式フォ $-$マットを解釈するオートマトンに変化する。 これは、 文脈自由文法からプッシ$\epsilon 1$ダウンオートマトンを生成する方法に従って、 数式構文解釈オートマトンが自動生成される仕組みになっているからである。 そのため、 新しい入力フォ一マットへの対応は、 そのフォ一マットの文法を記述したリソースと各フォ一マットに依存するいくつかの仮想関数の書き換えによって実現することができる。 現時点では、 TeX$\text{、}\mathrm{M}\mathrm{a}\mathrm{t}\mathrm{h}\mathrm{M}\mathrm{L}_{\text{、}}$

Mathematica との数式のデータ通信を可能にするインタプリタ、 コンバータが実現しており、 目下、 点字インタプリタ、 コンバータも作成中である。

5

最後に我々は、 手書き数式入カインターフエイスを持った数式エディタを開発し、 MathLink により、 数式処理システム (Mathematica) へのアクセスを実現した。 本システムでは、 ペンによる数式の作成、 編集ができ、 必要であれば Mathematica で計算することが可能である。

更に、 コンピ$\supset_{\wedge}-P$上の数式を視覚的に編集する機能、 各種数式フォ一マット間の変換機能も実現した。

インタプリ久 コンバータは、 必要な情報を記述したリソースと簡単な仮想関数の書き換えによって、 様々な数式フォ一マットへの対応を可能にする汎用性のあるクラス設計になっている。

101
参考文献
[1] D. Blostein and A. Grbavec, “Recognition of Mathematical Notation”, Handbook of Character Recgnition and Document Image Analysis, (1997) 557-582[2] T. Sakurai, Y.Zhao, H. Sugiura and T. Torii, “A Ront-end Tool for Mathematical Computationand Education in a Network Environment”, Proc. 3rd. Asian Technology Conference in Mathematics,Springer (1998) 197-205[3] R. Fukuda, I. Sou, M. Xie, F. Tamari and M. Suzuki, “A Technique of Mathematical Expression Structure Analysis for the Handwriting Input System”, Proc. 5th. International Conference on DocumentAnalysis and Recognition, (1999) 131-134[4] H. Okamura, T. Kanahori, W. Cong, R. Fukuda, F. Tamari and M. Suzuki, “Handwriting Interfacefor Computer Algebra Systems”, Proc. 4th. Asian Technology Conference in Mathematics, December(1999) 291-300[5] 都倉信樹著, “オートマトンと形式言語”, 昭晃堂 (1995)[6] Erich Gamma, Richard Helm, Ralph Johnson 著, 本位田真–, 吉田和樹監訳, “オブジエクト指向における再利用のためのデザインパターン”, ソフトバンク株式会社 (1995)