python :MeCab でyoutube の投稿タイトルでよく使われる名詞を探す


・MeCabを使って自然言語処理に入門する

自然言語処理の入門として、MeCabを使用してみる。
youtube の投稿動画のタイトルでよく使用されている名詞を抽出する作業を行なってみる。

・参考

・youtube統計データ(kaggle)
 https://www.kaggle.com/datasnaek/youtube-new
・MeCab公式サイト
 https://taku910.github.io/mecab/

・import

import
import MeCab
import pandas as pd
from collections import Counter

・MeCab:自然言語処理のため
・pandas:youtube統計データのcsvデータの読み込みと投稿タイトルの抽出
・collections:名詞の個数を数える

・csvデータの読み込みとタイトルデータの抽出

pandas
#csv データの読み込み
df1 = pd.read_csv("「実際に読み込むデータ」.csv")

#読み込みたいカラムの文字列をwordsに格納
#重複したタイトルは読み込まない
words = []
for i in df1.loc[:,"実際のカラム名"]:
    if i not in words:
        words.append(i)

・MeCabの出力フォーマットを決める

MeCab
mecab = MeCab.Tagger("-Osimple")

一番解析結果がシンプルな"-Osimple"を使用。
他には”-Oyomi”、"-Ochasen"など。

MeCab
#mecab.parse(i)でwords内の投稿タイトルを順々に処理し、単語に区切っていく
result = []
for i in words:
    tango = mecab.parse(i).split("\n")

#区切った単語が名詞であればresultに格納していく
#j.split("\t")で単語自体とその単語の分類に分けている
    for j in tango:
        if "名詞" in j:
            meishi = j.split("\t")[0]
            result.append(meishi)
・例 mecab.parse(i)では下記のようになっている
MeCab
#words の中身
叡王戦第1局豊島将之叡王 vs 藤井聡太二冠

#mecab.parse(i)実行結果
【             記号-括弧開
           名詞-固有名詞-人名-
           名詞-一般
           名詞-接尾-一般
           接頭詞-数接続
1            名詞-
          名詞-接尾-助数詞
】            記号-括弧閉
豊島       名詞-固有名詞-人名-
将之       名詞-固有名詞-人名-
          名詞-固有名詞-人名-
          名詞-接尾-一般
藤井      名詞-固有名詞-人名-
         名詞-固有名詞-人名-
         名詞-固有名詞-地域-一般
         名詞-
         名詞-接尾-助数詞
EOS

最後に、collections のCounter で格納された名詞の数を数える。
most_common()で格納された数が大きい順に並べる。
数が多いので今回は上からTOP10を表示。

collections
Cnt = Counter(meishi)
top10 = Cnt.most_common()[:10]
for i in top10:
    print(i[0])

#print(i[0]):TOP10の単語



アニメ
さん





結果は本当か?と思ってしまいますが、MeCabの使い方としてはOK!
以上、入門でした。