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

情報処理方法及び装置

Info

Publication number
JP2984275B2
JP2984275B2 JP63131338A JP13133888A JP2984275B2 JP 2984275 B2 JP2984275 B2 JP 2984275B2 JP 63131338 A JP63131338 A JP 63131338A JP 13133888 A JP13133888 A JP 13133888A JP 2984275 B2 JP2984275 B2 JP 2984275B2
Authority
JP
Japan
Prior art keywords
character
character string
input
function
code
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.)
Expired - Fee Related
Application number
JP63131338A
Other languages
English (en)
Other versions
JPH01302484A (ja
Inventor
栄作 巽
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)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、入力された数式情報を補正する情報処理方
法及び装置に関するものである。特に、手書きによる数
式を認識してコード列として出力するのに好適な情報処
理方法及び装置に関する。
[従来の技術] 従来、計算機等における数式の入力装置は、通常個々
の数字及び演算子等に対応するキーによつて構成され
る。又、最近では手書き文字の認識手段を備え、手書き
によつて入力された数字及び演算子等の文字コードを認
識する機能をもつ数式の入力装置も存在する。上記いず
れの入力装置を用いた計算機においても、演算部等で処
理を行う場合には、入力されたキーまたは文字コードを
順に解析することによつて行つている。
[発明が解決しようとする課題] しかしながら、上記従来例におけるキーによる数式の
入力はキーの扱いの不慣れな人にとつて操作しにくいと
いう欠点があつた。
また、計算機における数字や演算子等が入力された順
序にのみ基づく数式の処理のためには、人間が紙等に数
式を書く場合に大切な要素である数字,演算子等の位置
関係や大きさについての情報を入力することができない
ので、予め人間が計算の順序を工夫したり特殊な記号を
入力したりといつた変換を行つてから入力しなければな
らないといつた欠点があつた。
又、SIN,LOG等の文字を認識する際、“I"と“1"、
“O"と“0"が区別出来ないため、“I"や のように特殊な表現で表わすが、このような表現を使用
者に強いるのははなはだ無理がある。
更に、三角関数を導入しようとすると単位系の指定を
予め行う必要が生じるが、従来の一般電卓と同じように
予め単位系を指定する方法では、手書きの特徴を生かせ
ず、使いづらいものとなる。また、予め指定した単位系
を画面上に表示している数式を使うべき単位系がくい違
つてしまい、それが使用者に知られない可能性がある。
例えば、ラジアン単位系としておきながら、SIN60゜と
入力すると、60の0乗のラジアンSINをとり、答は0.841
5となつてしまう。ちなみにデグリー単位系でSIN60゜は
0.866である。
本発明は、上記従来例の欠点を除去しようとするもの
である。
より詳細には、SIN,LOG等の関数をも正確に認識し、
画面に書いた使用者の意図に正確に且つ自動的に単位系
を選択し、正確な答を計算するようにしたものである。
すなわち、本発明の目的は、入力された数式を表す文
字列から識別される情報に基づいて関数のルールに即し
た正確な数式を得ることを可能とすることにある。
また、本発明の目的は、入力文字列より識別した関数
を表す文字列に従って、その後に続く数字の単位系を適
切に判断し、かつその関数に予め対応付けられた単位系
に変換することを可能とし、入力された数式を識別され
た関数に適した単位系で表現された正確な数式として得
ることを可能とすることにある。
[課題を解決するための手段] 上記の目的を達成する本発明の情報処理方法は、 数式を表す文字列を入力し、 前記入力した文字列内の文字の組み合わせに従って、
該入力した文字列に含まれている関数を表す文字列を識
別し、 前記識別された関数を表す文字列の後ろ方向へ、単位
系を特定する文字を検索し、 前記検索の結果発見した単位系を特定する文字と前記
識別された関数を表す文字列との間にある数字が表す数
値を、前記発見した単位系から前記関数に対応付けて予
め定めてある別の単位系に変換することを特徴とする。
また、上記の目的を達成する本発明の情報処理装置
は、 数式を表す文字例を入力する入力手段と、 前記入力した文字列内の文字の組み合わせに従って、
該入力した文字列に含まれている関数を表す文字列を識
別する関数文字列識別手段と、 前記識別された関数を表す文字列の後ろ方向へ、単位
系を特定する文字を検索する検索手段と、 前記検索の結果発見した単位系を特定する文字と前記
識別された関数を表す文字列との間にある数字が表す数
値を、前記発見した単位系から前記関数に対応付けて予
め定めてある別の単位系に変換する変換手段とを有する
ことを特徴とする。
[作用] 上記の構成によれば、数式を表す文字列内の文字の組
み合わせに従って、該文字列に含まれている関数を表す
文字列が識別され、この識別された関数を表す文字列の
後方へ単位系を特定する文字が検索される。そして、こ
の検索の結果発見された単位系を特定する文字と上記関
数を表わす文字列との間にある数字によって表わされる
数値が、当該発見された単位系を特定する文字によって
特定される単位系から、当該識別された関数に対応付け
て予め定められた単位系の数値へ変換される。
[実施例] 第1A図は本実施例の数式認識装置のブロツク構成図で
ある。尚、本実施例では数式を認識して、認識結果に基
づいて演算を実行する装置を例に説明するが、認識結果
は演算に使用されるだけに限らない。一旦認識された数
式は、他の数式への変換や新しい数式の作成等にも使用
できる。又、本例で示した演算子はほんの一部であり、
他の演算子についても本実施例を同様に適用できる。
第1A図において、1は入出力一体の手書き座標入力装
置であり、ペン11とタブレツト12及び液晶デイスプレイ
13とで構成される。タブレツト12及び液晶デイスプレイ
13は、左上を原点とし、x座標が0〜255,y座標が0〜1
27の範囲をもつ座標表面であり、ペン11でタブレツト12
上の任意の位置に触れるとその座標値が外部に出力され
る。また外部から任意の座標値を入力すると液晶デイス
プレイ13のその位置にドツトが表示される。
2はマイクロコンピュータであり、手書き文字認識手
段21と、置換手段30と、数式認識手段22と、演算手段23
及び表示制御手段24とから構成される。又、演算手段23
は三角関数計算手段23aを有する。
第1B図はマイクロコンピュータ2のハードウエア構成
の一例を示す。座標入力装置1からの入力を受ける入力
部25と、プログラムに従つて処理をするCPU26と、文字
認識及び数式認識のための辞書とプログラムとを格納す
るROM27と、文字の認識,数式の認識及び演算に使用さ
れる補助記憶用のRAM28と、座標入力装置1の液晶デイ
スプレイ13へデータを出力する出力部29とから成る。
まず、手書き文字認識手段21の機能について説明す
る。ペン11によつてタブレツト12上に文字(数字,記号
を含む)が書かれると、文字を構成する各点の座標値が
順次マイクロコンピュータ2内のRAM28へたくわえられ
る。ペン11がタブレツト12上から離れ一定時間が経過す
ると、一文字の入力が終了したとみなし文字の認識を開
始する。
まず、RAM28内にたくわえられた前述の座標値の集合
に基づき文字のコードを認識する。認識の方法は公知で
ある。本実施例では第2図に示す文字について認識を行
う。各文字はサイズ決定文字またはサイズ不定文字のい
ずれかに分類される。
サイズ決定文字は数字“0"〜“9"および“π”、アル
ファベツトA,B,C,G,I,L,N,O,S,T、加算信号“+",乗算
記号“×",除算記号“÷”及び等号“=”であり、それ
ぞれ縦横16ドツトずつで構成されるフオント(以下16ド
ツトフオントと呼ぶ)及び縦横8ドツトずつで構成され
るフオント(以下8ドツトフオントと呼ぶ)がROM27に
記憶されている。
認識された文字がサイズ決定文字であれば以下の処理
を行う。前述の手書きによつて得られた座標値の集合の
うちでx座標の最小値をxmin、x座標の最大値をxmax
y座標の最小値ymin、y座標の最大値をymaxとする。こ
こでxmax−xminの値とymax−yminの値のうち少なくとも
一方が12以上であれば16ドツトフオントを選択し、そう
でなければ8ドツトフオントを選択する。ただし、等号
“=”は常に16ドツトフオントが選択される。8ドツト
フオントはべき乗における指数を表わす際に用いる。次
にフオントの中心のx座標,y座標がそれぞれ、 となるようにフオントを表示する座標を決定し、表示制
御手段24によつてROM27内の選択されたフオントを液晶
デイスプレイ13に表示する。
一方、サイズ不定文字は少数点“.",横線“−",根号 及びかつこ“(”と“)”であり定まつた大きさをもた
ない。なお横線“−”は負符号,減算記号及び分数線と
して兼用される。
認識された文字がサイズ不定文字であれば以下の処理
を行う。前述の手書きによつて得られた座標の集合のう
ちでx座標の最小値をxmin、x座標の最大値をxmax、y
座標の最小値をymin、y座標の最大値をymaxとする。サ
イズ不定文字はROM27内にフオントのかわりにベクトル
が記憶されており、表示制御手段24は表示される文字の
左端、右端、上端、下端の座標がそれぞれxmin、xmax,y
min、ymaxに一致するようにベクトルによつて文字を構
成し液晶デイスプレイ13に表示する。
こうしてサイズ決定文字又はサイズ不定文字におい
て、表示される文字のコード、位置、大きさが決定する
と、文字のコードCODE(i),文字の左端のx座標x
(i),文字の上端のy座標y(i),文字のx方向の
ドツト数Dx(i),及び文字のy方向のドツト数D
y(i)をRAM28に記憶する。
以上の動作を繰り返し、タブレツト12から1文字ずつ
入力されるごとに、認識された文字を液晶デイスプレイ
13に表示するとともに、RAM28にCODE(i),x(i),y
(i),Dx(i),Dy(i)の各値をx(i)の値が小さ
い文字すなわち左に書かれた文字のデータから順に並ぶ
ように並びかえながら第3図に示す形式で記憶してい
く。
このようにして求められたデータは、例えば第4A図の
入力に対して第4B図のようになり、“=”が入力される
と、置換手段30へ送られる。本装置で利用可能な関数の
一例として第5図の6種類を考えると、置換手段では、
I→1,O→0,L→1等の変換の可能性から、第6図に示す
5種類の文字列をサーチして置換手段30によつて誤認識
あるいは誤入力の類似文字を置換し、第5図の本来の関
数として認識する。このようにして、文字列を液晶デイ
スプレイ13上に表示した場合に、使用者から見て本来の
関数と同じように見えるものは、その関数と認識するこ
とにより、使用者の混乱を防ぐことができる。『サーチ
の方向としては“LOG1"のように関数の後に数字が来る
可能性はあるが、“+LOG"のように関数の直前に数字は
来ないという特徴を利用し、関数の最後の文字や特徴の
ある文字を利用してマツチングをとる。』 第7図は、関数の種類が第5図の6種類だつた場合の
置換手段の動作を説明するフローチヤートである。尚、
関数符号のサーチは“SINLOG"のように複数の符号が続
かないことを基にしている。
まず、ステツプS71において、横方向に一列に並んで
いるコード列を抽出する。これは第4B図においてy
(i)の差がある一定値(例えば±5)よりも小さいも
のの列を抽出することである。第4A図の例では、“1+
S1N"が抽出される。
次にステツプS72では、第4B図においてi=1から抽
出文字数になるまでiを1つずつインクリメントする。
“1+S1N"の場合は、CODE(1)=1,CODE(2)=+な
ので、ステツプS73の判定で“G"でも“N"でも“S"でも
ないのでステツプS72に戻り、CODE(3)=Sの時に、
ステツプS73からステツプS81へ進むが、ステツプS81の
判定でCODE(2)≠0なのでステツプS72に戻る。
次に、CODE(5)=Nの時、ステツプS73からステツ
プS77へと進み、ステツプS77,78の判定でCODE(4)=
1,CODE(3)=SなのでステツプS79でCODE(4)=I
と置換してSINと認識される。
このようにして、ステツプS74〜S76ではLOGに置換
し、ステツプS77〜80ではSINあるいはLNに置換し、ステ
ツプS81〜S83ではCOSに置換する。
ステツプS84で全入力について処理が終了したかをチ
エツクし、まだの場合はステツプS71に戻つて置換処理
を繰り返す。
置換処理を文字数分行い動作を終えると、次処理の数
式認識手段22による数式認識及び演算手段23による演算
を行い、表示制御手段24により液晶デイスプレイ13に結
果の表示を行う。
置換処理は上記実施例に限るものではない。例えば、
上記実施例は関数内に使われた数字をアルフアベツトに
置換するものだつたのに対し、数字列内に使われたアル
フアベツトを数字に置換することも同様に可能である。
第8図は置換手段の他の実施例のフローチヤートであ
る。図中、ステツプS72までは第7図と同じである。次
にステツプS91において、O,I,Sの文字のマツチングを取
り、それぞれステツプS92,ステツプS94,ステツプS96等
で周辺の文字とのマツチングを試行して、失敗した場合
には“O,I,S"等は数字の“0,1,5"であるとして置換を行
う。
尚、本実施例で示したような手段において、“I"と小
文字の“1"または小文字の“b"と“6"等の認識勘違いを
置換することは容易に可能である。それゆえ、関数の種
類も上記6種に限るものではなく、SIN-1やABS等一般の
関数が使用出来る。
続いて数式認識手段22の処理について述べる。本実施
例では数字、正負符号、及び小数点によつて表現される
整数及び小数を数として扱う。また、加算、減算、乗
算、除算、分数、べき乗、及び平方根の演算について通
常数学で用いられる表記に従つて扱う。その他に演算の
順序をかえるために括弧を用いることができる。
まず加算、減算、乗算、除算について述べる。手書き
によつて整数及び小数の加算、減算、乗算、除算及びこ
れらの混合計算を表記するときは通常1行で書く。演算
には優先順位があり、括弧の中、乗除算、加減算の順に
計算される。優先順位が同じ場合は左から計算される。
このような1行で書かれる数式において、左の文字から
順に演算手段23へ入力することによつて演算手段23が優
先順位を判定して計算を行なう方法は、例えばコンピユ
ータ言語のBASICインタプリタ等で公知である。従つ
て、加減乗除の混合計算においては、手書きによつて書
かれた文字を左から順に並べて出力するだけでよい。
手書き文字認識手段21によつてRAM28に記憶されたCOD
E(i)は、x(i)が小さい順に並んでいるので、COD
E(i)を順に取り出してコード例として出力すればよ
い。ただし、前述のサイズ決定文字においてDx(i)及
びDy(i)の値が8であるときは、8ドツトフォントで
あり指数を表わすので、後述の処理によつてべき乗の計
算をしなければならない。また、負符号及び減算記号は
分数線と兼用なので、後述の処理によつて負符号または
減算記号であることを確認しなければならない。なお、
正符号と加算記号、負符号と減算記号は区別せずに出力
する。
加減乗除の混合計算の例を、第9図,第10図及び第11
図に示す。ペン11によつてタブレツト12へ第9図に示す
数式が書かれると、手書き文字認識手段21によつて第10
図に示すデータが得られる。これをもとに数式認識手段
22は第11図に示す形式でコード列をRAM28に出力する。
演算手段23は前記コード列を入力し、演算の優先順位を
判定しながら計算を行ない解を出力する。そして、表示
制御手段24によつて解が液晶デイスプレイ13に表示され
ることによつて計算機としての機能が果たされる。
次に分数について述べる。分数は除算の別の表記法で
あり、下記の変換を行なうことができる。
ここで、A,Bは任意の手書き数式であり、A′,B′は
それぞれA,Bから生成されたコード列である。
まず、分子の位置、すなわち分数線の上方に存在する
文字のみを抽出して数式Aを構成する。数式Aが加減乗
除の混合計算である場合、数式Aからコード列A′を生
成する方法についてはすでに述べた。また、数式Aが分
数を含む場合は、分数に関する処理を再帰的に実行す
る。この場合、通常分数線は数式A,Bより先に書くが、
書き順が不定である場合でも、x座標の重なる分数線の
内x方向に長いものを先に選ぶことにより分数線の処理
順序を決定できる。また、数式Aが後述のべき乗や平方
根を含む場合もそれぞれの処理を実行しコード列A′を
得ることができる。
次に同様に、分母の位置、すなわち分数線の下方に存
在する文字のみを抽出して数式Bを構成し、コード列
B′を生成する。そして、コード列A′とコード列B′
をそれぞれ括弧でくくり除算記号“÷”で結合すること
により、分数を表わすコード列を生成することができ
る。なお、横線に対して分子及び分母の位置に文字が存
在しないときは、その横線は分数線でなく負符号又は減
算記号と判断する。
分数を含んだ計算の例を、第12図,第13図及び第14図
に示す。ペン11によつてタブレツト12へ第12図に示す数
式が書かれると、手書き文字認識手段21によつて第13図
に示すデータが得られる。これをもとに数式認識手段22
は、第14図に示す形式でコード列をRAM28に出力する。
このコード列によつて前述の加減乗除の混合計算の際と
同様に解が計算され、液晶デイスプレイ13に表示され
る。
続いてべき乗について述べる。本実施例では指数部に
おける数字及び演算子に8ドツトフオントを用い、その
他の数字及び演算子に16ドツトフオントを用いる。前述
のように手書きで文字を書く際に大きな文字を書くと16
ドツトフオントが表示され、小さな文字を書くと8ドツ
トフオントとが表示される。16ドツトフオントの文字は
Dx(i)=Dy(i)=16であり、8ドツトフオントの文
字はDx(i)=Dy(i)=8である。
また、サイズ不定文字については下記の規則に従う。
すなわち右括弧“)”以外のサイズ不定文字について
は、以後最初に取り出されるサイズ決定文字が8ドツト
フオントであればそのサイズ不定文字は指数部に属し、
16ドツトフオントであればそのサイズ不定文字は指数部
外に属する。また右括弧“)”については対になる左括
弧と同じ属性を持つ。
さて本実施例ではべき乗をコード列で表すために、べ
き乗演算子“^"を導入し下記の変換を行なう。CD→C′
^(D′) ここで、Cは任意の数式でありDはべき乗を含まない
任意の式である。C′,D′はそれぞれC,Dから生成され
たコード列である。
コード列を生成している際に、指数部外に属する文字
の次に指数部に属する文字がきたときに、べき乗記号
“^"及び左括弧“(”を挿入する。また、指数分に属す
る文字の次に指数部外に属する文字がきたときに、右括
弧“)”を挿入する。演算手段23において、このべき乗
記号“^"を他の演算子と同様に用いて加減乗除算との混
合計算を行なう方法は公知である。この際の演算の優先
順位は、括弧の中、べき乗、乗除算、加減算の順であ
り、優先順位が同じ場合は左から計算される。
べき乗を含んだ計算の例を、第15図,第16図第17図に
示す。ペン11によってタブレツト12へ第15図に示す数式
が書かれると、手書き文字認識手段21によつて、第16図
に示すデータが得られる。これをもとに数式認識手段22
は、第17図に示す形式でコード列をRAM28に出力する。
このコード列によつて、前述の加減乗除の混合計算の際
と同様に解が計算され、液晶デイスプレイ13に表示され
る。
次に平行根について述べる。本実施例では平方根をコ
ード列で表わすために下記の変換を行なう。
ここで、Eは任意の数式であり、E′はEから生成さ
れたコード列である。根号の内部の位置に存在する文字
のみを抽出して数式Eを構成し、数式Eから前述の方法
によりコード列E′を生成する。
数式Eが平方根を含む場合は、平方根に関する処理を
再帰的に実行する。なお、通常平方根が数式Eより先に
書かれるが、順序が不定の場合も、x座標が重なる場合
はx方向の長いものから選ばれることにより、平方根の
処理順序を決定できる。そしてコード列E′を括弧でく
くり根号 の後に結合することにより、平方根を表わすコード列を
生成することができる。演算手段23において平方根演算
と加減乗除算やべき乗との根号計算を行なう方法は公知
である。この際の演算の優先順位は、括弧の中、平方
根、べき乗、乗除算、加減算の順で、優先順位が同じ場
合は左から計算される。
平方根を含んだ計算の例を、第18図、第19図、第20図
に示す。ペン11によつてタブレツト12へ第18図に示す数
式が書かれると、手書き文字認識手段21によつて、第19
図に示すデータが得られる。これをもとに数式認識手段
22は、第20図に示す形式コード列をRAM28に出力する。
このコード列によつて、前述の加減乗除の混合計算と同
様に解が計算され、液晶デイスプレイ13に表示される。
次に第21図から第34図に示すフローチヤートによっ
て、本実施例における数式認識を更に詳細に説明する。
尚、本実施例では第3図に示すように、左に書かれた文
字のデータから並べかえてRAM28内に記憶されるので、
分数線及び根号は自動的にその範囲に含まれる数式より
も先に入力されたものとなる。このため、使用者は入力
の順序を考慮しなくてよい。
第21図はメインルーチンであり、まずステツプS101に
おいて、i,j,k,n,F,xman,ymin,ymaxの各変数に初期値を
代入する。ここで、iは入力データにおいて現在処理し
ている文字を指すポインタである。また出力コード列S
(1),S(2)…に新たな文字コードが加わる位置は、
通常コード列の最後でありその位置を指すポインタがk
である。ただし、コード列の中に文字コードを挿入する
場合もあり、その位置を指すポインタがjである。ま
た、nは括弧のネステイングの段数、Fは指数部を表わ
すフラグ、xmaxは数式認識を行なう領域を指定するx座
標の最大値、yminは同じくy座標の最小値、ymaxは同じ
くy座標の最大値である。
次にステツプS102において領域内に存在する数式の認
識を行なう。メインルーチンにおいては領域内に数式全
体が含まれるので、本ステツプによつて数式全体の認識
が行なわれる。
第22図は領域内認識の処理ルーチンを示したものであ
る。領域内認識ルーチンはメインルーチンで呼び出され
るほか、分子、分母、根号の中の数式の認識においても
呼び出される。
まずステツプS201において、x(i)がxmaxより大き
ければCODE(i)以降の文字は領域外であり領域内認識
を終了する。一方、x(i)がxmaxより大きくなければ
ステツプS202へ進む。ステツプS202においてy(i)が
yminより小さいか、またはステツプS203においてy
(i)がymaxより大きければCODE(i)は領域外の文字
であり、ステツプS216へ進みiを1つ増して、ステツプ
S201へ戻り次の文字の処理を行なう。一方、y(i)が
yminより小さくなく、かつymaxより大きくないときはCO
DE(i)は領域内の文字であり、ステツプS204へ進む。
ステツプS204からステツプS208において、CODE(i)
を小数点“.",左括弧“(",右括弧“)",横線“−",根
サイズ決定文字のいずれかに分類し、それぞれステツプ
S211、ステツプS212、ステツプS213、ステツプS214、ス
テツプS215、ステツプS209へ分岐する。それぞれの処理
の終了後、ステツプS216へ進みiを1つ増して、ステツ
プS201へ戻り次の文字の処理を行なう。ただし、サイズ
決定文字の際、ステツプS210においてCODE(i)が等号
“=”であるときは領域内認識を終了する。
第23図は第22図のステツプS209のサイズ決定文字の処
理ルーチンを示す。
まずステツプS301においてDx(i)が8であれば8ド
ツトフオントであるので、指数部内の文字でありステツ
プS310へ進む。ステツプS310は指数部内の文字が現われ
た時の処理であり第25図で詳しく説明する。
第25図のステツプS411において、変数Fが0であれば
指数外部から指数部内へ入つたので、べき乗を表わす文
字コード“^"及び指数部をくくるための左括弧“(”を
挿入する処理を行なうため、ステツプS412以降へ進む。
もしFが0でなければそのまま終了する。
ステツプS412において、指数部内へ入つたことを記憶
しておくために変数Fを1にする。ステツプS413におい
ては変数jと変数kを比較する。出力コード列S
(1),S(2),S(3)…において、S(1)からS
(j−1)までは指数部内であるか指数部外であるかが
確定している。また、S(j)からS(k−1)までは
サイズ不定文字であり指数部内であるか指数部外である
かは保留されている。
ここで、j=kであれば保留されているコードは存在
せずステツプS415へ進む。一方、j≠kであればCODE
(i)が指数部内に属するので、保留されているコード
列も指数部内に属する。従つて、ステツプS414において
文字コード“^"及び“(”をS(j)及びS(j+1)
に挿入するために、S(j)からS(K−1)までにす
でに入つているコード列をS(j+2)からS(k+
1)までにブロツク転送し、2文字分後へシフトする。
ステツプS415においては文字が2文字挿入されたので変
数kを2増しておく、そして、ステツプS416において文
字コード“^"をS(j)に、“(”をS(j+1)にそ
れぞれ入れる。
一方、第23図のステツプS301において、Dx(i)が8
でなければ16ドツトフオントであるので、指数部外の文
字でありステツプS302へ進む。ステツプS302は指数部外
の文字が現われたときの処理であり第24図で詳しく説明
する。
第24図のステツプS401において変数Fが1であれば指
数部内から指数部外へ出たので、指数部をくくるための
右括弧“)”を挿入する処理を行なうため、ステツプS4
02以降へ進む。もしFが1でなければそのまま終了す
る。ステツプS402において指数部外へ出たことを記憶し
ておくために変数Fを0にする。ステツプS403において
は変数jと変数kを比較する。出力コード列S(1),S
(2),S(3)…において、S(1)からS(j−1)
までは指数部内であるか指数部外であるかが確定してい
る。また、S(j)からS(k−1)までは指数部内で
あるか指数部外であるかは保留されている。
ここで、j=kであれば保留されているコードは存在
せずステツプS405へ進む。一方、j≠kであればCODE
(i)が指数部外に属するので、保留されているコード
列も指数部外に属する。従つて、ステツプS404において
文字コード“)”をS(j)へ挿入するために、S
(j)からS(k−1)までにすでに入つているコード
列をS(j+1)からS(k)までにブロツク転送し、
1文字シフトする。ステツプS405においては文字は1文
字挿入されたので変数kを1つ増しておく。そしてステ
ツプS406において文字コード“)”をS(j)に入れ
る。
第23図のステツプS310又はステツプS302における指数
に関する処理が終わると、ステツプS303へ進み、CODE
(i)をS(k)に入れる。kは次の文字コードを入れ
る位置を指すために1つ増す。またステツプS304におい
ては、この段階でS(1)からS(k−1)までのすべ
てのコードが指数部内であるか指数部外であるか確定し
たので、jをkに等しくしておく。
次のステツプS305以降の処理は、左括弧は指数部内に
属するか指数部外に属するかを対応する右括弧が現われ
るまで覚えておくためのものである。左括弧はサイズ不
定文字であり、左括弧が現われたときは指数部内に属す
るか指数部外に属するかは保留されている。その後サイ
ズ決定文字が現われることによって属性が決定されるの
で、ステツプS305以降の処理によつて属性(指数部内か
指数部外か)を覚えておくのである。
まず後述のようにネステイングの段数がmである左括
弧の属性が保留になつているときは、属性P(m)(以
下属性をPとし、m段の左括弧の属性をP(m)とす
る)が保留を示す−1になつている。ステツプS305にお
いて変数mを1とし、ステツプS306において属性P
(m)が−1であれば、ステツプS307において属性P
(m)に変数Fを代入することによつて、属性P(m)
にm段目の左括弧の属性を記憶しておく。属性P(m)
が−1でなければすでに属性が決定されているのでその
ままである。ステツプS308においてmを1つ増し、ステ
ツプS309においてmが最も新しい左括弧の段数nを超え
るまでステツプS306以降を繰り返すことにより、すべて
の左括弧の属性が記憶される。これでサイズ決定文字の
処理は終了である。
第26図は第22図のステツプS211の小数点の処理ルーチ
ンを示す。ステツプS501においてS(k)に文字コード
“."を入れる。kは次の文字コードを入れる位置を指す
ために1つ増す。ただし、小数点“."はサイズ不定文字
であり、指数部内に属するか指数部外に属するか保留に
なるので、jの値は増さずにそのままにしておく。jは
属性が決定したときに文字コード“^"及び“(”または
文字コード“)”を挿入する位置を指す。一般にkはS
(k)に文字コードが入るたびに1つ増し、jはサイズ
決定文字及び右括弧の処理後kと同じ値になり、その他
のときは動かない。
第27図は第22図のステツプS212の左括弧の処理ルーチ
ンを示す。ステツプS601においてS(k)に文字コード
“(”を入れる。kは次の文字コードを入れる位置を指
すために1つ増す。左括弧“(”もサイズ不定文字であ
るので指数に関する属性は保留である。ステツプS602に
おいてはネステイングが1段増えるのでnを1つ増す。
そしてステツプS603においてこの左括弧の属性が保留さ
れていることを記憶するために属性P(n)を−1とす
る。
第28図は第22図のステツプS213の右括弧の処理ルーチ
ンを示す。ステツプS611において属性P(n)が1であ
れば対応する左括弧が指数部内に属しているので、この
右括弧も指数部内に属しておりすでに述べた第25図の指
数部内の処理を行なう。一方、属性P(n)が1でなけ
れば対応する左括弧が指数部外に属しているのでこの右
括弧も指数部外に属しており、すでに述べた第24図の指
数部外の処理を行なう。それぞれの処理後、ステツプS6
13においてS(k)に文字コード“)”を入れる。kは
次の文字がコードを入れる位置を指すために1つ増す。
右括弧“)”はサイズ不定文字であるが指数に関する属
性が決定したので、ステツプS614によつてjをkと等し
くする。ステツプS615においてはネステイングは1段減
るのでnを1つ減じる。
第29図は第22図のステツプS214の横線の処理ルーチン
を示す。ステツプS701からステツプS707までは横線が分
数線かマイナス(以下負符号と減算記号を総称してマイ
ナスと呼ぶ)であるか調べる処理である。まずステツプ
S701においてxmaxの値を保存しておくためにスタツクに
プツシユする。続いてステツプS702においてxmaxをx
(i)+Dx(i)すなわち横線の右端のx座標とする。
続いてステツプS703においてiの値を保存しておくため
にスタツクにプツシユする。次にステツプS704において
iを1つ増して処理を次の文字に移す。
ステツプS705において、新たなiについてx(i)が
xmaxより大きくなけれがステツプS706へ進む。ステツプ
S706においてy(i)がyminよりも小さくなく、かつス
テツプS707においてy(i)がymaxより大きくないとき
は、前記横線に対して分子又は分母の位置に存在する文
字であるので、前記横線は分数線でありステツプS708へ
進む。ステツプS708においては、スタツクからiの値を
ポツプすることによつてiを前記横線に戻す。そしてス
テツプS709において分子,分母を含めた分数の処理を行
なう。ステツプS710においては、スタツクからxmax値を
ポツプすることによつて領域をもとに戻す。
一方、ステツプS706においてy(i)がyminより小さ
いか、またはy(i)がymaxより大きいときは、ステツ
プS704へ戻りiを1つ増して処理を次の文字へ移す。ス
テツプS704からステツプS707を繰り返すうちに、ステツ
プS705においてx(i)がxmaxより大きくなれば、前記
横線に対して分子及び分母の位置に文字が存在しなかつ
たので前記横線はマイナスであり、ステツプS711へ進
む。ステツプS711においてはスタツクからiの値をポツ
プすることによつてiを前記横線へ戻す。そしてステツ
プS712においてマイナスの処理を行なう。ステツプS710
においては、スタツクからxmaxの値をポツプすることに
よつて領域をもとに戻す。
第30図に第29図のステツプS709の分数の処理ルーチン
を示す。まずステツプS801において、分子をくくる左括
弧“(”をS(k)に入れる。kは次の文字コードを入
れる位置を指すために1つ増す。次にステツプS802にお
いて、iの値を保存しておくためにスタツクにプツシユ
する。そしてステツプS803において分子の処理を行な
う。分子の処理ルーチンは第31図に示す。
第31図において、まずステツプS811においてymaxの値
を保存しておくためにスタツクにプツシユする。続いて
ステツプS812においてymaxをy(i)すなわち分数線の
y座標とする。次にステツプS813においてiを1つ増し
て処理を次の文字に移す。そしてステツプS814において
分子の領域に対して、すでに述べた第22図の領域内認識
を行なう。領域内認識が終了するとステツプS815におい
てスタツクからymaxをポツプしてもとの値へ戻す。
第30図においてステツプS803の分子の処理が終了する
と、ステツプ804において、分子をくくる右括弧“)”
をS(k)に入れる。kは次の文字コードを入れる位置
を指すために1つ増す。次にステツプS805において、除
算記号“÷”をS(k)に入れ、kを1つ増す。さらに
ステツプS806において、分母をくくる左括弧“(”をS
(k)に入れ、kを1つ増す。次にステツプS807におい
てスタツクからiの値をポツプすることによつてiを前
記横線へ戻す。そしてステツプ808において分母の処理
を行なう。分母の処理ルーチンは第32図に示す。
第32図において、まずステツプS821においてyminの値
を保存しておくためにスタツクにプツシユする。続いて
ステツプS822においてyminをy(i)すなわち分数線の
y座標とする。次にステツプS823においてiを1つ増し
て処理を次の文字に移す。そしてステツプS824において
分母の領域に対してすでに述べた第22図の領域内認識を
行なう。領域内認識が終了すると、ステツプS825におい
てスタツクからyminをポツプしてもとの値へ戻す。
第30図においてステツプS808の分母処理が終了する
と、ステツプS809において、分母をくくる右括弧“)”
をS(k)に入れる。kは次の文字コードを入れる位置
を指すために1つ増す。ここで、iの値はxmaxすなわち
分数線の右端より右にある最初の文字を指している。こ
の文字は分数の処理が終了した後、次に処理すべき文字
である。ところが、第22図のステツプS216でiを1つ増
すので、ステツプS810において予めiを1つ減じてお
く。これによつて分数の処理が終了した後、次に処理す
る文字が分数線の右端より右にある最初の文字となる。
第33図に第29図のステツプS712のマイナスの処理ルー
チンを示す。ステツプS831においてS(k)に文字コー
ド“−”を入れる。もはやこの時点では文字コード
“−”は分数線でなく、マイナスを表わす。kは次の文
字コードを入れる位置を示すために1つ増す。指数部内
に属するか指数部外に属するかは保留である。
最後に、第34図に第22図のステツプS215の平方根の処
理ルーチンを示す。まずステツプS901においてxmaxの値
を保持しておくためにスタツクにプツシユする、続いて
ステツプS902において、xmaxをx(i)+Dx(i)すな
わち根号の右端のx座標とする。次にステツプS903にお
いて根号 をS(k)に入れる。kは次の文字コードを入れる位置
を指すために1つ増す。次にステツプS904において根号
の内部をくくるための左括弧“(”をS(k)に入れ、
kを1つ増す。次にステツプS905においてiを1つ増し
て処理を次の文字に移す。
そしてステツプS906において、根号内の領域に対して
すでに述べた第22図の領域内認識を行なう。領域内認識
が終了するとステツプS907において、根号の内部をくく
るための右括弧“)”をS(k)に入れ、kを1つ増
す。ここで、iの値はxmax、すなわち根号の右端より右
にある最初の文字を指している。この文字は平方根の処
理が終了した後、次に処理すべき文字である。
ところが第22図のステツプS216でiを1つ増すので、
ステツプS908においてあらかじめ1つ減じておく。これ
によって平方根の処理が終了した後、次に処理する文字
が根号の右端より右にある最初の文字となる。ステツプ
S909においてはスタツクからxをポツプすることによつ
て領域をもとに戻す。以上示したようにコード列S
(1)、S(2)、S(3)、…が生成される。
次に、関数は認識出来でも複数の単位系が可能な例と
して、三角関数の場合を第35A図に示す例について説明
する。
第35B図ではCODE(6)の小さい“”を、60の0乗
ではなくSINに対するデグリー単位の使用であると認識
し、デグリー単位の計算をする必要がある。この認識お
よび、計算をフローチヤートにしたものが第36図であ
る。
順を追つて説明すると、数式認識手段22内において、
まずステツプS50によりiを1からコード列の文字数ま
でスキヤンさせ、ステツプS51において三角関数を見つ
け出す。次にステツプS52で三角関数を“SIN数字”の形
と“SIN(数列)”との形に分けて、ステツプS53又はス
テツプS54でそれぞれ関数のかかつている位置までiを
増やし、ステツプS55で次の文字CODE(i+1)をチエ
ツクし、その文字が小さいフオントを使用した“”だ
つた場合は、デグリー単位系であるとし、その場合はス
テツプS56において、ラジアン単位に補正し、三角関数
計算手段23aでは、常にラジアン単位であるとして演算
する。
逆に、ステツプS55において、NOであつた場合に、
“÷2÷π×360"の補正を行い、次処理ではデグリー単
位で演算しても良い。
三角関数の計算は上記実施例に限るものではない。例
えば上記実施例は角度を示す“”の発見によりデグリ
ー単位を使うことを認識したが、ラジアン単位系に特有
な“π”を発見する事によつても良い。そうした場合の
実施例を第37図に示す。
ステツプS60〜S62までは第36図のステツプS50〜S52と
同じである。次にステツプS63においては、コード数が
数字である間中スキヤンしてステツプS64でπを捜す。
ステツプS65,S66では、( )ではさまれた間をスキヤ
ンしてπを捜す。πがあればラジアン単位系なので、ス
テツプS67で“÷2÷π×360"によりデグリー単位系に
補正し、以下の三角関数計算手段23aではデグリー単位
系で三角関数の計算を行う。
ところで、以上の実施例ではデグリー単位系、又はラ
ジアン単位系の一方を発見しているが、これを両方使つ
た実施例も当然存在する。この場合、両単位系であるこ
とが確認されなかつた場合(例えばSIN=等)には、表
示画面13上に、「単位系を選んで下さい。RAD,DEG,GR
A」等の表示を出力し、座標入力装置1によつて選択し
てもよい。
以上の実施例で以下の効果がある。
1.使用者に特別の筆記方法を強制する事なしに、Iと1,
Oと0等を区別して、関数を認識することが出来る。
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図のデータをもとに生成されコード列のRA
M内の形式を示した図、 第21図は第1の実施例の数式認識装置の処理のメインル
ーチンのフローチヤート、 第22図は領域内認識の処理ルーチンのフローチヤート、 第23図はサイズ決定文字の処理ルーチンのフローチヤー
ト、 第24図は指数部外の処理ルーチンのフローチヤート、 第25図は指数部内の処理ルーチンのフローチヤート、 第26図は小数点の処理ルーチンのフローチヤート、 第27図は左括弧の処理ルーチンのフローチヤート、 第28図は右括弧の処理ルーチンのフローチヤート、 第29図は横線の処理ルーチンのフローチヤート、 第30図は分数の処理ルーチンのフローチヤート、 第31図は分子の処理ルーチンのフローチヤート、 第32図は分母の処理ルーチンのフローチヤート、 第33図はマイナスの処理ルーチンのフローチヤート、 第34図は平方根の処理ルーチンのフローチヤート、 第35A図は三角関数を含む数式の例をタブレツト上と書
いた図、 第35B図は第35A図の数式の各文字のコード,位置,大き
さを表わすデータを示した図、 第36図は置換手段による三角関数の処理手順を示すフロ
ーチヤート、 第37図は他の実施例の置換手段による三角関数の処理手
順を示すフローチヤートである。 図中、1……入出力一体型形手書き座標入力装置、2…
…マイクロコンピュータ、11……ペン、12……タブレツ
ト、13……液晶デイスプレイ、21……手書き文字認識手
段、22……数式認識手段、23……演算手段、23a……三
角関数計算手段、24……表示制御手段、25……入力部、
26……CPU、27……ROM、28……RAM、29……出力部、30
……置換手段である。

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】数式を表す文字列を入力し、 前記入力した文字列内の文字の組み合わせに従って、該
    入力した文字列に含まれている関数を表す文字列を識別
    し、 前記識別された関数を表す文字列の後ろ方向へ、単位系
    を特定する文字を検索し、 前記検索の結果発見した単位系を特定する文字と前記識
    別された関数を表す文字列との間にある数字が表す数値
    を、前記発見した単位系から前記関数に対応付けて予め
    定めてある別の単位系に変換することを特徴とする情報
    処理方法。
  2. 【請求項2】前記入力する文字列は、文字画像の認識結
    果として得た文字列とすることを特徴とする請求項1に
    記載の情報処理方法。
  3. 【請求項3】前記文字画像は座標点列として入力するこ
    とを特徴とする請求項2に記載の情報処理方法。
  4. 【請求項4】前記変換した数値と前記識別した関数を用
    いて演算を行い、 前記演算の結果を出力することを特徴とする請求項1に
    記載の情報処理方法。
  5. 【請求項5】数式を表す文字例を入力する入力手段と、 前記入力した文字列内の文字の組み合わせに従って、該
    入力した文字列に含まれている関数を表す文字列を識別
    する関数文字列識別手段と、 前記識別された関数を表す文字列の後ろ方向へ、単位系
    を特定する文字を検索する検索手段と、 前記検索の結果発見した単位系を特定する文字と前記識
    別された関数を表す文字列との間にある数字が表す数値
    を、前記発見した単位系から前記関数に対応付けて予め
    定めてある別の単位系に変換する変換手段とを有するこ
    とを特徴とする情報処理装置。
  6. 【請求項6】前記入力手段により入力する文字列は、文
    字画像の認識結果として得た文字列とすることを特徴と
    する請求項5に記載の情報処理装置。
  7. 【請求項7】前記文字画像を座標点列として入力する座
    標入力手段を有することを特徴とする請求項6に記載の
    情報処理装置。
  8. 【請求項8】前記変換した数値と前記識別した関数を用
    いて演算を行う演算手段と、 前記演算の結果を出力する出力手段とを有することを特
    徴とする請求項5に記載の情報処理装置。
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 JPH01302484A (ja) 1989-12-06
JP2984275B2 true 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)

