Androidで形態素解析のライブラリKuromojiを使いたいが動かない
解決済
回答 1
投稿 ・編集
- 評価
- クリップ 1
- VIEW 3,020
現在AndroidStudioを使ってiOSのSiriのようなアプリを作ろうとしています
そこでKuromojiというライブラリを入れて形態素解析(入力された文字を単語毎にわける)をしようと思っています
Mavenから次のリポジトリを指定して取ってきました
http://www.atilika.org/nexus/content/repositories/atilika
ですがいざ実行すると
Could not load dictionaries!
というメッセージと共にRuntimeExceptionを吐いて落ちてしまいます
調べたのですが、解決策が見当たりません・・・
解決策をご存知のかたいらっしゃいましたらぜひ教えて頂きたいです
以下build.sbtの内容とエラーメッセージです
そこでKuromojiというライブラリを入れて形態素解析(入力された文字を単語毎にわける)をしようと思っています
Mavenから次のリポジトリを指定して取ってきました
http://www.atilika.org/nexus/content/repositories/atilika
ですがいざ実行すると
Could not load dictionaries!
というメッセージと共にRuntimeExceptionを吐いて落ちてしまいます
調べたのですが、解決策が見当たりません・・・
解決策をご存知のかたいらっしゃいましたらぜひ教えて頂きたいです
以下build.sbtの内容とエラーメッセージです
build.sbt
import android.Keys._
android.Plugin.androidBuild
buildToolsVersion := Option("19.1.0")
resolvers += "Atilika Open Source repository" at "http://www.atilika.org/nexus/content/repositories/atilika"
libraryDependencies += "org.atilika.kuromoji" % "kuromoji" % "0.7.7"
error-message
java.lang.ExceptionInInitializerError
at org.atilika.kuromoji.Tokenizer.<init>(Tokenizer.java:64)
at org.atilika.kuromoji.Tokenizer$Builder.build(Tokenizer.java:237)
at jp.ac.jec.KuromojiPalyground$.test(KuromojiPalyground.scala:14)
at jp.ac.jec.MainActivity.onCreate(MainActivity.scala:24)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Could not load dictionaries! Ouch, ouch, ouch...
at org.atilika.kuromoji.dict.Dictionaries.load(Dictionaries.java:50)
at org.atilika.kuromoji.dict.Dictionaries.<clinit>(Dictionaries.java:34)
at org.atilika.kuromoji.Tokenizer.<init>(Tokenizer.java:64)
at org.atilika.kuromoji.Tokenizer$Builder.build(Tokenizer.java:237)
at jp.ac.jec.KuromojiPalyground$.test(KuromojiPalyground.scala:14)
at jp.ac.jec.MainActivity.onCreate(MainActivity.scala:24)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.io.InvalidClassException: org.atilika.kuromoji.dict.CharacterDefinition; Incompatible class (SUID): org.atilika.kuromoji.dict.CharacterDefinition: static final long serialVersionUID =-1436753619176638532L; but expected org.atilika.kuromoji.dict.CharacterDefinition: static final long serialVersionUID =-7276304819937849219L;
at java.io.ObjectInputStream.verifyAndInit(ObjectInputStream.java:2341)
at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1640)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:658)
at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1781)
at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:762)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1981)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1938)
at org.atilika.kuromoji.dict.UnknownDictionary.loadCharDef(UnknownDictionary.java:137)
at org.atilika.kuromoji.dict.UnknownDictionary.getInstance(UnknownDictionary.java:131)
at org.atilika.kuromoji.dict.Dictionaries.load(Dictionaries.java:45)
at org.atilika.kuromoji.dict.Dictionaries.<clinit>(Dictionaries.java:34)
at org.atilika.kuromoji.Tokenizer.<init>(Tokenizer.java:64)
at org.atilika.kuromoji.Tokenizer$Builder.build(Tokenizer.java:237)
at jp.ac.jec.KuromojiPalyground$.test(KuromojiPalyground.scala:14)
at jp.ac.jec.MainActivity.onCreate(MainActivity.scala:24)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.13%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2014/11/07 18:59
質問の本文に追加させていただきます!
2014/11/07 21:11
このページでScalaでkuromojiを使われているので参考になるかもしれません。
http://qiita.com/i18n/items/7f0bc006cbe56abbebb9
またコンパイラによってはうまく動作しないという情報がありました。
コンパイラのバージョンを変えてみるのもひとつの手かもしれません。
2014/11/09 15:36
Mavenからでなくソースコードからビルドしてみるのもありかと思います。
2014/11/13 16:19
ご丁寧にありがとうございます!
試してみます!