OpenCVをMacでビルドしてHaskellから使う

OpenCVの32ビット版をHaskellからForeign Function Interface (FFI)で使いたかったのでやってみた。手動でインストールしたところ、MacPortsで入れるよりも多少手間はかかるが所要時間は遙かに短かかった(正味のビルド時間は15分もかからない。MacPortsだ…

Haskellでスクレイピング - html-conduit/xml-conduitの使い方

Haskellでウェブサイトのスクレイピングをしたくていろいろ調べていた。 HaskellのHTML/XML パッケージは乱立気味*1であるが、WebフレームワークのYesodで採用されている以下のパッケージが良さそうだ。Conduitという効率的な新しいIOベースで(このところよ…

HaskellでのHTMLパージング with XmlHtml

そして同じことがXmlHtmlライブラリで1時間もせずに達成できた。 http://hackage.haskell.org/package/xmlhtml-0.1.3XmlHtmlライブラリは、 $ cabal install xmlhtmlでインストールできる。 {-# LANGUAGE OverloadedStrings #-} import qualified Data.ByteS…

Haskell+ParsecでHTMLのパーシング

Haskellの紹介で、「パーサーコンビネータを使うとパーシングが簡単にできる」と良く聞くので、僕もParsecを使ってちょっと試してみた。 情報源 Parsecの使い方は本家に置いてあるpdfが古いが短くて割と分かりやすい。というか他にあまり資料が見つからない…

Haskellで単位付きの計算

Haskellの練習で、科学計算で使うような単位付きの計算を作ってみた。UnitNum型はNum, Show, Eqクラスのインスタンスで、==, +, -, *, show などが使える。Gistはhttps://gist.github.com/2841750 -- Haskell unit calc test data (Num a) => Unit a = Unit …

Haskellの学習のコツ?

まだHaskell初心者でLearn You a Haskell for Great Goodをちょくちょく読んだりしている。実際にアプリなどを作るまでは至っていないのだが、少しずつ全体的な感覚はつかめてきた。 関数の定義の仕方、パターンマッチの意味と使い方を理解する 昔初めてHask…

MeteorでWebアプリを書いてみて気づいたポイント

Othello by Meteor: Webアプリ初心者が5時間弱かけて書いたもの https://github.com/nebuta/MeteorOthello公式ドキュメントhttp://docs.meteor.comは英語だが短いので全部読み通すのもさほど苦ではないだろう。ドキュメントを読みながら、meteor create --e…

Meteorでオセロを書いてみた

Meteor 0.3.2 PREVIEW http://meteor.comMeteorは、高機能なWebアプリを素早く作るためのプラットフォーム。TwitterとTechCrunchで知った。以下のような特徴が印象的。 Ruby on Railsのようにひな形が一発で生成できる。 ただ、RoRと比べて、吐き出すファイ…

Scalaで書いたコードをMATLABから呼ぶ

MATLABは研究でよく使われている。既存のコードも多い。ただプログラマにとっては、MATLABの文法や関数の作法が特殊で書きづらく生産性が低く感じる。数学や統計の関数はともかく、ファイル操作などのユーティリティ関数をMATLABのために新たに覚えるのが面…

ImageJ pluginの開発 by Scala on IntelliJ IDEA (Mac OSX)

ImageJのプラグインをScalaで書いている。これまでは http://imagejdocu.tudor.lu/doku.php?id=howto:plugins:the_imagej_eclipse_howto このページに解説されているようにしてEclipseを使っていたが、Eclipse上のScalaは、 自動インデントがバグっている(…

Scalaがいい感じ

Scalaのメリット(・デメリット) 最近Java VM上で動くオブジェクト指向+関数型のScala(スカラと読む)という言語にハマっていて、ImageJのプラグインをScalaで書いたりしている。私はJava/Rubyの中級の入り口くらいの日曜プログラマだが、そのような人間…

辞書データを小さく出来ないか?

1次元のみ 連続した2バイトの相関ではなく、単にバイトの値の頻度分布を見る、という考え方。頻度分布を見ると、差が結構あるように見え、このアイデアは良さそうに思える。 元記事を読んでしばらく考えていたときに思いついた。2バイト相関よりも先に思…

余談: ブラウザ上にこの機能を実装?

この機能をGreasemonkeyで実装したいなと思ったのだけど、loadイベントでmetaタグを追加 or 変更しても文字コード解釈の変更は効かなかった。 Chromeでは、スクリプトの冒頭で@run-at document-startというオプションを指定すると早く実行できるとのこと(ま…

まとめ

psi氏の元サイトでは20バイトでほぼ100%の成功率に飽和しているのに対して、私の実装では100バイトまで読んで99%なので、私のは辞書データもあまり良くないのかもしれない。青空文庫の文章は記号や数字はほとんど含まないし、カタカナも少ないと思われる。W…

既存の方法との比較

既存のライブラリの文字コード判別成功率はどのくらいかというのを調べると、2004年と古いがこんなのがあった。 http://pub.cozmixng.org/~the-rwiki/?cmd=view;name=%A4%BF%A4%E0%A4%E9%3A%3A%C6%FC%CB%DC%B8%EC%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%A4%CE%BC%AB…

私の実装と、計算結果

データ取得 日本語の辞書データ作成のための素材は青空文庫からダウンロードした。 aozoraget.rbASCIIは、以下のサイトからrfcのデータ(RFCs 5001-5500)をダウンロードし、解凍。 http://www.rfc-editor.org/download.html 辞書データ作成 青空文庫の元デ…

このアルゴリズムの概要

(1)隣接する2バイト(i番目とi+1番目)の組の頻度分布(256x256のマップ)を文字コード既知のテキストデータについて計算すると、文字コードごとに明らかに大きな差が出る(元記事を参照)。これを辞書データとして保管する。 (2)この文字コードの辞…

統計的手法で文字コード(UTF-8/EUC/JIS/SHIFT_JIS)を判別する方法の追試

どうも初めまして。最初のエントリが他人のアイデアの追試というのもあれですが、面白かったので私も自分で書いてみました。元記事: 統計学の力を借りて、文字化け退散! - ψ(プサイ)の興味関心空間 http://ledyba.org/2011/11/06004312.php