JPH01302484A - 情報処理方法及び装置 - Google Patents

情報処理方法及び装置

Info

Publication number
JPH01302484A
JPH01302484A JP63131338A JP13133888A JPH01302484A JP H01302484 A JPH01302484 A JP H01302484A JP 63131338 A JP63131338 A JP 63131338A JP 13133888 A JP13133888 A JP 13133888A JP H01302484 A JPH01302484 A JP H01302484A
Authority
JP
Japan
Prior art keywords
character
characters
formula
recognition
code string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP63131338A
Other languages
English (en)
Other versions
JP2984275B2 (ja
Inventor
Eisaku Tatsumi
栄作 巽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP63131338A priority Critical patent/JP2984275B2/ja
Publication of JPH01302484A publication Critical patent/JPH01302484A/ja
Application granted granted Critical
Publication of JP2984275B2 publication Critical patent/JP2984275B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Calculators And Similar Devices (AREA)
  • Character Discrimination (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は数式認識装置、特に手書きによる数式を入力す
ると、数式を認識してコード列として出力すると共に入
力された数式による計算を行う数式認識装置に関するも
のである。
[従来の技術] 従来、計算機等における数式の入力装置は、通常側々の
数字及び演算子等に対応するキーによって構成される。
又、最近では手書き文字の認識手段を備え、手書きによ
って入力された数字及び演算子等の文字コードを認識す
る機能をもつ数式の入力装置も存在する。上記いずれの
入力装置を用いた計算機においても、演算部等で処理を
行う場合には、入力されたキーまたは文字コードを順に
解析することによって行っている。
[発明が解決しようとする課題] しかしながら、上記従来例におけるキーによる数式の入
力はキーの扱いに不慣れな人にとって操作しにくいとい
う欠点があった。
また、計算機における数字や演算子等が入力された順序
にのみ基づく数式の処理のためには、人間が紙等に数式
を書く場合に大切な要素である数字、演算子等の位置関
係や大きさについての情報を入力することができないの
で、予め人間が計算の順序を工夫したり特殊な記号を入
力したりといった変換を行ってから入力しなければなら
ないといった欠点があった。
又、SIN、LOG等の文字を認識する際、“I”と“
1”、“0“と、“0”が区別出来ないため、“I”や
“→“のように特殊な表現≠表わすが、このような表現
を使用者に強いるのははなはだ無理がある。
更に、三角関数を導入しようとすると単位系の指定を予
め行う必要が生じるが、従来の一般電卓と同じように予
め単位系を指定する方法では、手書きの特徴を生かせず
、使いづらいものとなる。
また、予め指定した単位系と画面上に表示している数式
で使うべき単位系がくい違ってしまい、それが使用者に
知られない可能性がある0例えば、ラジアン単位系とし
ておきながら、5IN60°と入力すると、60の0乗
のラジアンSINをとり、答は0.8415となってし
まう、ちなみにデグリー単位系で5IN60’は0.8
66である。
本発明は、上記従来例の欠点を除去し、紙等に書かれた
数式をそのまま認識して、コード列として出力すると共
に数式に従って計算を行う数式認識装置を提供する。
より詳細には、SIN、LOG等の関数をも正確に認識
し、画面に書いた使用者の意図に正確に且つ自動的、に
単位系を選択し、正確な答を計算するようにしたもので
ある。
[課題を解決するための手段] この課題を解決するために、本発明の数式認識装置は、
数字及び記号を含む文字からなる数式を座標で入力する
座標入力手段と、該座標入力手段により入力された座標
の集合に基づいて、前記数字及び記号を含む文字を認識
する文字認識手段と、文字列内の文字の組み合わせに従
って、関数を認識する関数認識手段と、前記座標入力手
段により入力された座標と、前記文字認識手段及び関数
認識手段による認識結果とに基づいて、前記数式を認識
し所定のコード列で出力する数式認識手段とを備える。
又、関数認識手段は、文字列内の文字の組み合わせに従
って、類似文字を置換する置換手段を備える。
又、認識された関数の単位系を認識する単位系認識手段
を更に備える。
[作用] かかる構成において、座標入力手段から座標で入力され
た数式を、文字認識手段で数式を形成する数字及び記号
を含む文字を認識し、関数認識手段で文字列内の文字の
組み合わせに従って関数を認識し、数式認識手段で前記
座標入力手段により入力された座標と、前記文字認識手
段及び関数認識手段による認識結果とに基づいて、前記
数式を認識し所定のコード列で出力する。
又、置換手段により文字列内の文字の組み合わせに従っ
て、類似文字を置換する。
又、単位系認識手段で認識された関数の単位系を認識し
、数式認識手段は認識された単位系に対応してコード列
を出力する。
[実施例] 第1A図は本実施例の数式認識装置のブロック構成図で
ある。尚、本実施例では数式を認識して、認識結果に基
づいて演算を実行する装置を例に説明するが、認識結果
は演算に使用されるだけに限らない、−旦認識された数
式は、他の数式への変換や新しい数式の作成等にも使用
できる。
又、本例で示した演算子はほんの一部であり、他の演算
子についても本実施例を同様に適用できる。
第1A図において、1は入出カ一体の手書き座標入力装
置であり、ベン11とタブレット12及び液晶デイスプ
レィ13とで構成される。タブレット12及び液晶デイ
スプレィ13は、左上を原点とし、χ座標がO〜255
. y座標が0〜127の範囲をもつ座標表面であり、
ベン11でタブレット12上の任意の位置に触れるとそ
の座標値が外部に出力される。また外部から任意の座標
値を入力すると液晶デイスプレィ13のその位置にドツ
トが表示される。
2はマイクロコンピュータであり、手書き文字認識手段
21と、置換手段30と、数式認識手段22と、演算手
段23及び表示制御手段24とから構成される。又、演
算手段23は三角関数計算手段23aを有する。
第1B図はマイクロコンピュータ2のハードウェア構成
の一例を示す。座標入力装置lからの入力を受ける入力
部25と、プログラムに従って処理をするCPU26と
、文字認識及び数式認識のための辞書とプログラムとを
格納するROM27と、文字の認識、数式の認識及び演
算に使用される補助記憶用のRAM28と、座標入力装
置1の液晶デイスプレィ13ヘデータを出力する出力部
29とから成る。
まず、手書き文字認識手段21の機能について説明する
。ベン11によってタブレット12上に文字(数字、記
号を含む)が書かれると、文字を構成する各点の座標値
が順次マイクロコンピュータ2内のRAM28へたくわ
えられる。ベン11がタブレット12上から離れ一定時
間が経過すると、−文字の入力が終了したとみなし文字
の認識を開始する。
まず、RAM28内にたくわえられた前述の座標値の集
合に基づき文字のコードを認識する。
認識の方法は公知である0本実施例では第2図に示す文
字について認識を行う、各文字はサイズ決定文字または
サイズ不定文字のいずれかに分類される。
サイズ決定文字は数字”0”〜“9“および“π”、ア
ルファベットA、B、C,G、I。
L、N、O,S、T、加算記号“+”1乗算記号“×”
、除算記号“÷”及び等号“=”であり、それぞれ縦横
16ドツトずつで構成されるフォント(以下16ドツト
フオントと呼ぶ)及び縦横8ドツトずつで構成されるフ
ォント(以下8ドツトフオントと呼ぶ)がROM27に
記憶されている。
認識された文字がサイズ決定文字であれば以下の処理を
行う、前述の手書きによって得られた座標値の集合のう
ちでX座標の最小値をX5ln、X座標の最大値をXm
ax、X座標の最小値y1o、y座標の最大値をVma
xとする。ここでX man  X +mlnの値と’
J +saヨーy+mtnの値のうち少なくとも一方が
12以上であれば16ドツトフオントを選択し、そうで
なければ8ドツトフオントを選択する。ただし、等号“
=“は常に16ドツトフオントが選択される。8ドツト
フオントはべき乗における指数を表わす際に用いる。次
にフォントの中心のX座標、X座標がそれぞれ、 X a+n + X man  V earn + y
whatとなるようにフォントを表示する座標を決定し
、表示制御手段24によってROM27内の選択された
フォントを液晶デイスプレィ13に表示する。
一方、サイズ不定文字は少数点“、”、横線“−”、根
号“J”及びかっこ“じと“)”であり定まった大きさ
をもたない。なお横線“−”は負符号、減算記号及び分
数線として兼用される。
認識された文字がサイズ不定文字であれば以下の処理を
行う、前述の手書きによって得られた座標の集合のうち
でX座標の最小値をxl、、、X座標の最大値をX□8
、X座標の最小値を:J、nsY座標の最大値をy1□
とする。サイズ不定文字はROM27内にフォントのか
わりにベクトルが記憶されており、表示制御手段24は
表示される文字の左端、右端、上端、下端の座標がそれ
ぞれX1llll * Xmax + 3’m+n +
 Vmaxに一致するようにベクトルによって文字を構
成し液晶デイスプレィ13に表示する。
こうしてサイズ決定文字又はサイズ不定文字において、
表示される文字のコード、位置、大きさが決定すると、
文字のコードC0DE (i)。
文字の左端のX座標x(i)、文字の上端のy座標y(
i)、文字のX方向のドツト数り、(i)、及び文字の
y方向のドツト数DF(i)をRAM28に記憶する。
以上の動作を繰り返し、タブレット12から1文字ずつ
入力されるごとに、認識された文字を液晶デイスプレィ
13に表示するとともに、RAM28にC0DE (i
)、x (i)。
y (i)、D、(i)、Dy(i)の各値をx(i)
の値が小さい文字すなわち左に書かれた文字のデータか
ら順に並ぶように並びかえなから猶3図に示す形式で記
憶していく。
このようにして求められたデータは、例えば第4A図の
入力に対して第4B図のようになり、“=”が入力され
ると、置換手段30へ送られる。本装置で利用可能な関
数の一例として第5図の6種類を考えると、置換手段で
は、I−1゜0−0.L−1等の変換の可能性から、第
6図に示す5種類の文字列をサーチして置換手段30に
よって誤認識あるいは誤入力の類似文字を置換し、第5
図の本来の関数として認識する。このようにして、文字
列を液晶デイスプレィ13上に表示した場合に、使用者
から見て本来の関数と同じように見えるものは、その関
数と認識することにより、使用者の混乱を防ぐことがで
きる。
「サーチの方向としては“LoGl”のように関数の後
に数字が来る可能性はあるが、“+LOG”のように関
数の直前に数字は来ないという特徴を利用し、関数の最
後の文字や特徴のある文字を利用してマツチングをとる
。、j第7図は、関数の種類が第5図の6種類だった場
合の置換手段の動作を説明するフローチャートである。
尚、関数符号のサーチは”S I NLOG”のように
複数の符号が続かないことを基にしている。
まず、ステップS71において、横方向に一列に並んで
いるコード列を抽出する。これは第4B図においてy 
(i)の差がある一定値(例えば±5)よりも小さいも
のの列を抽出することである。第4A図の例では、“1
+SIN″が抽出される。
次にステップS72では、第4B図においてi=1から
抽出文字数になるまでiを1つずつインクリメントする
。“1+SIN”の場合は、C0DE (1)=1.C
0DE (2)=+なので、ステップS73の判定で“
G”でも“N”でも“S”でもないのでステップS72
に戻り、C0DE (3)=Sの時に、ステップS73
からステップS81へ進むが、ステップS81の判定で
C0DE (2)≠0なのでステップS72に戻る。
次に、C0DE (5)=Nの時、ステップS73から
ステップS77へと進み、ステップS77.78の判定
でC0DE (4)=1゜C0DE (3)=Sなノテ
ステップS79でC0DE (4)=Iと置換してSI
Nと認識される。
このようにして、ステップS74〜S76ではLOGに
置換し、ステップ377〜80ではSINあるいはLN
に置換し、ステップS81〜3.83ではCOSに置換
する。
ステップS84で全入力について処理が終了したかをチ
エツクし、まだの場合はステップS71に戻って置換処
理を繰り返す。
置換処理を文字数分行い動作を終えると、次処理の数式
認識手段22による数式認識及び演算手段23による演
算を行い、表示制御手段24により液晶デイスプレィ1
3に結果の表示を行う。
置換処理は上記実施例に限るものではない。
例えば、上記実施例は関数内に使われた数字をアルファ
ベットに置換するものだったのに対し、数字列内に使わ
れたアルファベットを数字に置換することも同様に可能
である。
第8図は置換手段の他の実施例のフローチャートである
。図中、ステップS72までは第7図と同じである0次
にステップS91において、0゜I、Sの文字のマツチ
ングを取り、それぞれステップS92.ステップS94
.ステップS96等で周辺の文字とのマツチングを試行
して、失敗した場合には“O,I、S”等は数字の“0
,1.5”であるとして置換を行う。
尚、本実施例で示したような手段において、“工“と小
文字の“l”または小文字の“b”と“6”等の認識勘
違いを置換することは容易に可能である。それゆえ、関
数の種類も上記6種に限るものではなく、5IN−”や
ABS等一般の関数が使用出来る。
一以下余白一 続いて数式認識手段22の処理について述べる。本実施
例では数字、正負符号、及び小数点によって表現される
整数及び小数を数として扱う。
また、加算、減算、乗算、除算、分数、べき乗、及び平
方根の演算について通常数学で用いられる表記に従って
扱う。その他に演算の順序をかえるために括弧を用いる
ことができる。
まず加算、減算、乗算、除算について述べる。
手書きによって整数及び小数の加算、減算、乗算、除算
及びこれらの混合計算を表記するときは通常1行で書く
。演算には優先順位があり、括弧の中、乗除算、加減算
の順に計算される。
優先順位が同じ場合は左から計算される。このような1
行で書かれる数式において、左の文字から順に演算手段
23へ入力することによって演算手段23が優先順位を
判定して計算を行なう方法は、例えばコンピュータ言語
のBAS I Cインタプリタ等で公知である。従って
、加減乗除の混合計算においては、手書きによって書か
れた文字を左から順に並べて出力するだけでよい。
手書き文字認識手段21によってRAM28に記憶され
たC0DE (i)は、x(i)が小さい順に並んでい
るので、C0DE (i)を順に取り出してコード例と
して出力すればよい、ただし、前述のサイズ決定文字に
おいてり、(i)及びり、(i)の値が8であるときは
、8ドツトフオントであり指数を表わすので、後述の処
理によってべき乗の計算をしなければならない、また、
負符号及び減算記号は分数線と兼用なので、後述の処理
によって負符号または減算記号であることを確認しなけ
ればならない、なお、正符号と加算記号、負符号と減算
記号は区別せずに出力する。
加減乗除の混合計算の例を、第9図、第10図及び第1
1図に示す、ベン11によってタブレット12へ第9図
に示す数式が書かれると、手書き文字認識手段21によ
って第10図に示すデータが得られる。これをもとに数
式認識手段22は第11図に示す形式でコード列をRA
M28に出力する。演算手段23は前記コード列を入力
し、演算の優先順位を判定しながら計算を行ない解を出
力する。そして、表示制御手段24によって解が液晶デ
イスプレィ13に表示されることによって計算機として
の機能が果たされる。
次に分数について述べる。分数は除算の別の表記法であ
り、下記の変換を行なうことができる。   A −−(A’ )÷(B′) ここで、A、Bは任意の手書き数式であり、A’ 、B
’はそれぞれA、Bから生成されたコード列である。
まず、分子の位置、すなわち分数線の上方に存在する文
字のみを抽出して数式Aを構成する。
数式Aが加減乗除の混合計算である場合、数式Aからコ
ード列A′を生成する方法についてはすでに述べた。ま
た、数式Aが分数を含む場合は、分数に関する処理な再
帰的に実行する。この場合、通常分数線は数式A、Bよ
り先に書くが、書き順が不定である場合でも、X座標の
重なる分数線の内X方向に長いものを先に選ぶことによ
り分数線の処理順序を決定できる。また、数式Aが後述
のべき乗や平方根を含む場合もそれぞれの処理を実行し
コード列A′を得ることができる。
次に同様に、分母の位置、すなわち分数線の 7下方に
存在する文字のみを抽出して数式Bを構成し、コード列
B′を生成する。そして、コード列A′とコード列B′
をそれぞれ括弧でくくり除算記号“÷”で結合すること
により、分数を表わすコード列を生成することができる
。なお、横線に対して分子及び分母の位置に文字が存在
しないときは、その横線は分数線でなく負符号又は減算
記号と判断する。
分数を含んだ計算の例を、第12図、第13図及び第1
4図に示す。ベン11によってタブレット12へ第12
図に示す数式が書かれると、手書き文字認識手段21に
よって第13図に示すデータが得られる。これをもとに
数式認識手段22は、第14図に示す形式でコード列を
°RAM28に出力する。このコード列によって前述の
加減乗除の混合計算の際と同様に解が計算され、液晶デ
イスプレィ13に表示される。
続いてべき乗について述べる。本実施例では指数部にお
ける数字及び演算子に8ドツトフオントを用い、その他
の数字及び演算子に16ドツトフオントを用いる。前述
のように手書きで文字を書く際に大きな文字を書くと1
6ドツトフオントが表示され、小さな文字を書くと8ド
ツトフオントとが表示される。16ドツトフオントの文
字はD !(i) = D y(t ) = 16であ
り、8ドツトフオントの文字はり、(i )=D、(i
)=8である。
また、サイズ不定文字については下記の規則に従う。す
なわち右括弧“)“以外のサイズ不定文字については、
以後最初に取り出されるサイズ決定文字が8ドツトフオ
ントであればそのサイズ不定文字は指数部に属し、16
ドツトフオントであればそのサイズ不定文字は指数部外
に属する。
また右括弧“)”については対になる左括弧と同じ属性
を持つ。
さて本実施例ではべき乗をコード列で表すために、べき
乗演算子“−”を導入し下記の変換を行なう、   C
D−C”’(D’) ここで、Cは任意の数式でありDはべき乗を含まない任
意の式である。C’ 、D’はそれぞれC,Dから生成
されたコード列である。
コード列を生成している際に、指数部外に属する文字の
次に指数部に属する文字がきたときに、べき乗記号“−
”及び左括弧“じを挿入する。
また、指数部に属する文字の次に指数部外に属する文字
がきたときに、右括弧“)”を挿入する。
演算手段23において、このべき乗記号“°”を他の演
算子と同様に用いて加減乗除算との混合計算を行なう方
法は公知である。この際の演算の優先順位は、括弧の中
、べき乗、乗除算、加減算の順であり、優先順位が同じ
場合は左から計算される。 ゝ べき乗を含んだ計算の例を、第15図、第16図第17
図に示す。ペン11によってタブレット12へ第15図
に示す数式が書かれると、手書き文字認識手段21によ
って、第16図に示すデータが得られる。これをもとに
数式認識手段22は、第17図に示す形式でコード列を
RAM28に出力する。このコード列によって、前述の
加減乗除の混合計算の際と同様に解が計算され、液晶デ
イスプレィ13に表示される。
次に平方根について述べる。本実施例では平方根をコー
ド列で表わすために下記の変換を行なう。  7−  
J(E’) ここで、Eは任意の数式であり、E′はEから生成され
たコード列である。根号の内部の位置に存在する文字の
みを抽出して数式Eを構成し、数式Eから前述の方法に
よりコード列E′を生成する。
数式Eが平方根を含む場合は、平方根に関する処理な再
帰的に実行する。なお、通常平方根が数式Eより先に書
かれるが、順序が不定の場合も、X座標が重なる場合は
X方向の長いものから選ばれることにより、平方根の処
理順序を決定できる。そしてコード列E′を括弧でくく
り根号“J”の後に結合することにより、平方根を表わ
すコード列を生成することができる。演算手段23にお
いて平方根演算と加減乗除算やべき乗との根号計算を行
なう方法は公知である。この際の演算の優先順位は1、
括弧の中、平方根、べき乗、乗除算、加減算の順で、優
先順位が同じ場合は左から計算される。
平方根を、含んだ計算の例を、第18図、第19図、第
20図に示す。ペン11によってタブレット12へ第1
8図に示す数式が書かれると、手書き文字認識手段21
によって、第19図に示すデータが得られる。これをも
とに数式認識手段22は、第20図に示す形式でコード
列をRAM28に出力する。このコード列によって、前
述の加減乗除の混合計算と同様に解が計算され、液晶デ
イスプレィ13に表示される。
次に第21図から第34図に示すフローチャートによっ
て、本実施例における数式認識を更に詳細に説明する。
尚、本実施例では第3図に示すように、左に書かれた文
字のデータから並べかえてRAM28内に記憶されるの
で、分数線及び根号は自動的にその範囲に含まれる数式
よりも先に入力されたものとなる。このため、使用者は
入力の順序を考慮しなくてよい。
第21図はメインルーチンであり、まずステップ5IO
Iにおいて、i、j、に、n、F。
xmaつ+ ymtn * :jmamの各変数に初期
値を代入する。ここで、iは入力データにおいて現在処
理している文字を指すポインタである。また出力コード
列S (1) 、 S (2)・・・に新たな文字コー
ドが加わる位置は、通常コード列の最後でありその位置
を指すポインタがkである。ただし、コード列の中に文
字コードを挿入する場合もあり、その位置を指すポイン
タがjである。また、nは括弧のネスティングの段数、
Fは指数部を表わすフラグ、Xmaつは数式認識を行な
う領域を指定するX座標の最大値、yst。は同じくy
座標の最小値、yl、8は同じくy座標の最大値である
次にステップ5102において領域内に存在する数式の
認識を行なう。メインルーチンにおいては領域内に数式
全体が含まれるので、本ステップによって数式全体の認
識が行なわれる。
第22図は領域内認識の処理ルーチンを示したものであ
る。領域内認識ルーチンはメインルーチンで呼び出され
るほか、分子、分母、根号の中の数式の認識においても
呼び出される。
まずステップS201において、x(i)がX、、@z
より大きければC0DE (i)以降の文字は領域外で
あり領域内認識を終了する。一方、x(i)がXaa*
より大きくなければステップ5202へ進む。ステップ
5202においてy (i)がy、nより小さいか、ま
たはステップ5203においてy(i)がy、、、、l
より大きければC0DE (i)は領域外の文字であり
、ステップ8216へ進みiを1つ増して、ステップS
201へ戻り次の文字の処理を行なう。一方、y (i
)がystnより小さくなく、かつy、aawより大き
くないときはC0DE (i)は領域内の文字であり、
ステップ5204へ進む。
ステップ5204からステップ8208において、C0
DE (i)を小数点“、”、左括弧“(”、右括弧“
)”、横線“−“、根号“J”、サイズ決定文字のいず
れかに分類し、それぞれステップ5211、ステップ5
212、ステップ5213、ステップ5214、ステッ
プ5215、ステップ5209へ分岐する。それぞれの
処理の終了後、ステップ5216へ進みiを1つ増して
、ステップS201へ戻り次の文字の処理を行なう、た
だし、サイズ決定文字の際、ステップ5210において
C0DE(i)が等号“=”であるときは領域内認識を
終了する。
第23図は第22図のステップ5209のサイズ決定文
字の処理ルーチンを示す。
まずステップ5301においてり、’(i)が8であれ
ば8ドツトフオントであるので、指数部内の文字であり
ステップ5310へ進む。ステップ5310は指数部内
の文字が現われた時の処理であり第25図で詳しく説明
する。
第25図のステップ5411において、変数Fが0であ
れば指数部外から指数部内へ入ったので、べき乗を表わ
す文字コード“−”及び指数部をくくるための左括弧“
じを挿入する処理を行なうため、ステップ5412以降
へ進む。もしFが0でなければそのまま終了する。
ステップ5412において、指数部内へ入ったことを記
憶しておくために変数Fを1にする。
ステップ5413においては変数jと変数kを比較する
。出力コード列S (1)、 S (2) 。
5(3)・・・において、5(1)から5(j−1)ま
では指数部内であるか指数部外であるかが確定している
。また、S (j)から5(k−1)まではサイズ不定
文字であり指数部内であるか指数部外であるかは保留さ
れている。
ここで、j=にであれば保留されているコードは存在せ
ずステップ5415へ進む。一方、j≠にであればC0
DE (i)が指数部内に属するので、保留されている
コード列も指数部内に属する。従って、ステップ541
4において文字コード“−”及び“(”をS (j)及
びS (j+1)に挿入するために、S (j)から5
(K−1)までにすでに入っているコード列をS (j
+2)からS(k+1)までにブロック転送し、2文字
分後ヘシフトする。ステップ5415においては文字が
2文字挿入されたので変数kを2増しておく、そして、
ステップ5416において文字コード“′”を5(j)
に、“(”をS (j+1)にそれぞれ入れる。
一方、第23図のステップ5301において、D、(i
)が8でなければ16ドツトフオントであるので、指数
部外の文字でありステップ5302へ進む。ステップ5
302は指数部外の文字が現われたときの処理であり第
24図で詳しく説明する。
第24図のステップ5401において変数Fが1であれ
ば指数部内から指数部外へ出たので、指数部をくくるた
めの右括弧“)”を挿入する処理を行なうため、ステッ
プ5402以降へ進む。もしFが1でなければそのまま
終了する。
ステップ5402において指数部外へ出たことを記憶し
ておくために変数FをOにする。ステップ5403にお
いては変数jと変数kを比較する。
出力コード列S (1)、 S (2)、 S (3)
・?・において、5(1)から5(j−1)までは指数
部内であるか指数部外であるかが確定している。
また、S (j)から5(k−1)までは指数部内であ
るか指数部外であるかは保留されている。
ここで、j=にであれば保留されているコードは存在せ
ずステップ5405へ進む。一方、jf−にであればC
0DE (i)が指数部外に属するので、保留されてい
るコード列も指数部外に属する。従って、ステップ54
04において文字コード“)”を5(j)へ挿入するた
めに、S (j)からS (k−1)までにすでに入っ
ているコード列をS (j+1)からS (k)までに
ブロック転送し、1文字シフトする。ステップ5405
においては文字は1文字挿入されたので変数kを1つ増
しておく。そしてステップ5406において文字コード
“)”をS (j)に入れる。
第23図のステップ5310又はステップ5302にお
ける指数に関する処理が終わると、ステップ5303へ
進み、C0DE (i)をS (k)に入れる。kは次
の文字コードを入れる位置を指すために1つ増す。また
ステップ5304においては、この段階で5(1)から
S (k−1)までのすべてのコードが指数部内である
か指数部外であるか確定したので、jをkに等しくして
おく。
次のステップ5305以降の処理は、左括弧は指数部内
に属するか指数部外に属するかを対応する右括弧が現わ
れるまで覚えておくためのものである。左括弧はサイズ
不定文字であり、左括弧が現われたときは指数部内に属
するか指数部外に属するかは保留されている。その後サ
イズ決定文字が現われることによって属性が決定される
ので、ステップ5305以降の処理によって属性(指数
部内か指数部外か)を覚えておくのである。
まず後述のようにネスティングの段数がmである左括弧
の属性が保留になっているときは、属性P(m)(以下
属性なPとし、m段の左括弧の属性をP (m)とする
)が保留を示す−1になっている。ステップ5305に
おいて変数mを1とし、ステップ5306において属性
P (m)が−1であれば、又テップ5307において
属性P (m)に変数Fを代入することによって、属性
P (m)にm段目の左括弧の属性を記憶しておく。属
性P (m)が−1でなければすでに属性が決定されて
いるのでそのままである。ステップ5308においてm
を1つ増し、ステップ5309においてmが最も新しい
左括弧の段数nを超えるまでステップ8306以降を繰
り返すことにより、すべての左括弧の属性が記憶される
これでサイズ決定文字の処理は終了である。
第26図は第22図のステップ5211の小数点の処理
ルーチンを示す、ステップ5501においてS (k)
に文字コード“、”を入れる。
kは次の文字コードを入れる位置を指すために1つ増す
、ただし、小数点“、”はサイズ不定文字であり、指数
部内に属するか指数部外に属するか保留になるので、j
の値は増さずにそのままにしておく。Jは属性が決定し
たときに文字コード“−”及び“じまたは文字コード“
)”を挿入する位置を指す、一般にkはS (k)に文
字コードが入るたびに1つ増し、jはサイズ決定文字及
び右括弧の処理後にと同じ値になり、その他のときは動
かない。
第27図は第22図のステップ5212の左括弧の処理
ルーチンを示す、ステップS601においてS (k)
に文字コード“じを入れる。
kは次の文字コードを入れる位置を指すために1つ増す
。左括弧“(”もサイズ不定文字であるので指数に関す
る属性は保留である。ステップ5602においてはネス
ティングが1段増えるのでnを1つ増す。そしてステッ
プ5603においてこの左括弧の属性が保留されている
ことを記憶するために属性P (n)を−1とする。
第28図は第22図のステップ5213の右括弧の処理
ルーチンを示す。ステップ5611において属性P (
n)が1であれば対応する左括弧が指数部内に属してい
るので、この右括弧も指数部内に属しておりすでに述べ
た第25図の指数部内の処理を行なう。一方、属性P 
(n)が1でなければ対応する左括弧が指数部外に属し
ているのでこの右括弧も指数部外に属しており、すでに
述べた第24図の指数部外の処理を行なう。それぞれの
処理後、ステップ5613においてS (k)に文字コ
ード“)“を入れる。kは次の文字がコードを入れる位
置を指すために1つ増す。右括弧“)”はサイズ不定文
字であるが指数に関する属性が決定したので、ステップ
5614によってjをkと等しくする。ステップ561
5においてはネスティングは1殺減るのでnを1つ減じ
る。
第29図は第22図のステップ5214の横線の処理ル
ーチンを示す、ステップ5701からステップ5707
までは横線が分数線かマイナス(以下負符号と減算記号
を総称してマイナスと呼ぶ)であるか調べる処理である
。まずステップS701においてX□、の値を保存して
おくためにスタックにブツシュする。続いてステップ5
702においてx s□をx (i ) +D、(i 
)すなわち横線の右端のX座標とする。続いてステップ
5703においてiの値を保存しておくためにスタック
にブツシュする。次にステップ5704においてiを1
つ増して処理を次の文字に移す。
ステップ5705において、新たなiについてx(i)
がX、1.より大きくなけれがステップ5706へ進む
。ステップ5706においてy (i)がy1□より小
さくなく、かつステップ5707においてy(i)がy
1□より大きくないときは、前記横線に対して分子又は
分母の位置に存在する文字であるので、前記横線は分数
線でありステップ3708へ進む、ステップ3708に
おいては、スタックからiの値をポツプすることによっ
てiを前記横線に戻す。そしてステップ5709におい
て分子9分母を含めた分数の処理を行なう。ステップ5
710においては、スタックからXaaxの値をポツプ
することによって領域をもとに戻す。
一方、ステップ5706においてy(i)がyo。より
小さいか、またはy (i)がy、1゜より大きいとき
は、ステップ5704へ戻りiを1つ増して処理を次の
文字へ移す。ステップ5704からステップ5707を
繰り返すうちに、ステップ5705においてx(i)が
xl、8より大きくなれば、前記横線に対して分子及び
分母の位置に文字が存在しなかったので前記横線はマイ
ナスであり、ステップ5711へ進む。
ステップ5711においてはスタックからiの値をポツ
プすることによってiを前記横線へ戻す。
そしてステップ5712においてマイナスの処理を行な
う。ステップ5710においては、スタックからX、□
の値をポツプすることによって領域をもとに戻す。
第30図に第29図のステップ5709の分数の処理ル
ーチンを示す。まずステップ5801において、分子を
くくる左括弧“じをS (k)に入れる。kは次の文字
コードを入れる位置を指すために1つ増す。次にステッ
プ5802において、iの値を保存しておくためにスタ
ックにブツシュする。そしてステップ5803において
分子の処理を行なう。分子の処理ルーチンは第31図に
示す。
第31図において、まずステップ5811においてyl
、8の値を保存しておくためにスタックにブツシュする
。続いてステップ5812において’J matをy 
(i)すなわち分数線のy座標とする。次にステップ5
813においてiを1う増して処理を次の文字に移す。
そしてステップ5814において分子の領域に対して、
すでに述べた第22図の領域内認識を行なう、領域内認
識が終了するとステップ5815においてスタックから
”J aaaxをポツプしてもとの値へ戻す。
第30図においてステップ5803の分子の処理が終了
すると、ステップ804において、分子をくくる右括弧
“)”をS (k)に入れる。
kは次の文字コードを入れる位置を指すために1つ増す
0次にステップ5805において、除算記号“÷”をS
 (k)に入れ、kを1つ増す。
