2014年5月14日水曜日

数式OKのオンラインOCR「Mosha」は日本語力もすごい

オンラインOCRサービスMoshaというのができたそうです。
JPEG・PNGなどの画像を読み取って、テキスト・Word・TeXで出力。
日本語・英語に加えて、数式にも対応。しかも無料。

さっそく試してみました。まずは数式。これが元画像。
ドラッグ&ドロップで認識開始。

結果。おお、完璧。
自分で書いてたのとほとんど同じTeXコマンドが出力されるのが面白い。


Word(doc形式)のファイルとしてダウンロードできる。

もうちょっと複雑だとどうかな。
結果はこんな感じ。


積分範囲の文字のアンダースコアなど、細かい部分も再現されている。
全般に、細部の再現には強い印象。

いっぽう、日本語と記号の混在には弱いかもしれない( U(ん)←U(h) )。
あと、ときどき、数式番号が数式に混ざってしまう。
でもこれは、スクリーンショットを撮るときの工夫で回避できそうではある。

自炊したPDFはどうだろう。(出典:『ファインマン物理学1』岩波書店)

いきなりWordになるのは快感。

数式のOCRは、使いどころが難しいかもしれない。文章とちがって、大雑把では意味が無いことが多いし、ざっくり読み取っておいてあとで検索するという使い方もあまりしないから。そもそも、PDFをまるごと読み込むことは現状できないので、そういう使い方は想定していないのかもしれない。TeX→Word あるいは PDF → TeX / Word 変換のファーストステップとしては使えそう。

あと、数式をOCRで読んでTeXにできるということは、数式の構造を把握できるということだから、たとえば携帯電話で数式撮ってアップロードしたら答えが返ってくるとか、Google Glassで数式見たら答えが見えるとか、似たような構造の式を過去の論文や『公式集』から自動抽出してヒラメキ支援とか、いろいろスゴイことにつながるのかもしれない。

いくつか試すうちに、これ、数式もいいけど、単に日本語OCRとして使える子なのでは、と気がついた。そこで、以前の記事で使ったサンプルを認識させてみた。

認識結果はこんなかんじ。
羊乳から作ったペコリーノチーズ
Peconnoも島の特産だ。 このチーズ
は料理用として、 また、 テーブルチ
--7"として食される。本土では牛乳
からつくられることが多い、 リコッ
タチーズもこの地では羊乳製。滑ら
かでクリーミーな優しい口当たりは
絶品。作りたてのリコッタチーズ

オンラインの日本語OCRサービスを試した中では圧倒的に優秀。
オフラインのOCRソフトの最強レベルにも負けてない。

ということで、Mosha、数式を使わない文章にもおすすめです。

2014年4月20日日曜日

自給と政府

食料自給率を高めることは、政府に、戦争を遂行するインセンティブを与える。

一般に、政府は国民よりも戦争を好む。戦争になれば、国家内での政府の権力を高めることができるし、政府構成員の社会的地位や生活水準も、一般人に比べて相対的に高まるからだ。

戦争をするには、国民の士気を保ち、ある程度の支持を獲得する必要がある。その際、もし、戦争をすると食料輸入が止まって飢餓に陥るという危険があれば、戦争に反対する国民は増える。逆に、食料を自給できる体制があれば、戦争に賛成する国民は増える。これは戦争をしたい政府にとっては望ましい事態となる。

すると、有事のために、自給率を高めるというのは、むしろ逆効果である可能性がある。自給率を高めることが、逆に有事の可能性を増すことになる。

--

ここからただちに、TPPに賛成だとか、そういうことにはならない(それはたいへん複雑な問題だ)。しかしひとまず、政府の判断にはそういうバイアスがある、ということを頭においておくのは、価値があることと思う。

各国の政府は自給率を高めたがるものだが、そうさせずに、国家間の相互依存関係を強めることによって戦争を抑止しよう、という考え方は、珍しいものではない。というか、ごくありきたりのものだ。あれだ、ブレトン・ウッズ体制。

