TikaのLanguageDetector

Tikaには文字列を渡すと、その言語を渡してくれる機能がある。使うためにはまずpom.xmlに以下の依存関係を追加する。

                <dependency>
                        <groupId>org.apache.tika</groupId>
                        <artifactId>tika-langdetect</artifactId>
                        <version>1.20</version>
                </dependency>

あとは、LanguageDetectorを生成して利用する。

import java.io.IOException;

import org.apache.tika.langdetect.OptimaizeLangDetector;
import org.apache.tika.language.detect.LanguageDetector;
import org.apache.tika.language.detect.LanguageResult;

public class LanguageDetectorExample {

    public String detectLanguage(String text) throws IOException {
        LanguageDetector detector = new OptimaizeLangDetector().loadModels();
        LanguageResult result = detector.detect(text);
        return result.getLanguage();
    }
}

上記はTikaにあるexampleコードだが、OptimaizeLangDetectorをnewして、loadModels()でLanguageDetectorを取得する。あとはLanguageDetectorに言語判定したいテキストを渡せば言語情報が返ってくる。

まぁ、とはいえ、そこそこ判定が外れる気もする…。

jenia4faces

<jenia4faces>JSFコンポーネント。Apacheライセンスみたい。Chartは結構、きれいなグラフを表示しているので結構、使う場面はありそうな気がする。あとは、ポップアップのカレンダもきれいなカレンダを表示しているが、日付フォーマット的にはちょっと使えなさそう・・・。というわけで、チャートを作るコンポーネントが気に入った。まぁ、日本語が使えるかどうかはちょっと怪しいけど。http://www.jenia.org/

<PortletBridge>普通のページをポートレット上に表示できるポートレットらしい。Plutoで動いているなら、Jetspeed2 でも動かせるかなっと思って試してみたけど、動かん。どうも、Action URL の生成に標準ではない方法を使っているに思える。うーん、残念・・・。http://www.portletbridge.org/

Ajax

<Ajax>Ajax を使った手書き文字認識 ( http://chasen.org/~taku/software/ajax/hwr/ ) だそうです。なかなかおもしろいですね。個人的には、Ajax より、サポートベクターマシンを数年ぶりにふれられたのがうれしい。かれこれ、5年くらい前はサポートベクターマシンであれやこれやとやっていたな・・・。うーん、懐かしい。あのときは、自前で実装するしか選択肢がなかったけど、いまでは、TinySVNなど結構そろってきているっぽいな。また、使う機会があれば使ってみたいところ。AjaxというかSVNの話題になってしまった・・・。

Mimeタイプ

<Mimeタイプ>MyFacesFilterPortletを進めようと思ったが、別件が発生したので対応中。っで、Mimeタイプを取得する必要が発生して、どうやって取得するのが賢いのか考える。ほんとは、現在、commons-vfsを使ってファイルを扱っているので、getContentType()で正しいのが返ってくれば一番ベストなんだが、こいつはURLConnectionでMIMEタイプを判断する。つまり、たいしたことはできんということか・・・。実際に、pdfとかはMIMEタイプを返してくれたけど、docやxlsは返ってこない・・・。使えん。というわけで、別な方法を探す。そういえば、JAFとかで扱っていたような気がするので検索すると、発見。カスタマイズもできるようなので、JAFで試すことにしよう。使えそうなページがあるので http://www.ki.rim.or.jp/~kuro/Java/JAF/JAF-01.html を参照。