さらにステップ5806において、分母をくくる左括弧
“(”をS (k)に入れ、kを1つ増す。
次にステップ5807においてスタックからiの値をポ
ツプすることによってiを前記横線へ戻す。そしてステ
ップ808において分母の処理を行なう。分母の処理ル
ーチンは第32図に示す。
第32図において、まずステップ5821においてy1
□の値を保存しておくためにスタックにブツシュする。
続いてステップ5822においてylnをy (i)す
なわち分数線のy座標とする。次にステップ5823に
おいてiを1つ増して処理を次の文字に移す。そしてス
テップ5824において分母の領域に対してすでに述べ
た第22図の領域内認識を行なう。領域内認識が終了す
ると、ステップ5825においてスタックからyl、、
をポツプしてもとの値へ戻す。
第30図においてステップ5808の分母処理が終了す
ると、ステップ5809において、分母をくくる右括弧
“)”をS (k)に入れる。kは次の文字コードを入
れる位置を指すために1つ増す。ここで、iの値はX、
、、ヨすなわち分数線の右端より右にある最初の文字を
指している。この文字は分数の処理が終了した後、次に
処理すべき文字である。ところが、第22図のステップ
5216でiを1つ増すので、ステップ5810におい
て予めiを1つ減じておく。これによって分数の処理が
終了した後、次に処理する文字が分数線の右端より右に
ある最初の文字となる。
第33図に第29図のステップ5712のマイナスの処
理ルーチンを示す。ステップ5831においてS (k
)に文字コード“−”を入れる。もはやこの時点では文
字コード“−”は分数線でなく、マイナスを表わす。k
は次の文字コードを入れる位置を示すために1つ増す。
指数部内に属するか指数部外に属するかは保留である。
最後に、第34図に第22図のステップ5215の平方
根の処理ルーチンを示す。まずステップ5901におい
てX11.の値を保持しておくためにスタックにブツシ
ュする、続いてステップ5902において、x ram
−xをx(i)+D、(i)すなわち根号の右端のX座
標とする。次にステップ5903において根号”J”を
S (k)に入れる。には次の文字コードを入れる位置
を指すために1つ増す。次にステップ5904において
根号の内部をくくるための左括弧“(”をS (k)に
入れ、kを1つ増す。
次にステップ5905においてiを1つ増して処理を次
の文字に移す。
そしてステップ8906において、根号内の領域に対し
てすでに述べた第22図の領域内認識を行なう。領域内
認識が終了するとステップ5907において、根号の内
部をくくるための右括弧“)”をS (k)に入れ、k
を1つ増す。
ここで、iの値はxllaK %すなわち根号の右端よ
り右にある最初の文字を指している。この文字は平方根
の処理が終了した後、次に処理すべき文字である。
ところが第22図のステップ8216でiを1つ増すの
で、ステップ8908においてあらかじめ1つ減じてお
く。これによって平方根の処理が終了した後、次に処理
する文字が根号の右端より右にある最初の文字となる。
ステップ5909においてはスタックからXをポツプす
ることによって領域をもとに戻す。以上示したようにコ
ード列S (1)、S (2) 、s (3) 、・・
・が生成される。
次に、関数は認識出来でも複数の単位系が可能な例とし
て、三角関数の場合を第35A図に示す例について説明
する。
第35B図ではC0DE (6)の小さい“0″を、6
0の0乗ではなくSIHに対するデグリー単位の使用で
あると認識し、デグリー単位の計算をする必要がある。
この認識および、計算をフローチャートにしたものが第
36図である。
順を追って説明すると、数式認識手段22内において、
まずステップS50によりiを1からコード列の文字数
までスキャンさせ、ステップS51において三角関数を
見つけ出す。次にステップS52で三角関数を“SIN
数字”の形と“S LN (数列)”との形に分けて、
ステップS53又はステップS54でそれぞれ関数のか
かつている位置までiを増やし、ステップS55で次の
文字C0DE (i+1)をチエツクし、その文字が小
さいフォントを使用した“0”だった場合は、デグリー
単位系であるとし、その場合はステップS56において
、ラジアン単位に補正し、三角関数計算手段23aでは
、常にラジアン単位であるとして演算する。
逆に、ステップS55において、NOであった場合に、
“÷2÷π×360“の補正を行い、次処理ではデグリ
ー単位で演算しても良い。
三角関数の計算は上記実施例に限るものではない。例え
ば上記実施例は角度を示す“0”の発見によりデグリー
単位を使うことを認識したが、ラジアン単位系に特有な
“π”を発見する事によっても良い。そうした場合の実
施例を第37図に示す。
ステップ560−S62までは第36図のステップ35
ONS52と同じである。次にステップS63において
は、コードが数字である間中スキャンしてステップS6
4でπを捜す。
ステップS65.S66では、()ではさまれた間をス
キャンしてπを捜す。πがあればラジアン単位系なので
、ステップS67で“÷2÷π×360“によりデグリ
ー単位系に補正し、以下の三角関数計算手段23aでは
デグリー単位系で三角関数の計算を行う。
ところで、以上の実施例ではデグリー単位系、又はラジ
アン単位系の一方を発見しているが、これを両方使った
実施例も当然存在する。この場合、両単位系であること
が確認されなかった場合(例えば5IN=等)には、表
示画面13上に、「単位系を選んで下さい、RAD、D
EG。
GRAJ等の表示を出力し、座標入力装置lによって選
択してもよい。
以上の実施例で以下の効果がある。
1、使用者に特別の筆記方法を強制する事なしに、工と
1.0とO等を区別して、関数を認識することが出来る
2、使用者が、単位系の設定を行わずとも数式中に示さ
れている単位系を同定する情報(例えば「0」や「π」
)を認識する事で、余分な操作を省き使い易くなるとと
もに、単位系と数式が異なることによる誤った計算を防
ぐ事が可能である。
[発明の効果] 本発明により、紙等に書かれた数式をそのまま認識して
、コード列として出力すると共に数式に従って計算を行
う数式認識装置を提供できる。
より詳細には、SIN、LOG等の関数をも正確に認識
し、画面に書いた使用者の意図に正確に且つ自動的に単
位系を選択し、正確な答を計算できる。
【図面の簡単な説明】
第1A図は本実施例の数式認識装置のブロック構成図、 第1B図はマイクロコンピュータ2のハードウェア構成
の一例を示す図、 第2図は本実施例において認識を行う文字を示した図、 第3図は認識された各文字のコード、位置。 大きさを表わすデータのRAM内の形式を示した図、 第4A図は関数を含む数式の例をタブレット上に書いた
図、 第4B図は第4A図の数式の各文字のコード。 位置、大きさを表わすデータを示した図、第5図は本実
施例で利用可能な関数を示す図、第6図は本実施例で変
換の可能性のある文字列を示す図、 第7図は置換手段の処理手順を示すフローチャート、 第8図は他の実施例の置換手段の処理手順を示すフロー
チャート、 第9図は加減乗除の根号計算の数式の例をタブレット上
に書いた図、 第10図は第9図の数式の各文字のコード。 位置、大きさを表わすデータを示した図、第11図は第
10図のデータをもとに生成されたコード列のRAM内
の形式を示した図、第12図は分数を含む数式の例をタ
ブレット上に書いた図、 第13図は第12図の数式の各文字のコード。 位置、大きさを表わすデータを示した図、第14図は第
13図のデータをもとに生成されたコード列のRAM内
の形式を示した図、第15図はべき乗を含む数式の例を
タブレット上に書いた図、 第16図は第15図の数式の各文字のコード。 位置、大きさを表わすデータを示した図、第17図は第
16図のデータをもとに生成されたコード列のRAM内
の形式を示した図、第18図は平方根を含む数式の例を
タブレット上に書いた図、 第19図は第18図の数式の各文字のコード。 位置、大きさを表わすデータを示した図、第20図は第
19図のデータをもとに生成されコード列のRAM内の
形式を示した図、第21図は第1の実施例の数式認識装
置の処理のメインルーチンのフローチャート、 第22図は領域内認識の処理ルーチンのフローチャート
、 第23図はサイズ決定文字の処理ルーチンのフローチャ
ート、 第24図は指数部外の処理ルーチンのフローチャート、 第25図は指数部内の処理ルーチンのフローチャート、 第26図は小数点の処理ルーチンのフローチャート、 第27図は左括弧の処理ルーチンのフローチャート、 第28図は右括弧の処理ルーチンのフローチャート、 第29図は横線の処理ルーチンのフローチャート、 第30図は分数の処理ルーチンのフローチャート、 第31図は分子の処理ルーチンのフローチャート、 第32図は分母の処理ルーチンのフローチャート、 第33図はマイナスの処理ルーチンのフローチャート、 第34図は平方根の処理ルーチンのフローチャート、 第35A図は三角関数を含む数式の例をタブレット上と
書いた図、 第35B図は第35A図の数式の各文字のコード、位置
、大きさを表わすデータを示した図、 第36図は置換手段による三角関数の処理手順を示すフ
ローチャート、 第37図は他の実施例の置換手段による三角関数の処理
手順を示すフローチャートである。 図中、1・・・入出カ一体型形手書き座標入力装置、2
・・・マイクロコンピュータ、11・・・ペン、1.2
・・・タブレット、13・・・液晶デイスプレィ、21
・・・手書き文字認識手段、22・・・数式認識手段、
23・・・演算手段、23a・・・三角関数計算手段、
24・・・表示制御手段、25・・・入力部、26・C
PU、27・ROM、28−RAM。 29・・・出力部、30・・・置換手段である。

