とね日記

理数系ネタ、パソコン、フランス語の話が中心。
量子テレポーテーションや超弦理論の理解を目指して勉強を続けています!

数式を効率的に点字入力する方法の調査(2)

2014年11月02日 01時52分37秒 | 理科復活プロジェクト
ネメス点字による数式例


数式を効率的に点字入力する方法の調査(1)」という記事の最後のほうで予告したように、Webサービスを使って数式を点字に変換し、点字ファイルを作る方法を紹介しよう。

さしあたり今回は掲載画像のように「2のn乗分の1についてnが1から無限大まで総和をとる」数式を点字に変換することを目標にする。変換手順を説明するのが目的なので比較的シンプルな数式を選んだ。


1) 元データの準備

Nemeth Braille Code for Mathematics and Science 1972 Revision」のページで「14. Modifiers」のページを表示させてからBraille:で「Unicode Braille」を選択してから「Apply」をクリックするとページの中ほどに次の表記が表示される。

クリックで拡大


背景が薄緑色表示されている箇所の「sigma-summation Underscript n equals 1 Overscript infinity EndScripts StartFraction 1 Over 2 Superscript n Baseline EndFraction equals 1」のことをこのサイトではverbose semanticsと呼んでいるわけだが、この文字列はこの数式を構成する各部分の点字表記の順番に沿う形で数式の構造を表現しているのだ。このverbose semanticsは数式の音声読み上げのためにも使うことができる。

また同じページで「Braille: Dot Patterns」を選んで「Apply」をクリックすると「Braille Dot Patterns: dots 5 dots 4 6 dots 6 dots 2 3 4 dots 1 4 6 dots 1 3 4 5 dots 4 6 dots 1 3 6 dots 3 4 5 6 dots 2dots 1 2 6 dots 6 dots 1 2 3 4 5 6 dots 1 2 4 5 6 dots 1 4 5 6 dots 2 dots 3 4 dots 2 3 dots 4 5 dots 1 3 4 5 dots 5 dots 3 4 5 6 dots 4 6 dots 1 3 6 dots 3 4 5 6 dots 2」のような点字表記が得られる。

クリックで拡大


「sigma-summation Underscript n equals 1 Overscript infinity EndScripts StartFraction 1 Over 2 Superscript n Baseline EndFraction equals 1」というverbose semantics表記の各部分はそのままの順番で点字パターンに対応している。そこで次のようなExcel表を作る。(Sheet1)



重要: 今回使用するExcel表では、セルの属性はすべて文字列(テキスト)に指定することを忘れないようにしてほしい。

ここで注意してほしいのは「1」や「2」などのアラビア数字である。ネメス点字でのアラビア数字の「1」と「2」はそれぞれ「dot 2」と「dot 2 3」なのだが、日本で一般的に使われている数字表記は一段上げた「dot 1」と「dot 1 2」なのと、後で編集に使うT・エディタがネメス点字の表示をサポートしていないので、日本標準の点字表示にしてあることだ。

また数字には数符(dot 3 4 5 6)が前についているのと、ついていないのがあることにも注意。今回の方法では数字の前には必ず数符をつけておくことにする。

また点字変換の入力ファイルとして work.txt というテキスト・ファイルを作り「sigma-summation Underscript n equals 1 Overscript infinity EndScripts StartFraction 1 Over 2 Superscript n Baseline EndFraction equals 1」という文字列を入力しておく。


2) 変換テーブル1(replace1.lst)の作成と実行

ExcelでSheet2にSheet1の内容をコピーし、verbose semanticsのキーワードの長さ順にソートした表を作る。A列に「=len()」関数を入力し、その引数にB列の値を参照させ、A列をキーにして降順に並び替えると次のようになる。



次にSheet3を作成する。Sheet3は次の3つの部分から構成される。

1つめの部分は次のようなものだ。verbose semanticsに含まれているアラビア数字と小数点をいったん漢数字に変換して退避させておくための変換テーブルだ。



2つ目の部分はSheet2からコピーして作る。その際「1」や「2」などのアラビア数字の行や重複している行は削除する。



3つめの部分は次のようなものだ。前半では漢数字に退避させておいた数字や小数点を点字表記にする。その際、数字の前には数符号(dot3456)をつけておく。後半では数符の前に数字があるときはその数符を削除する。そうしないと3.1415926のような数字が入力されたときに、それぞれの数字の前に数符がついてしまうからだ。



このSheet3をreplace1.lstというテキスト・ファイルとして保存しておく。

変換には「Speeeeed」という文字列検索/置換をするフリーウェアを使う。このソフトはreplace.lstという置換リストをもとにして検索/置換を一括で行うことができる。

