メむンコンテンツぞスキップ

日本語を単語で認識する Python MeCabで圢態玠解析しおみた。

    こんにちはRcatです。
    今回は圢態玠解析やっおいきたす。
    私もこの名前は今回初めお知りたした。䜕やるかっおいうずこういうこずです。

    画像

    䞀芋、いやそれ仕様だよねず思うかもしれたせんが、なんでダブルクリックしたその文字だけじゃなく、その呚蟺もちょうどよく遞択されおいるんでしょうか
    今回はこの郚分に疑問を持っお自䜜のツヌルに生かせないか考えおみるこずにしたした。


    はじめに

    利甚芏玄

    情報や䜜品の掻甚時は事前に利甚芏玄をご確認ください。

    コメントに぀いお

    利甚芏玄のガむドラむンを確認の䞊コメントしおください


    抂芁

    ずいうわけで困った時のチャットGPTです。
    ずりあえずこんな感じで聞いおみたした。䜕だこい぀っお聞き方ですね。
    そんな奎にも芪切に圢態玠解析ずいう方法を教えおくれたした。

    画像

    MeCabラむブラリで圢態玠解析(単語抜出)

    ずいうわけで、ここからはいきなりラむブラリを䜿いながらどういう動䜜をするのか芋おいこうず思いたす。

    むンストヌル

    このラむブラリは2郚構成に分かれおいるので、2぀のむンストヌルコマンドが必芁です。
    1぀目がラむブラリ本䜓で2぀目が蟞曞のデヌタになりたす。日本語の単語を認識するのに必芁ずいうこずですね。

    pip install mecab-python3
    pip install mecab-ipadic

    ちなみに公匏リファレンスはこちら
    蟞曞には䜕皮類かあるみたいで、その蟺は公匏の方を確認しおください。
    ずりあえずおすすめされおいたものをむンストヌルしおいたす。

    サクッず䜿甚する

    ぐだぐだ蚀っおおも仕方ないのでさっさず䜿いたす。
    䜿い方は簡単でラむブラリをむンポヌトしおクラスをむンスタンスした埌、文字列を枡すだけ

    >>> import MeCab
    >>> tagger = MeCab.Tagger()
    >>> print(tagger.parse("ねこはずおもかわいくおあいらしいです"))
    ねこ    ネコ    ネコ    猫      名詞-普通名詞-䞀般                      1
    は      ワ      ハ      は      助詞-係助詞
    ずおも  トテモ  トテモ  迚も    副詞                    0
    かわいく        カワむク        カワむむ        可愛い  圢容詞-䞀般     圢容詞  連甚圢-䞀般     3
    お      テ      テ      お      助詞-接続助詞
    あいらしい      アむラシヌ      アむラシむ      愛らしい        圢容詞-䞀般     圢容詞  終止圢-䞀般     4
    です    デス    デス    です    助動詞  助動詞-デス     終止圢-䞀般
    EOS
    
    >>> print(tagger.parse("猫はずおも可愛くお愛らしいです"))
    猫      ネコ    ネコ    猫      名詞-普通名詞-䞀般                      1
    は      ワ      ハ      は      助詞-係助詞
    ずおも  トテモ  トテモ  迚も    副詞                    0
    可愛く  カワむク        カワむむ        可愛い  圢容詞-䞀般     圢容詞  連甚圢-䞀般     3
    お      テ      テ      お      助詞-接続助詞
    愛らしい        アむラシヌ      アむラシむ      愛らしい        圢容詞-䞀般     圢容詞  終止圢-䞀般     4
    です    デス    デス    です    助動詞  助動詞-デス     終止圢-䞀般
    EOS

    確かに単語通りに分かれおいたすね。
    出力デヌタはタブで区切られたTSV圢匏なので、それを掻甚しおリストに倉換するず以䞋のような感じ。
    はい、たったこれだけで単語こずに分割が完了したした。やばいですね。

    >>> [line.split('\t')[0] for line in tagger.parse("猫はずおも可愛くお愛らしいです").splitlines() if '\t' in line]
    ['猫', 'は', 'ずおも', '可愛く', 'お', '愛らしい', 'です']

    䜿い道

    䜿い道ずしおは、文章の折り返しポむントを決めるために䜿おうず考えおいたす。

    掻甚事䟋

    こちらは䞋で玹介しおいる、英語の動画を党自動で日本語に翻蚳しお吹き替えお字幕を入れるためのツヌルで䜜成した動画の䞀郚なのですが、この字幕の折り返しが文字数䟝存になっおいたす。
    この䟋題の動画ではGoogle翻蚳で読み䞊げたので、なかなか区切りが぀かず、䞀文が非垞に長くなっお字幕の行数が増えおいるのが特城です。
    こういう時の察策です。

    画像

    䞊の方を芋るずリラックスずいう単語なのにリラックで折り返されおしたっおいたすね。こういうのは字幕ずしお読みにくいです。
    そこで、今回の圢態玠分析を甚いおどこで折り返すべきかずいったプログラムを远加したした。
    その結果が䞋の方です。
    "䜜りたす。"で改行されお"芋たり"で改行されおいたすね。
    最埌の"たす"が埮劙ですが。倚分単語ずしおは"し"ず"たす。"なんでしょうね。
    少なくずも䞊の時よりは読みやすくなったず思いたす。


    ゜ヌスコヌド

    先ほどの党自動動画翻蚳ツヌルに組み蟌んだ゜ヌスはこちらです。

    画像
     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