Claims (3)

    【特許請求の範囲】
  1. (1)数字及び記号を含む文字からなる数式を座標で入
    力する座標入力手段と、 該座標入力手段により入力された座標の集合に基づいて
    、前記数字及び記号を含む文字を認識する文字認識手段
    と、 文字列内の文字の組み合わせに従つて、関数を認識する
    関数認識手段と、 前記座標入力手段により入力された座標と、前記文字認
    識手段及び関数認識手段による認識結果とに基づいて、
    前記数式を認識し所定のコード列で出力する数式認識手
    段とを備えることを特徴とする数式認識装置。
  2. (2)関数認識手段は、文字列内の文字の組み合わせに
    従つて、類似文字を置換する置換手段を備えることを特
    徴とする請求項1記載の数式認識装置。
  3. (3)認識された関数の単位系を認識する単位系認識手
    段を更に備え、 数式認識手段は認識された単位系に対応してコード列を
    出力することを特徴とする請求項1記載の数式認識装置
JP63131338A 1988-05-31 1988-05-31 情報処理方法及び装置 Expired - Fee Related JP2984275B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63131338A JP2984275B2 (ja) 1988-05-31 1988-05-31 情報処理方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63131338A JP2984275B2 (ja) 1988-05-31 1988-05-31 情報処理方法及び装置

