Javaで形態素解析ライブラリのkuromojiを使ってみた
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.sample</groupId> <artifactId>SampleKaiseki01</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.atilika.kuromoji/kuromoji-core --> <dependency> <groupId>com.atilika.kuromoji</groupId> <artifactId>kuromoji-ipadic</artifactId> <version>0.9.0</version> </dependency> </dependencies> </project>
サンプル
Sample01.java
package com.example.sample; import java.util.List; import com.atilika.kuromoji.ipadic.Token; import com.atilika.kuromoji.ipadic.Tokenizer; public class Sample01 { public static void main(String[] args) { Tokenizer tokenizer = new Tokenizer() ; tokenDisplay(tokenizer.tokenize("山田 太郎")); tokenDisplay(tokenizer.tokenize("りんごはおいしい")); tokenDisplay(tokenizer.tokenize("この仕事は大変そうです。")); tokenDisplay(tokenizer.tokenize("扇風機が動かないんですけど急いで直してくれない?")); } private static void tokenDisplay(List<Token> tokens) { for (Token token : tokens) { System.out.println(token.getSurface() + "\t" + token.getAllFeatures()); System.out.println(token.getPartOfSpeechLevel1()); System.out.println(token.getPartOfSpeechLevel2()); } } }
結果
山田 名詞,固有名詞,人名,姓,*,*,山田,ヤマダ,ヤマダ 名詞 固有名詞 記号,空白,*,*,*,*, , , 記号 空白 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー 名詞 固有名詞 りんご 名詞,一般,*,*,*,*,りんご,リンゴ,リンゴ 名詞 一般 は 助詞,係助詞,*,*,*,*,は,ハ,ワ 助詞 係助詞 おいしい 形容詞,自立,*,*,形容詞・イ段,基本形,おいしい,オイシイ,オイシイ 形容詞 自立 この 連体詞,*,*,*,*,*,この,コノ,コノ 連体詞 * 仕事 名詞,サ変接続,*,*,*,*,仕事,シゴト,シゴト 名詞 サ変接続 は 助詞,係助詞,*,*,*,*,は,ハ,ワ 助詞 係助詞 大変 名詞,形容動詞語幹,*,*,*,*,大変,タイヘン,タイヘン 名詞 形容動詞語幹 そう 名詞,接尾,助動詞語幹,*,*,*,そう,ソウ,ソー 名詞 接尾 です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 助動詞 * 。 記号,句点,*,*,*,*,。,。,。 記号 句点 扇風機 名詞,一般,*,*,*,*,扇風機,センプウキ,センプーキ 名詞 一般 が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 助詞 格助詞 動か 動詞,自立,*,*,五段・カ行イ音便,未然形,動く,ウゴカ,ウゴカ 動詞 自立 ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ 助動詞 * ん 名詞,非自立,一般,*,*,*,ん,ン,ン 名詞 非自立 です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 助動詞 * けど 助詞,接続助詞,*,*,*,*,けど,ケド,ケド 助詞 接続助詞 急い 動詞,自立,*,*,五段・ガ行,連用タ接続,急ぐ,イソイ,イソイ 動詞 自立 で 助詞,接続助詞,*,*,*,*,で,デ,デ 助詞 接続助詞 直し 動詞,非自立,*,*,五段・サ行,連用形,直す,ナオシ,ナオシ 動詞 非自立 て 助詞,接続助詞,*,*,*,*,て,テ,テ 助詞 接続助詞 くれ 動詞,非自立,*,*,一段・クレル,未然形,くれる,クレ,クレ 動詞 非自立 ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ 助動詞 * ? 記号,一般,*,*,*,*,?,?,? 記号 一般
参考
Clojure/kuromojiでテキストマイニング入門 ~形態素解析からワードカウントまで~ - あんちべ!
tree-tips: kuromojiの辞書のメンテナンス | Apache Solr
GitHub - atilika/kuromoji: Kuromoji is a self-contained and very easy to use Japanese morphological analyzer designed for search
所感
使い所がむずかしいな…
なんかいい感じのところで区切ってくれるとありがたいけどまだそこまで精度が高いわけではなさそう
名詞とかで区切る方法がいいのかも…