Families Citing this family (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 手書き計算処理装置の手書き計算処理方法
CN111539383B (zh) * 2020-05-22 2023-05-05 浙江蓝鸽科技有限公司 公式知识点识别方法及装置

Family Cites Families (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 手書きパタ−ン入力装置

Also Published As

Publication number Publication date
JPH01302484A (ja) 1989-12-06

Similar Documents

Publication Publication Date Title
JP3046027B2 (ja) 文字処理方法
JP7142121B2 (ja) 文字認識の方法、装置、電子設備、コンピュータ可読記憶媒体、及びプログラム
JP2984275B2 (ja) 情報処理方法及び装置
JP2974320B2 (ja) 文字処理方法及び装置
CN111090341A (zh) 输入法候选结果展示方法、相关设备及可读存储介质
CN112256175B (zh) 文字显示方法、装置、电子设备及计算机可读存储介质
US10949699B2 (en) Input apparatus having character recognition function for recognizing input handwriting, and input method and storage medium with program stored thereon having same
JP2019145023A (ja) 文書校閲装置およびプログラム
JP7317612B2 (ja) 情報処理装置、情報処理方法及びプログラム
JPS6362783B2 (ja)
JPH0935006A (ja) 文字認識装置
CN113778281B (zh) 辅助信息生成方法、装置及电子设备和存储介质
CN111079403B (zh) 一种页面对比方法及装置
JP5471126B2 (ja) 電子機器及びプログラム
JP3128357B2 (ja) 文字認識処理装置
JP3174886B2 (ja) 形態素解析コスト作成支援装置
JP3270551B2 (ja) 文字認識装置および文字認識方法
JP6772629B2 (ja) 情報処理装置、文字入力プログラムおよび文字入力方法
JP2882327B2 (ja) 線図形整合装置
CN117873333A (zh) 拼音码辅以组合替换的俄文字母输入控制方法、装置、电子设备及存储介质
JP2024078159A (ja) 文字列識別方法
JP2740506B2 (ja) 画像認識方法
JP2024078160A (ja) 文字列識別方法
JPH0721171A (ja) キー入力訂正装置
JP2023003647A (ja) 情報処理装置、及び、プログラム

Legal Events

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