Apache Solr

 

kuromojiで漢字からカタカナを取得

kuromojiの形態素解析を使って、漢字からカタカナを抽出します。取得したカタカナはサジェスト等で使う事もできます。

新サイト、tree-mapsを公開しました!!

tree-maps: 地図のWEB TOOLの事ならtree-mapsにお任せ!

地図に関するWEB TOOL専門サイトです!!

大画面で大量の緯度経度を一気にプロット、ジオコーディング、DMS<->DEGの相互変換等ができます!

◯ 広告

solr adminのanalysis画面を見ていて気づきました。

カタカナが表示されるという事は、漢字からカタカナが抽出できるのでは?と。

気になったので早速試してみます。

atilikaでkuromoji.jarをダウンロードし、クラスパスに追加します。

package tree.solr.util;

import java.util.List;

import org.atilika.kuromoji.Token;
import org.atilika.kuromoji.Tokenizer;
import org.atilika.kuromoji.Tokenizer.Builder;
import org.atilika.kuromoji.Tokenizer.Mode;

import com.google.common.base.Strings;

public class TokenizerUtil {

    public static void main(String[] args) {
        System.out.println(getKatakana("東京特許許可局"));
    }

    public static String getKatakana(String word) {
        if (Strings.isNullOrEmpty(word))
            return null;
        Builder builder = Tokenizer.builder();
        builder.mode(Mode.NORMAL);
        Tokenizer tokenizer = builder.build();
        List<Token> tokens = tokenizer.tokenize(word);
        StringBuilder sb = new StringBuilder();
        for (Token token : tokens)
            sb.append(token.getReading());
        return sb.toString();
    }
}

↓↓↓ 出力結果 ↓↓↓
トウキョウトッキョキョカキョク

ポイントは以下の通りです。

  • solr.SynonymFilterFactory等のフィルタを通さない(フィルタによって文字列が変わってしまうのを避ける)。
  • モードは通常モード。searchやextendモードは不要。

カタカナが取得できるということは、カタカナをひらがなに変換する事もできます。

これを利用して、サジェスト等で使えるデータを生成する事ができます。

◯ 広告