Pythonと数学と音楽とetcの落書き帳

かなりテキトーに、断片的に離散的にプログラミングや、音楽やいろいろなことを書いていく。洋楽のレビューのついでにPythonその他のブログや本のノート、備忘録を書いていきます。

自然言語処理100本ノック30~

こんにちは。
身近な人が、就活に失敗して、精神不安定になり、消費者金融からお金を借りて仮想通貨の詐欺に投資し、豪遊してしまっていて、親が六ヶ月たったあと発見して自発的に返済する。ということがおきましていろいろ考えます。

精神不安定な人につけこむ奴恐ろしい、というのと、そういう時にHelp出せないと危ないなと。

わからないことやできないことを素直に言える相手って大切です。
もはや僕は知らない人にでもそういう話をできるような、真っ裸になれるような人になりたいなと思ったりもしたりです。

さてそれとは別に、昨日、仲の良い先輩の京大M進祝をして、モチベーションが上がっているのと、
もう少し早く細かいところに入りたいので、言語処理100本ノックをしていきたいと思います。
1時間30分タイムアタックということで、いつもどおり総なめしていきます。

But first, let me take a selfie.


The Chainsmokers - #Selfie (Club Mix) (Out Now)

Introduction

自然言語処理100本ノック
言語処理100本ノック 2015
30~はじめていきます。
今日はMeCab使った形態素解析がMainかな!

概要とはまったところとか

30

・概要
neko.txtを形態素解析するよ!!
一文毎に辞書型のリストで返すものを作ります。
MeCabは業務で使って、標準辞書を
GitHub - neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic
に設定してあるので僕はこれでやります!!
参考サイトでは、ジェネレータを
yieldで作ってなにかしてる。調べてみよう

・よくわからん
Pythonのイテレータとジェネレータ - Qiita
ジェネレータ…イテレータの一種で、要素を取り出すたびに処理を行い要素を生成する。
イテレータは反復処理で、for文?
ジェネレータ関数というものが存在して、return の変わりにyieldを使っているようだ。
リストとして用意するより、ジェネレータとして用意することによって、計算コストを節約するために使ったりするらしい

・参考
Pythonのイテレータとジェネレータ - Qiita
素人の言語処理100本ノック:31 - Qiita

31

・概要
MeCab形態素解析して動詞の表層系抜き出すだけ。
・よくわからん
よくやってた

・参考
素人の言語処理100本ノック:31 - Qiita

32

・概要
↑と同じで原型抜き出すだけ

・参考
素人の言語処理100本ノック:32 - Qiita

33

・概要
サ変接続を抜き出す、。


・参考
素人の言語処理100本ノック:33 - Qiita

34

・概要
名詞+の+名詞を検出して出力

・参考

35

・概要
名詞があったらリストに加えて、名詞以外がきたらelseで吐いてリストリセット


・参考
素人の言語処理100本ノック:35 - Qiita

36

・概要
collectionライブラリのCounter関数で、名詞出現頻度のカウント

・参考

37

・概要
36の上位をmatplotlibでプロット
・よくわからん


・参考

38

・概要
単語出現頻度のヒストグラム

・参考

39

・概要
→(順位)↑(出現頻度)の散布図

・参考

おわりに

既知のことばっかだったのでテキトーに、次はcabochaを使うようですが、環境構築が上手く行かず今のところほとんど動かないのでどきどき

参考