replace1.lstをreplace.lstにコピーして「リスト編集」というボタンをクリックし、検索/置換リストの内容を確認する。



work.txtには「sigma-summation Underscript n equals 1 Overscript infinity EndScripts StartFraction 1 Over 2 Superscript n Baseline EndFraction equals 1」を入力してあるので、このファイルに対して検索/置換を実行するとwork.txtの内容は次のうに変換される。



変換前


変換後


この「dots 5 dots 4 6 dots 6 dots 2 3 4 dots 1 4 6 dots 1 3 4 5 dots 4 6 dots 1 3 6 dots3456dots1 dots 1 2 6 dots 6 dots 1 2 3 4 5 6 dots 1 2 4 5 6 dots 1 4 5 6 dots3456dots1 dots 3 4 dots3456dots12 dots 4 5 dots 1 3 4 5 dots 5 dots 3 4 5 6 dots 4 6 dots 1 3 6 dots3456dots1」というwork.txtの内容が次に行う変換の入力として使われる。


3) 変換テーブル2(replace2.lst)の作成と実行

次のような変換テーブルをSheet4に作成し、replace2.lstとして保存する。画面では表示されていないが1行目は半角スペースを削除するためのもので、左のセルには半角スペースが入力されているが、右のセルには何も入力されていない。

また2行目のdotsの右側のセルには半角スペースが入力されている。



この変換リストreplace2.lstをreplace.lstにコピーして、work.txtを変換すると次のようになる。



なぜ、このような検索/置換を行うかというと「点字自動翻訳システム」というWebサービスの「点字をかなに自動変換する」を使って点字表記をかな表記に変換する機能を使うためだ。

このWebサービスでは「入力方法」のページに示されているようにテンキーの配列で点字を数字として入力する。そのためにdots 1234のような表記を7418のようにテンキーの配列に置き換える必要があるのだ。



また数字以外は入力として受け付けられないのでdotsのような英単語は半角スペースに置き換えておく。

work.txtの内容はこの変換によって「5 82 2 418 782 7185 82 712 1852 7 742 2 741852 74852 7852 1852 7 18 1852 74 85 7185 5 1852 82 712 1852 7」になっている。これが与えられた数式のテンキー入力方式による点字表現で、Webサービスによって「ひらがな表現」に変換される。


4) Webサービスを使って「ひらがな表現」に変換する

点字をかなに自動変換する」というページにwork.txtの内容をコピー&ペーストして「変換する」ボタンをクリックする。

変換前



変換後



変換後の「濁音拗半濁音半濁音のくつぴゃ数字あき半濁音めせす数字あや数字いぢゅ濁音数字ぴゃ数字あ」という文字列が次の変換への入力となるのでコピー&ペーストしてwork.txtに上書きしておく。


5) 変換テーブル3(replace3.lst)の作成と実行

次に「eBraille」というWebサービスを使って点字ファイルを生成することを試みる。「eBraille (Version 2.00」の「ステップ2」以降を利用して点字に変換したい。

この段階では入力は「ひらがなと数字」だけの表記にしておかなければならないので、次のような変換テーブル3をSheet5として作成し、replace3.lstとして保存しておく。



replace3.lstをreplace.lstにコピーし、検索/置換を行うとwork.txtはこのように変換される。



つまり、半濁音や拗濁音、数符などの点字での特殊文字は1文字だけ単独で入力できないので、ぱ」、「ぎゃ」、「0」などのひらがなや数字を入力に使うことで無理やり点字表記に含ませてしまうわけだ。これらの特殊記号の点字表記は「基礎コーナー 拗音・拗濁音・拗半濁音」というページを参考にしていただきたい。


この段階で得られた「がぴゃぱのくつぴゃ0あきぱめせす0あや0いぢゅが0ぴゃ0あ」という文字列は次の手順の入力として使われる。


6) Webサービスを使って「点字表現」に変換し、点字ファイルを出力する

eBrailleのステップ2の画面」を開き、work.txtから「がぴゃぱのくつぴゃ0あきぱめせす0あや0いぢゅが0ぴゃ0あ」の文字列をコピー&ペーストして点字への変換を行う。

変換前


変換後


そして「点字エディタ用ファイルをダウンロードする」というボタンをクリックすれば点字ファイル(BSE形式)をダウンロードすることができる。


7) T・エディタ2を使って不要な文字を削除し、整形する

ひとつ前の手順でダウンロードした点字ファイルをT・エディタ2を使って開くと次のようになる。

墨字表示


点字表示


このうち不要な文字を削除する。以下の赤い四角で囲った文字が不要な文字である。特殊記号の次にくる1文字や数符の次の「0_」が不要文字に該当する。



不要な文字を削除した後、キーワードとキーワードの間に空白を挿入して整形すると数式の点字表記が完成するのでファイルに保存しておく。



ネメス点字表記やverbose semantics表記と比較すると、正しく点字変換ができていることがおわかりになるだろう。






8) まとめ

手順をまとめると次のようになる。

1. 数式をverbose semantics表記で記述する。

2. replace1.lst、replace2.lstで検索/置換を行う。今回は説明のために2つのファイルに分けたが、replace1.lstとreplace2.lstは連結して1回の検索/置換操作で行なえる。

3. Webサービスを使って「漢字かな混じり表現」に変換する。

4. replace3.lstをつかって「ひらがなと数字の表現」に変換する。

5. Webサービスを使って点字表現に変換し、点字ファイルを得る。

6. T・エディタ2を使って点字ファイルを修正する。

今回紹介した数式は一例に過ぎない。「Nemeth Braille Code for Mathematics and Science 1972 Revision」のページに記載されているverbose semantics表記をどんどん追加していくことによって、数多くのパターンの数式を半自動で点字に変換できるようになっていく。

入力としてまずverbose semanticsで数式を記述する必要があるのだが、TeXなどの数式表現からverbose semanticsに変換するソフトを作ればTeXから数式点字への変換が行えるわけである。そのためにはTeXのパーサーが必要になる。

ネメス点字の数式表記は日本で標準的に使われている表記とは若干異なっている。日本の点字表記の規則に合わせるのであれば「点字数学記号解説(暫定改訂版)」に従って変換テーブルを書き換えればよい。

変換テーブルは一度作ってしまえば再利用できる。すべて無料のツールだし、シンプルな検索/置換による方法なので多くの方に使っていただけるのがよい。(Excelがなければ無料のLibreOfficeのCalcを使えばよい。)この方法によって効率化がされたのかどうかは記事をお読みになった方の判断におまかせしたい。


今回紹介したファイルは変換テーブルや生成された点字ファイルなどすべて以下のリンクからダウンロードできるようにしておいたので、自分で試してみたい方はこのファイルをご利用いただきたい。

テスト用のファイル一式: ダウンロードする


次回の記事では「Infty Editor + BrailleInfty Package」を使って数式の点字ファイルを作る方法を紹介してみたい。

Infty Editor、BrailleInfty Packageを公開しているサクセスネットのホームページ
http://www.sciaccess.net/jp/index.html


おことわり: 本来は「視覚障がい者」もしくは「視聴覚障碍者」と表記すべきなのだが、ネットでは「視覚障害者」の表記で検索する人のほうが多いので、この記事では「視覚障害者」とさせていただきました。


応援クリックをお願いします!
にほんブログ村 科学ブログ 物理学へ 人気ブログランキングへ 

コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 数式を効率的に点字入力する... | トップ | 素数夜曲―女王陛下のLISP:吉... »

2 コメント

コメント日が  古い順  |   新しい順
Re: すべて印刷させてもらいました (とね)
2014-11-09 00:24:32
西村さん(ガロアさん)

点字の本や絵本を見たことはありますが、指で読もうとしたことはありませんでした。晴眼者が指でそれらを認識するというのはとても難しいことだと想像しています。実際に触るという発想が素晴らしいと思いました。

前の記事のコメントにも書きましたが、ひとつ気になるのはネメス点字は日本では使われていないということです。日本での数学点字は「点字数学記号解説(暫定改訂版)」や「点字理科記号解説(暫定改訂版)」に従っています。

点字数学記号解説(暫定改訂版)
http://yougu.nittento.or.jp/product886_132.html
点字理科記号解説(暫定改訂版)
http://yougu.nittento.or.jp/product887_132.html

また、次のPDF資料は大変役に立ちます。日本と海外の数学点字の違いがはっきりわかります。これは問題ですね。次回の記事でこの点についても触れるつもりです。

数学点字記号の国際対照表
http://www.tsukuba-tech.ac.jp/repo/dspace/bitstream/10460/366/1/Tec04_0_21.pdf
返信する
すべて印刷させてもらいました (西村肇(ガロア))
2014-11-08 20:48:54
今後の参考のため、すべて印刷しました。実際にさわる事が一番大切考えております。まずは基礎から覚えていきたいです。点字の絵本借りてきて触っています。これは、思ったいじょうに難しいですね。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

理科復活プロジェクト」カテゴリの最新記事