IE5って、ブラウザとしてしか使えないのかな・・・なんて思って、インフォテリアのiXSLTを試用してみようとしたら、「購入をお考えの企業の方が・・・こちらの試用登録に・・・」と、なーんか面倒そうだった。(^^;それ以外の、Xalan、XTを試用しようとしてみるも、前者では例外が発生(なんでや・・・)、後者は、自分がJDK1.2を入れていなかったので試用できず(セットすればいいじゃん>ヲレ)。
このままでは引き下がれないので、Gooで「Windows | XSLT」で検索。そうすると、どうだろう。ピーデー社のサイトで、IE5のXSLエンジンをコマンドラインから使ってHTMLを生成するツール(axslt)がアップロードされていることがわかって、早速ダウンロード。IE5で綺麗にレンダリングできるソースということは、そのレンダリングするXSLエンジンでは正しい処理が行われている・・・ということになる。つまり、正しいHTMLソースが吐き出されることは確実だ。とりあえず、ダウンロードしたバイナリを実行してみた。
| axslt nikki.xml tf.xsl > nikki.htm |
| List1 | xsl:attribute |
<div> <xsl:attribute name="id"> list<xsl:value-of select="@idx" /> </xsl:attribute> (DIVタグで囲まれる情報)をココに書きます) </DIV> | |
ここんとこ、変な天気だ。青空なのに雨が降ったり、台風並みの風が吹いたり。でも、一番怖いのは、やっぱりおかんのカミナリだ(笑
XML+XSLで、ひとまず文書レイアウトも決まったところで、さて雑誌をスキャンするかな・・・とか思って、OCRソフトを立ち上げ・・・が。「TWAINが使えません」旨のエラーメッセージ。嫌だねぇ(^^;もしかして、昨日のカミナリでスキャナが逝っちゃったのかな?それはマズイな・・・なんて思いながら、いろいろ刺し直してみる。動かない。同じコンセントにプリンタも刺さっているので、そっちも確認。動作せず・・・あらら?
・・・原因は、簡単でした。自分がクーラーの電源のところにスキャナの電源の延長ケーブルを刺していたので、そこのブレーカーを親が落としていたらしい。ということで、別のプラグに刺し変えて、改めてスキャナの電源を入れる・・・小気味よい音を立てて、スキャナが動き出す。・・・まあ、当然といえば、当然だな(^^;
さてと、スキャナもまともに動作することだし・・・ってんで、早速スキャン実行である。いつものように、OKReader2000を起動する。まあ、Etypistのほうが、日本語のみの解析には適しているんだけど、ノイズ修正などの画像処理や、日英混合文書の解析については、OKReader2000のほうが、少しだけ上。スキャン・レイアウト解析・文字解析のスピードは、ETypistの方が上だろうけどね・・・。
それはともかく、今回の実験材料は、日経ソフトウェア99年10月号の「VBユーザのためのXMLプログラミング入門」の1ページ目です。最終的には、プレーンテキストで評価するんで、ワード形式のレイアウト云々については評価しないっす。OKReaderの場合、少し解析に時間がかかるけども、あまり致命的な文字解析ミスはありません。Etypistは・・・英字の解析関係が少し乱雑になってます。まあ、文書が1000字程度で、どちらもミスが20文字前後だから、読んでみてすぐ修正がきく程度ですがね。
・・・さぁて、デザインを調整して、デジタル保管の開始だ!
#その前にバイト行かなきゃ・・・>ヲレ
というわけで、まるで苛めのように、日記をXMLに切り替えてみました。便利だもんね。(笑
とりあえず、IE5なら読めます。Mozilla(Gecko?)では試していません。XSLTは・・・IE5以外には自分でうまく動作させていないので、なんともいえないけど、まあ慣れ次第HTML形式で吐き出させてみようかな・・・って、なんか普通とは順序が逆だね(^^;
XMLの特性としては、「<![CDATA[ ...... ]]>でくくったデータの中身はタグがあっても無視する」って点と、「一旦XSLを書き上げれば、それに従ったXMLは思ったとおりに表現される」って点。この2つ、今までHTMLでセコセコと書いてきた文書を、かなり手抜きできそうなんです。今まで、C言語のソースコードやらHTMLソースやらに含まれる<や>を<と>に一所懸命に書き換えていたものを、先ほどのCDATAで単純に囲んで、XSLではPREタグで囲むように指示すれば・・・思った以上に簡単に「Tips」が書けます。あとは、作者のセンス次第・・・っすね(^^;
まだ、XMLをしっかり理解していないので、DTDは書けてはいませんが・・・なんとか、自分の書式ってヤツを作ることができました。
を参照してください。JavaScript(ECMAScriptって言うんだっけ?)も使うつもりだったんだけど、「StyleはオブジェクトぢゃねーぞEh」って、まるで某T2000の親分みたくピーピー言われたのでやる気をなくしちまいました。ええ。
List1
我流データ構造
<section>
<title>データ形式、確定!</title>
<src idx="List2" sti="リストのタイトル">
//ソースコードはここに書き込んでね。
</src>
文書はココに書き込んでね。
<br/> で、改行もOKよん。
</section>
ということで、ひとまず、デザインが確定したので、あとはXsltを探すだけさっ(笑
確かに、CSSを使えばそこそこのデザインの文書が書けるのだが、問題は、そのソースコードの複雑さ。さすがに、Perlスクリプトか何かで一度前処理してからでないと、読めない。別に前処理やってからの焼きこみでもいいんだけど、IE5の場合、XML/XSLを使うことで、前処理をブラウザに任せることができる。また、ソースの視認性もあがるし、VBやVC、はたまたGCCでも気軽にデータ編集用のエディタを作成できる・・・かもしれない。ということで、XML/XSLも考えることにした。でも、XML関連の書籍はほとんど見当たらず、もしあったとしても、自分のやりたい機能を記述してあるものではなかったりする。
#やっぱり岐阜は田舎なのか・・・って、それは言いッこなしか(笑)
みようみまねで、なんとかサンプルを作ってはみたものの、XSLへのスクリプトの埋め込み方やら、HTMLで言うところの<B>や<BR>を文中に埋め込んで使用することやら、・・・といったことについての資料が、「日本語では」見つからないので、まだソース内には含んでいない。MSDN_LIBの2000年1月号の、XSLに関する記事をしきりに読んでも、<B>や<BR>のようなタグをうまく使用する話が・・・見つからない。探し方が悪いのかな・・・。
XSL+XMLでの、もうひとつの問題、それは、XSLTの所在。IE5があれば、素直にXSLTとしてIE5を使えるけど、IE5のない環境では、XSLTを見つけてくる必要がある。が、まだ、自分の目ではうまく見つけられない。・・・もう少ししっかり調べてみるか・・・。
自分みたいな似非プログラマの場合、開発雑誌はあればあるだけ便利なのだけれど、ある程度量が増えてくると今度は持ち歩きが大変。そこで、デジタルリソース化を考えてみた。
0.持ち運ぶ形式を考える。
いくらペーパーレスとはいえ、印刷したいときだってある。それに、みたい環境でみられる形式にする必要がある。自分の場合、見たい環境といえば「自宅のマシン」あるいは「大学の端末」となる。家のマシンでは、メモリだって大量に積んでるし、たいていの画像形式には対応している。が、大学の場合は、メモリが少ない上に、あまり多くの文書形式には対応していない。・・・とすれば、比較的環境の厳しい、「大学の端末」にあわせることになる。見るだけであれば、TIFF/PDFのような「見るだけ」 の形式でもいいのだけれど、自分の場合は、さらに「コピーする」・「編集する」の次元まで入ってしまうため、こういう「画像/印刷イメージ」の形式はダメで、結局のところテキストデータ、たとえばWord文書とかHTMLとかのたぐいになるわけですね。HTML/RTFでの持ち運びということで決定です。もちろん、保存メディアはCD-Rです。フロッピーだと、書き出しにものすごい容量を食いますからね(^^;
1.手順を考える。
いままでさわってきたOCRソフトの感触でいうと、 ラスタイメージ(TIFF/BMP)の作成では、圧倒的にETypistがいいですね。 ETypistの長所は、「TWAINインタフェースを利用せずにスキャニングを行う分だけ速い」、「生成されるラスタイメージがきれい」の2点。まあ、日本語だけなら「認識が確実」ってことも言えます。ただ、開発雑誌の性質上、日本語とローマ字が混ざった文書なので、認識結果はかなりいい加減な感じになってしまいます。うまく読めない箇所がでてきます。(^^:
日英ごちゃまぜに強いのが「OKREADER」だと思います。独自の「ノイズフィルタ」を使うことで、ほどよくノイズが削られ、認識しやすい画像になります。そこそこ時間がかかるのが難点ですが。また、先ほどのETypistに比べて、 日英ごちゃまぜ文書に強いのは結構ポイントが高いです。でも、あんまり、OCRソフトのレビューでは点数は高くないんですね、これが。なぜかというと「レイアウト機能が不十分」なのと、「TWAINインタフェース利用だから遅い」の。この2点がマイナス。別に、英語文書と見なしてレイアウトさせる分には問題ないんですが、日本語文書とみなしてレイアウトをかけると意味不明なブロックを多数生成してくれます。ええ加減にせぇっとか思います、ホント。まあ、これの対応策は「先に英語文書でレイアウトをかけて、あとで全領域を選択して領域設定を日本語横向きに設定しなおす」ですか。ちょっと長いですね。
ETypistで画像データを複数枚作成し、これをOKREADERで認識。 あとは、Wordなりなんなりで校正すれば完璧。・・・あ、「図」はどうするんだっけ(^^;ま、それはそのときで。
2.実践結果
ETypistの「間欠スキャン」を使って、一気にデータを取りためて、OKREADERでそれを一枚ずつOCR・校正、RTF化・・・という戦法で何枚かやってみましたが、うん、かなり良好です。この調子なら、あと2000ページ位は・・・ヒマ見てがんばりますか。
3.今後の予定
RTFから、独自のスタイルのHTMLに書き換えようかな・・・とか考えています。Tips集を作る際に、そのデザインについてずっと悩んでいますが、いまだ決まっていないもので。Tipsの統一デザインソフト・・・みたいなものを作って、それに従って文書を書いていけば、ゆくゆくは日本版Codeguruみたいなものも作れないことはないんでないかな。ま、一応はアイデアだけってことで。
モーニング娘。の、「LOVEマシーン」以来、久々に音楽CDを買いました。「MOTOR MAN」ってやつ。実は、先月28日にとっぷる君宅にアクセスした際に聞かせてもらって、ツボにはまったものです。
いやー、このCD、凄いです。電車の車内放送にDJのノリをかけてみるとどうなるのか・・・みたいなモノで、まあ実際「車掌DJ」なわけで。1月末に「名鉄版電車でGO!」が発売されたことも影響してかどうかはわからないんだけど・・・発売元は東芝EMI、買った場所は「名鉄新岐阜駅旅行センター」。ま、名鉄の駅のバージョンも入ってるからねぇ・・・。
思わず笑っちゃうフレーズとしては、「JR最強の弱冷房車」とか、「(ドアを)左右交互にちょっとずつ閉めます」とか、あと「中小田井おなか痛い」とか・・・本当にこんなこと車掌サンが連呼してたら困っちゃうけど、でも、音楽的には面白いです。
とにかく、カウントダウン系番組を見るなり、借りるなり、買うなりして一度聞くことをオススメします。本当に面白いですから。(^^)