EnsekiTT Blog

EnsekiTTが書くブログです。

JUMAN++による分かち書きがハイパー時間かかってる話

つまりなにしたの?

JUMAN++でMeCabの分かちオプションと同じ結果を出せるスクリプトを用意して、前回と同じように単語間の演算をやってみようと思ったもののまじで終わらない。
今度はナウい単語も使えるはずだぞ!という期待を胸にただひたすら待っている。

f:id:ensekitt:20171020021046j:plain
*1

MeCabで遊んだときのやつはこちら

ensekitt.hatenablog.com

JUMAN++の準備についてはこちら

ensekitt.hatenablog.com

MeCabから今回置き換えたところ

前回シェルから以下のようなコマンドを実行して、

mecab -b 100000 -Owakati wikipedia_ja_cleaned.txt -o wikipedia_ja_wakati.txt

wikipedia_ja_wakati.txt を作ってた。

JUMAN++にはこんなコマンドはなかったのでPyKNPで作ることにした。

from pyknp import Jumanpp

# 入力ファイルと出力ファイルの準備
in_file = open("wikipedia_ja_cleaned.txt")
out_file = open("wikipedia_ja_wakati_pp.txt", 'w')
 
# Juman++のインスタンス作成
juman = Jumanpp()
 
# 解析開始
for line in in_file:
    st_line = line.strip()
    cl_line = st_line.replace(' ', '')
    if cl_line == "":
        continue
    text = ''
    try:
        result = juman.analysis(cl_line)
    except ValueError as e:
        # 前回の記事で解決したけど一応。
        print(cl_line)
        print(e)
        continue

    #スペース区切りで保存
    for m in result.mrph_list():
        text += str(m.midasi) + " "
 
    if text is not '':
        out_file.write(text + "\n")
        out_file.flush()

in_file.close()
out_file.close()

MeCabで使えなかった単語で遊ぶ

*2

次回出来たら嬉しい

つか、流石にもうちょっと早くする方法考えたい。

*1:unsplash.com

*2:私が辞書を怠ったため

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。