Closed6
Android(Kotlin)でKuromoji IPADICを動かしたい
初期設定
- Empty Activityを選択
- Minumum SDKは26に設定(app/build.gradle > android > defaultConfig > minSdkから後からでも変更可能)
Kuromojiはこちらを利用。
app/build.gradle > dependencies{}の中に以下を記載。
implementation("com.atilika.kuromoji:kuromoji-ipadic:0.9.0")
Sync Nowで変更を適応。
ビルドすると、下記のエラーが発生。
2 files found with path 'META-INF/CONTRIBUTORS.md'.
Adding a packagingOptions block may help, please refer to
https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/ResourcesPackagingOptions
for more information
下記の記事を参考にする。
app/build.gradleのandroid{}の中に、下記を記載。
packagingOptions {
resources.excludes.add("META-INF/*")
}
Sync Nowで変更を適応。
ビルドすると、今回は成功する。
形態素解析した結果を表示できるように、activity_main.xmlにデフォルトであるTextViewにIDを下記のように設定。
android:id="@+id/text_view"
次にアプリを起動すれば、形態素解析した結果が表示されるように、MainActivity.ktに次のようなコードを記載。
package com.example.ktkuromojiipadic
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import com.atilika.kuromoji.ipadic.Tokenizer
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputText = "今日はかつ丼を食べた"
val tokenizer = Tokenizer()
val tokens = tokenizer.tokenize(inputText)
val textView = findViewById<TextView>(R.id.text_view)
var outputText = ""
for (token in tokens) {
outputText += token.surface + ":" + token.partOfSpeechLevel1 + "\n"
}
textView.text = outputText
}
}
ビルドすると、次のような形態素解析した結果が得られる。
「かつ」の品詞が間違っているが、これでKuromojiをAndroidで動かすことができた。
このスクラップは2023/01/18にクローズされました