Publications (2)

Publication Number Publication Date
JPH01302484A true JPH01302484A (ja) 1989-12-06
JP2984275B2 JP2984275B2 (ja) 1999-11-29

Family

ID=15055606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63131338A Expired - Fee Related JP2984275B2 (ja) 1988-05-31 1988-05-31 情報処理方法及び装置

Country Status (1)

Country Link
JP (1) JP2984275B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352273A (ja) * 1991-05-30 1992-12-07 Sanyo Electric Co Ltd 手書き計算処理装置の手書き計算処理方法
CN111539383A (zh) * 2020-05-22 2020-08-14 浙江蓝鸽科技有限公司 公式知识点识别方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61109183A (ja) * 1984-10-31 1986-05-27 Toshiba Corp 文字認識装置
JPS61237184A (ja) * 1985-04-15 1986-10-22 Hitachi Ltd 手書きパタ−ン入力装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61109183A (ja) * 1984-10-31 1986-05-27 Toshiba Corp 文字認識装置
JPS61237184A (ja) * 1985-04-15 1986-10-22 Hitachi Ltd 手書きパタ−ン入力装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352273A (ja) * 1991-05-30 1992-12-07 Sanyo Electric Co Ltd 手書き計算処理装置の手書き計算処理方法
CN111539383A (zh) * 2020-05-22 2020-08-14 浙江蓝鸽科技有限公司 公式知识点识别方法及装置
CN111539383B (zh) * 2020-05-22 2023-05-05 浙江蓝鸽科技有限公司 公式知识点识别方法及装置