でも、この論理は、政府の口からはなかなか出てこない。国家に戦争をさせないためのしくみというのは、その性質上、政府(≠国民)にとって煙たいものだ。「政府は信用できないものだし、国民を害するような戦争をしたがるものだ。だから、政府の力をコントロールしましょう」なんてことを自ら言える政府があればそれはあっぱれだけども、現実はなかなかその域に達していない。

--

ところで、何かあったときに食べるものがあるかどうか、ということに関して、国内自給率を判断基準にするのは、適切でないのかもしれない。国内自給率を高く保つことと、有事のときに個人が飢えないこととは、ほとんど関係ない、といっては言い過ぎかもしれないが、少なくともかなり距離がある。

意味があるのは、国内なんていう広すぎる範囲での自給ではなく、助け合う意思のあるコミュニティ内での自給なのかもしれない。

コミュニティというのは必ずしも地域でなくてもよくて、親戚でもなんでもいいのだけど、戦争のときに着物を持って行ったら米や野菜をくれるような間柄のなかで、自給できるだけの体制があれば、有事のときの安心は増すだろう。もしかすると、失業したときとか、もうすこしマイルドな困難を乗り切るのにも役立つのかもしれない。

開国以来、自給率が問題になるような「有事」があったことは一度だけだ。そのとき、政府は本当に、国民や兵士が飢餓に陥らないことに全力を尽くしただろうか。政府はいったい何のために戦っていただろうか。

2014年1月21日火曜日

MacのプレビューでPDFの透明テキストが失われる

PDFを快適に読むにはどうすればいいか。単に読むだけなら、たとえばiPadのi文庫HDで読むのはとても気持ちいい。では、ラインを引いたりメモを書きこんだりしつつ読みたいときはどうすればいいか。

試した中でいちばん快感を覚えたのは、MacBook Airで、Mac OSの「プレビュー」で読む方法だった。インターフェイスがすっきりしている。アイコン等が目障りだとイヤなのだ。余分なソフトをインストールしなくていいし、操作にも慣れているし、速度もまあまあ。

この機能は、Mac OSがLionのときから愛用していた。難しい本は読む前にバラして、ScanSnapでスキャンして、AcrobatでOCRをかけて透明テキストを埋めこむ。OCRをかけるのは、テキスト抽出のためでも検索のためでもなくて、ただハイライトやアンダーラインなどの注釈をつけやすくするためだ。

OSをLionからMavericksにバージョンアップすると、プレビューのPDF編集機能も改善されていた。感心したのはこの、微妙に波打った蛍光ペンの表現。単にハイライトなのか、それとも画像かなんか乗せてるのだろうか。
リアルの本に蛍光ペンを長々と引くのはなんだかためらわれる。インクで紙が波打ったりするし、塗りまちがったら汚くなる。電子媒体ならそれがないし、なにより、塗った後で消したり色を変えたりできる。「塗ったあとで色を変えられる」、なんてすごいことだ。昔の人が聞いたらびっくりだ。そこには蛍光ペンのイデアだけがあるのだ。

PCで書きこみをするなんて、まどろっこしい、と思っていた。ところが、意外なことに紙より速いのだ。紙を読んでいるとき、書きこみにかかる時間を、試しに計ってみた。すると、単語の囲みや一行のアンダーラインには5秒、複数行の囲みやアンダーラインは10秒。メモを書きこむには1文字あたり1秒かかっていることがわかった。

PDFへの書きこみは、単語や一行だと同じくらいだが、複数行やメモだと紙よりもずいぶん速い。上記画像で、手でハイライトをつけるなら三行ぶん手を動かさねばならない。しかしPDFなら青の矢印のぶんだけカーソルを動かせばいい。そして、書きこみの見やすさや再利用性は圧倒的にPDFのほうが優れている。だから紙の本をわざわざスキャンしてでもPDFにするのだ。

…と、ここまでは読書電子化極楽話なのだけど、困ったことがおきた。

