連載
» 2021年02月05日 05時00分 公開

[文章生成]MeCabをインストールして分かち書きを試してみよう作って試そう! ディープラーニング工作室(2/2 ページ)

[かわさきしんじ,Deep Insider編集部]
前のページへ 1|2       

mecab-unidic-NEologdのインストール

 mecab-unidic-NEologdは、先ほどインストールしたUniDicに含まれていない語句も採録しているので、これを使えば「鬼滅の刃」もうまく単語として認識されるかもしれません。

 なお、これをインストールするには、mecab-python3に同梱のMeCabに頼らずに、きちんとMeCabをインストールする必要があるようです。というわけで、Webを検索して「Google ColabにMeCabとipadic-NEologdをインストールする」を参考に以下のコードを実行することで、MeCabとmecab-unidic-NEologdをインストールしました(主に「ipa」を「uni」にしたり、インストール時の出力の破棄をやめたりするなどの変更を行っています)。

!apt-get -q -y install mecab libmecab-dev file
!git clone --depth 1 https://github.com/neologd/mecab-unidic-neologd.git
!echo yes | mecab-unidic-neologd/bin/install-mecab-unidic-neologd -n

MeCabとmecab-unidic-NEologdをインストール

 このコマンドを実行すると、MeCabとmecab-unidic-NEologdのインストールが完了します。ここで重要なのは辞書がインストールされる場所です。これは出力の最後の方に次のように表示されています。

実行結果 実行結果

 上の画像の真ん中付近に「Usage:」という出力があります。その下にある「$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-unidic-neologd」というのはMeCabをコマンドラインから実行する際の辞書指定です。ここで指定している、「-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-unidic-neologd」オプションをMeCab.Taggerクラスのインスタンス生成時に指定します(「!mecab-config --dicdir」コマンドを実行することでも確認できます)。ここでは2つのインスタンスを生成して、振る舞いの違いを見てみましょう。

tagger1 = MeCab.Tagger()
dicdir = '-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-unidic-neologd'
tagger2 = MeCab.Tagger(dicdir)

sample_txt = '鬼滅の刃もいいけれど、約束のネバーランドもね'
print(tagger1.parse(sample_txt))
print(tagger2.parse(sample_txt))

辞書の違いを確認する

 実行結果を見てください。

実行結果 実行結果

 上側の出力がMeCab.Taggerクラスのインスタンス生成で何も指定しなかった場合の結果で、下側の出力がmecab-unidic-NEologd辞書を使うように指定した場合の結果です。ご覧の通り、mecab-unidic-NEologdを使用した方では、2つの作品名がきちんと名詞(固有名詞)として認識されたことが分かります。

 確認のために分かち書きもしてみましょう。

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。