Also Published As

Publication number Publication date
JP2984275B2 (ja) 1999-11-29

Similar Documents

Publication Publication Date Title
JP3046027B2 (ja) 文字処理方法
US6795579B2 (en) Method and apparatus for recognizing handwritten chinese characters
JPH06102985A (ja) 仮想キーボード
JP2003162687A (ja) 手書き文字入力装置、手書き文字認識プログラム
US20130249821A1 (en) Method and System for Virtual Keyboard
JP3761937B2 (ja) パターン認識方法及び装置及びコンピュータ制御装置
EP3308248B1 (en) Pan-zoom entry of text
JP2003178257A (ja) 文字入力装置、文字入力方法および文字を入力するためのプログラム
CN105739894B (zh) 一种输入方法及终端
JPH01302484A (ja) 情報処理方法及び装置
JPS6126192A (ja) ハングル字母列からのハングル文字認識方法
JP2974320B2 (ja) 文字処理方法及び装置
KR100477125B1 (ko) 전자펜을이용한문자입력장치및그제어방법
JP3225555B2 (ja) 仮名入出力装置
CN113778281B (zh) 辅助信息生成方法、装置及电子设备和存储介质
JP2851852B2 (ja) 情報処理装置
JP3128357B2 (ja) 文字認識処理装置
CN117873333A (zh) 拼音码辅以组合替换的俄文字母输入控制方法、装置、电子设备及存储介质
JP3153704B2 (ja) 文字認識装置
JPH0575143B2 (ja)
KR20230073015A (ko) 숫자의 만단위 구분기호 표기형식 적용 방법
JP3022790B2 (ja) 手書き文字入力装置
JP2640134B2 (ja) アウトラインフォント開発装置用キーボード
JP2024078160A (ja) 文字列識別方法
JPS6280778A (ja) 文字認識装置の誤読文字訂正方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees