Closed5
Android(Kotlin)でKuromojiにユーザー辞書を読み込ませたい
前回
今回の目標
前回、AndroidでKuromojiを動かした際に今日はかつ丼を食べた
を入力として与えたところ、かつ
が接続詞として認識されてしまった。
そこで、今回はユーザー辞書を使うことで、かつ丼
を名詞として認識させたい。
準備
assetsフォルダを用意する。
assetsフォルダの作り方は下記の記事などを参照。
assetsフォルダ内に今回はuserdictionary.txt
という名前のファイルを作成する。
ユーザー辞書に単語を登録
今回はKuromojiにかつ丼
を名詞として認識させたいので、userdictionary.txt
に以下のように書き込む。
かつ丼,かつ丼,カツドン,名詞
ユーザー辞書の形式は下記の記事を参考にした。
ユーザー辞書と適応する
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 assetManager = resources.assets
val file = assetManager.open("userdictionary.txt")
val tokenizer = Tokenizer.Builder().userDictionary(file).build<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
}
}
ビルドすると、以下のようにかつ丼
が名詞として認識されたことが分かる。
このスクラップは2023/01/19にクローズされました