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
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")
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.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!
以上、入門でした。
Author And Source
この問題について(python :MeCab でyoutube の投稿タイトルでよく使われる名詞を探す), 我々は、より多くの情報をここで見つけました https://qiita.com/be_tiger/items/64a5ec86552564d79e40著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .