1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

形態素解析ツールKyTeaのインストールと使い方

Last updated at Posted at 2021-06-01

はじめに

とりあえずKyTeaを試してみようという人が公式サイトを読むのは、少しハードルが高いと感じました。
そこで、KyTeaをインストールして最低限の形態素解析を行えるようになるための情報を記載しました。
KyTeaを使いこなしたい人は、公式サイトもチェックしてください。

インストール

Windows版

以下のリンク先よりWindows版の最新バージョンのzipファイルをダウンロードして解凍する。

作成されるディレクトリ"kytea-win-0.4.2"にpathを通しておく。

Linux, Mac OSX, CygWin版

途中で~がないと怒られる場合はインストールしてやり直す.

端末
$ sudo apt update & sudo apt upgrade
$ cd <path>
$ git clone https://github.com/neubig/kytea.git
$ cd kytea
$ autoreconf --install
$ ./configure
$ make
$ sudo make install

動作確認とトラブル例.

端末
// 動作確認
$ kytea --help

// インストールが成功していればヘルプが表示される

// 以下のエラーが表示される場合があり,その場合は以下を実行する.
> kyTea: error while loading shared libraries: libkytea.so.0: cannot open shared object file: No such file or directory
$ sudo ldconfig
$ kytea --help

KyTeaの使い方

KyTeaの学習

以下の形式のコーパスを用意する。

単語/タグ1/タグ2/.../タグn 単語/タグ1/タグ2/.../タグn ... 
例. コーパス/名詞/こーぱす の/助詞/の 文/名詞/ぶん で/助動詞/で す/語尾/す 。/補助記号/。

用意したコーパスを利用し、以下で学習する。

端末
# フルアノテーションデータを使う場合
$ train-kytea -full corpus_full.txt -model model.dat

さらなる情報およびリソースへはリンク先を参照

KyTeaを使って形態素解析

端末
# 端末に出力するだけの場合
$ kytea < test_raw.txt
# 学習したモデルを使い、出力結果を保存する場合
$ kytea -model model.dat < test_raw.txt > result_full.txt
# デフォルト(-in raw -out full)以外のファイル形式で形態素解析
$ kytea -in full -model model.dat < test_full.txt

KyTeaのファイル形式

使用できるファイル形式は表の通りで、詳細はリンク先を参照

オプション名 形式
-full フルアノテーション
-part 部分的アノテーション(未知タグあり)
-tok 単語分割のみ
-raw アノテーションなし
-conf 信頼度付きアノテーション

プログラムからKyTeaを呼び出す方法

Pythonの場合(pipを使う)

setup.pyを読む限り,python3.7-3.10に対応.

端末
$ python --version
> Python 3.10.1
$ pip install kytea

// 動作確認
$ python
>>> import Mykytea

コード例

Python
import Mykytea

# 引数は以下のように渡す
opt = "-model /usr/loca/share/kytea/model.bin"
mk = Mykytea.Mykytea(opt)
s = "今日はいい天気です.1999"

# 単語分割を取得
for word in mk.getWS(s):
   print(word)

#解析結果(単語/品詞/読み)を文字列で取得
print(mk.getTagsToString(s))

#1位のタグ(単語/品詞/スコア/読み/スコア)を取得
t = mk.getTags(s)
showTags(t)

#(2位以降含む)すべてのタグを取得
tt = mk.getAllTags(s)
showTags(tt)

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?