Mavericks(10.9.1)のプレビューで、透明テキストつきのPDFを編集して保存すると、透明テキストが全部失われてしまうようだ。しかも、手動で保存しなくても、編集した時点で自動保存されるので、何か編集を開始したら、透明テキストもろとも注釈は失われ、二度と返ってこない。It's gone in the air. You can never capture it again. なお、編集しなくても「複製」だけでも同じ現象が起こるようだ。

PDF自体は、また自炊すれば手に入る。しかし注釈は、再現不可能な個人オリジナルの情報だ。それが強制上書で消えてなくなるのは怖ろしい。その症状と、その恐怖は、この「自動保存でフォトショップのレイヤーが統合される」件に似ている(→【重要な問題!!】Mac OSX 10.7 Lionのプレビューは危険!?

Lionのときはこんなことはなかったと思うのでMavericksのバグかなあ。ネットで調べても情報がみつからないので、とりあえず書いてみました。また新しい読み方を探さないと。

2015/7/17 追記:10.10.4 で直ったかも

2014年1月16日木曜日

海外で現地SIMを使っているときに日本の番号に来た着信を知るには

追記(2017/12):
MVNO + 留守番転送サービスを使うようになって、
以下は過去の内容になりました。
---

SIMフリーのiPhoneをSoftbankで使っている。
海外にいくと現地のSIMカードを入れることが多い。

SoftbankのSIMカードを抜いてるとき、
着信はどうすれば把握できるか。
あるいは他の連絡手段で連絡してもらうにはどうすればよいか。
とりあえず調べたことをメモ。
(こういうのをイチから考えるのはけっこうしんどい)

SIMカードを抜いている状態は、
電源を切っている状態と同視してよいらしい。
電源を切っているときの着信お知らせ機能は、
Softbankにもある。そしてSMSは海外でも受信できる
(受信は無料。送信は1通100円もするので現地SIMで行う)

つまり、ときどき日本のSIMをいれるようにすれば、
SMSで受信が確認できるということか。
(何日ぐらい保存してくれるんだろう)

まあいいけど、ちょっと面倒。PCからは見られないのかな。

ソフトバンクでは「どこでもアクセス」を契約すれば、
PCからMMSは見られるようになる。
しかしSMSとiMessageは見られない。中途半端すぎ。

要は「携帯電話の電源を切っているとき、
着信履歴を任意のE-mailアドレスに送信する機能」
があればいいんだけど、ないのかな。あってほしい。

そもそも、SIMカードという物理的なしくみを早くなくしてほしい。
まあでも、以前に比べれば激しく便利だし、こんなものかな。

2013年11月28日木曜日

無限に慣れること

無限に知らないことのある状況に慣れたい。
それがむしろわくわくしますとか言ってみたい。

梅棹忠夫は、知らないことが無限にある状況に
うまく対処できることを自ら誇りとしていた。
それはたぶん、彼が、かつては
それを自覚的にでないとうまくできないタイプであったか、
もしくは、少なくとも、そういうタイプの人間がいることを
ふまえていたかであったと想像する。
うらやましいので見習いたい。

数学の感触から思うに、
無限・未知を相手にするときは、
有限・既知を相手にするときに比べて、
枠組、構造、定義、が大事になる。
有限だと適当にやってたところを、
概念にしたがって操作をするようになる。
定義のありがたみが身にしみるようになる。

ああ、そうか、
Excelが得意で、
データベースに苦手意識があるのは、
そのせいだったのか。

無限をうまく扱うには、たぶん、
自分で打ったピッケルに安心して足をかけるような心が必要だ。

それに偏重するのもきっとよくない、
技術を過信するマッドサイエンティストみたいになるかもしれない。
けど自分はもうちょっとそれがあってもいいのかもしれない。

ところで、
ここまでは、現実の無限と有限、
未知と既知のことを思っていたが、
以下は単なる数学の話になって、

たかだか加算無限というと安心できるのに、
有限の巨大数であるグラハム数ふぃっしゅ数に直面すると、
不安になるのは不思議だ。

無限のことをきちんと知らないからだ、
無限はほんとはもっと恐ろしいものだ、
というのもそうだろうけど、それだけでもない気がする。
たぶん、自分が、巨大数よりは加算無限のほうが
まだ上手に扱えるし、扱った経験も多いから、怖くないのだ。

有限で具体的なものと、無限で抽象的なものは
(どうにか)見慣れているのに対して、
巨大数は有限なのに抽象的な数だから、
ありえないほど扱いづらいと感じるのだ。

2013年10月31日木曜日

USキーのMacでWindowsをJISキーのMacぽく使う方法

MacをUSキーボードで使いたい。
でも [かな]と[英数]の切替は日本語キーボードと同じようにしたい。
Macでもエディタだけ秀丸を使いたいからParallelsでWindowsを入れている。
MacとWindowsでキー操作が違うとツラいから、
Mac上のWindowsでも、[かな/英数]を左右のコマンドキーに割り当てたい。

これまでは「窓使いの憂鬱」で、Windows側のキーをリマップして、上記を実現していた。でも窓使いの憂鬱はサポート終了だし、変な使い方をしてるせいか、ときどき動作が不安定になっていた。そして今回、OSとParallelsを更新したらうまくいかなくなった。原因不明。日本語入力が不安定なのは結構なストレス。

「秀丸使いたかったらWindowsマシン使え」「かなキー使いたかったら日本語キーボードにしとけ」というのは、非常にもっともなご意見。でも、モノが増えるのはイヤだし、USキーボードはスッキリしてるから好きなのだ。どうにかなったので、メモ。似たような環境の方の参考になれば幸いです。

環境

  • PC:MacBook Air USキー
  • 本体OS:MacOS 10.9 Mavericks
  • 仮想マシン:Parallels 9
  • ゲストOS:Windows XP
  • IME:Google 日本語入力
キーがUSじゃないなら手順(1)だけで完了。
MacOS, Windowsは他のバージョンでもOKと思う。
(※追記(2014/3):Windows 8 でも同じようにできました。)
仮想マシンは、Parallels以外に、VMWareでもOKのはず。
IMEはGoogleでなくてもたぶん同様の設定ができる。

手順

(1) Karabinerをインストール

ここからKarabinerをインストールして、起動する。
メニューバーから[Preference]を選択し、設定画面を開く。

[Change Key]タブの [For Japanese]→[左右のコマンドキーを「英数/かな」としても使う] →[コマンドキーの動作を優先モード]にチェックを入れる。

これで以下のようになる。この時点で私はとても感動しました。ありがとうKarabiner。
  • 左コマンドキーを単独で押すと[英数]
  • 右コマンドキーを単独で押すと[かな]
  • 左右コマンドキーと他のキーを同時に押すと、コマンドキーとして機能
この状態で、Parallels上のWindowsにも、ちゃんと左コマンド単独押下時は[無変換]、右コマンド単独押下時は[かな]のキーコードが伝わっている(キーコードは「窓使いの憂鬱」などで確認できる)。なので、リクツの上ではWindowsでIME ON/OFFの切り替えができるはず。

ところが、どういうわけか、うまくいかない。Windows上で英語キーボードを使っていることになっているので、[無変換][かな]キーは存在しないことにされているのかもしれない。そこで、Parallelsを利用しているときだけ、Windowsであまり使わなさそうなキーの組み合わせに、IMEのON/OFFを割り当てることにする。

(2) private.xmlの設定

Karabinerは非常に柔軟な設定ができる。
マニュアルはこちら(英文)。

(1)と同様にメニューバーから[Preference]を選択して設定画面を開き、
[Misc&Uninstall]タブにあるボタンからprivate.xmlを開く。
(このボタンが無い場合は、KeyRemap4MacBookを最新版に更新)

private.xmlを開き、<root>と</root>の間に、以下を記入する。

<item>
    <name>追加</name>
    <item>
       <name>左右のコマンドキー(⌘)を「英数/かな」としても使う</name>
       <appendix>(左/右コマンドキーの空打ちで「英数/かな」)</appendix>
       <appendix>(コマンドキーを押している間に他のキーを打つと通常のコマンドキーとして動作)</appendix>
       <identifier>remap.jis_command2eisuukana_prefer_command_notvirtualmachine</identifier>
       <not>VIRTUALMACHINE</not>
       <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_L, 
           KeyCode::COMMAND_L, KeyCode::JIS_EISUU</autogen>
       <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, 
           KeyCode::COMMAND_R, KeyCode::JIS_KANA</autogen>
    </item>
    <item>
       <name>左右のコマンドキー(⌘)をVirtualMachineでも「英数/かな」として使う</name>
       <appendix>(VirtualMachine上で左/右コマンドキーを空打ちすると[Ctrl+Shift+F11/F12])</appendix>
       <appendix>(コマンドキーを押している間に他のキーを打つと通常のコマンドキーを送信)</appendix>
       <appendix>(Parallelsのデフォルト設定では同時押しのコマンドキーは[Ctrl]と解釈される)</appendix>
       <identifier>remap.jis_command2eisuukana_prefer_command_virtualmachine</identifier>
       <only>VIRTUALMACHINE</only>
       <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_L, 
           KeyCode::COMMAND_L, KeyCode::F11, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L</autogen>
       <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, 
           KeyCode::COMMAND_R, KeyCode::F12, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L</autogen>
    </item>
 </item>

private.xmlを保存して、[Reload XML]を押すと、[追加]という項目が増える。

[追加]の下の2項目にチェックを入れる。
手順(1)で紹介した[For Japanese]以下のチェックは外す。

すると、Mac上では先述の「左右のコマンドキーを「英数/かな」としても使う」の挙動を保ちつつ、Parallels等のバーチャルマシン上では、以下のように動作するようになる。
  • 左コマンドキーを単独で押すと[Ctrl]+[Shift]+[F11]
  • 右コマンドキーを単独で押すと[Ctrl]+[Shift]+[F12]
  • 左右コマンドキーと他のキーを同時に押すと、コマンドキーとして機能

(3) Google 日本語入力の設定

あとはWindowsのIMEの設定で、
[Ctrl]+[Shift]+[F11]/[F12]にIMEのON/OFFを割り当てればOK。

Google 日本語入力の場合、
タスクトレイのスパナの印をクリックして[プロパティ]を押す等で設定画面を開く。
[一般]タブ→[キー設定]の[編集]ボタンを押して、キー設定画面を開く。

左下[編集]→[エントリの追加]で新しいキー入力設定が追加できるので、
以下を追加する。

これで完了。
エディタ等を一度終了して開き直せば、
  • 左コマンドキーを単独で押すと英数入力(IME Off)
  • 右コマンドキーを単独で押すとかな入力(IME On)
になっているはず。

2013年8月25日日曜日

中国語単語集をFlashcards Deluxe で使う方法

iPhone/iPad で使える Flashcards Deluxe(→日本語解説サイト
という単語暗記アプリがあります。
機能充実、使い勝手シンプル、すばらしいアプリです。

Excel形式で作成した単語集をFlashcards Deluxeで使用する場合、
Google Driveを経由する方法が便利です。
Google Driveのスプレッドシートにインポートした後、
1行目に[Text 1]〜[Text 5]、[Category 1][Category 2]
という文字列を挿入すれば、Flashcards Deluxeが認識してくれます。



その際、Excelのシートを、
そのままコピー&ペーストすると大きすぎて貼れなかったり、
ふつうにCSVにしてインポートすると、文字化けすることがあります。

対策としては、Excelの[ファイル]→[名前をつけて保存]で
形式を [Unicodeテキスト (*.txt)] にして保存し、
そのファイルをインポートすると良いようです。

例:Excel 2003(windows)


例:Office 2011 for Mac