169 Views

[AI]Pythonを動かしてみる Jupyter notebookで CSVファイルのグラフ化から形態素解析まで

ANACONDA NAVIGATORが起動したところ。

最新Anacondaに入っている各種ツールを概観しよう
https://news.mynavi.jp/article/zeropython-15/

Jupyterノートブックで気軽にPythonをこね回そう
https://news.mynavi.jp/article/zeropython-2/

Anacondaには、Pythonで、ほとんど必要なものはインストールされているみたいだ。

Jupyter notebook使い方

ANACONDA NAVIGATORから Jupyter notebook をローンチすると、ブラウザにノートブックが作成される。

New > Python3 を選ぶと新規のページ

In[1]:にPythonプログラムを書き、▲実行ボタンを押すと実行される。
もはやおなじみのHello Worldをここに書いて、実行!
そうそう、ここまではだいたい、うまくいく(笑)
問題はここからだ。


calendar.prmonth(2018, 3, w=7)
で打ち込むとカレンダー表示が可能だ。※微妙にずれてるので、こりゃぁ使いにくそうだ…。

ターミナルからの操作

$ python3
で起動させてみる

計算が得意なPython!
7の1000乗も一瞬!

>>> 2*3
6
>>> (1+2)*3
9
>>>
7 ** 1000

テキストエディタのようで、プログラムが走るというのは面白い!

JavaScriptのようにブログの上でも走らせるプログラムはPythonでもあるのかな?

ゼロからはじめるPython
https://news.mynavi.jp/article/zeropython-3/

CSVファイルを読み込んで加工

そうそう、こういうことがやりたかったのだ!

日本の都道府県別の人口データ
都道府県,平成22年,平成27年,平成28年
東京都,13159 ,13515 ,13624
神奈川県,9048 ,9126 ,9145
大阪府,8865 ,8839 ,8833
愛知県,7411 ,7483 ,7507
埼玉県,7195 ,7267 ,7289


%matplotlib inline
 import pandas as pd
 df = pd.read_csv("population.csv", encoding="SHIFT_JIS")
 df.plot.bar(y=['平成28年'])

棒グラフ化 ※日本語化にエラーが発生しています

日本語フォントのインストールが何度やってもうまくいかない…(泣)

夏目漱石の「こころ」を「Jyanome」で形態素解析してみる!

いよいよ、ディープラーニングだ!

❏Pythonで形態素解析を行うライブラリ「Janome」を利用
❏青空文庫から夏目漱石の「こころ」をダウンロード 773_ruby_5968.zip
http://www.aozora.gr.jp/cards/000148/card773.html
❏頻出語句ベスト100を表示するpythonプログラム


# Janomeを使うための宣言 
from janome.tokenizer import Tokenizer

# 「こころ」を読み込む --- (*1)Shift_JISで書かれた「こころ」のテキストを読む。
fp = open("kokoro.txt", "rt", encoding="sjis")
text = fp.read()

# Janomeの準備 --- (*2)形態素解析を行う 
tok = Tokenizer()
tokens = tok.tokenize(text)

# 形態素をカウント --- (*3)単語をカウント 辞書型(dict)を利用
counter = {}
for t in tokens:
    bf = t.base_form
    if not bf in counter: counter[bf] = 0
    counter[bf] += 1

# カウントの多い順に並び替える --- (*4)sorted()関数を利用
sc = sorted(counter.items(), key=lambda x: x[1], reverse=True)
# 並び替えたものを表示 --- (*5)最大100件を画面に出力
for i, t in enumerate(sc):
    if i >= 100: break
    key, cnt = t
    print((i + 1), ".", key, "=", cnt)

コンソールのコマンドラインで入力

python count_kokoro.py

おおおお!!!!

MacPro:~ knnkanda$ python count_kokoro.py
1 . の = 5853
2 . た = 5536
3 . 。 = 4658
4 . 《 = 4570
5 . 》 = 4570
6 . は = 4307
7 . に = 4151
8 . 、 = 3659
9 . て = 3297
10 . を = 3215
11 . 私 = 2700
12 . が = 2292
13 . だ = 2138
14 . と = 2096
15 . する = 1935
16 . ない = 1762
17 . ます = 1680
18 . です = 1623
19 . いる = 1552
20 . も = 1343
21 .
= 1129
22 . で = 1024
23 . から = 906
24 . ある = 859
25 . か = 791
26 . 」 = 780
27 . 「 = 714
28 .   = 701
29 . その = 684
30 . ん = 681
31 . 先生 = 600
32 . う = 588
33 . いう = 587
34 . 事 = 576
35 . なる = 544
36 . へ = 523
37 . よう = 523
38 . K = 411
39 . それ = 409
40 . もの = 393
41 . 人 = 390
42 . 奥さん = 388
43 . れる = 385
44 . 時 = 379
45 . という = 330
46 . 来る = 329
47 . 彼 = 314
48 . 思う = 294
49 . 父 = 272
50 . また = 270
51 . 自分 = 264
52 . 二 = 263
53 . 中 = 259
54 . ば = 257
55 . 何 = 251
56 . 一 = 249
57 . そう = 248
58 . うち = 238
59 . ] = 236
60 . この = 235
61 . 見る = 234
62 . い = 234
63 .

= 222
64 . 聞く = 219
65 . しかし = 214
66 . 行く = 208
67 . 十 = 201
68 . 方 = 200
69 . り = 190
70 . あなた = 187
71 . 出る = 185
72 . まで = 181
73 . だけ = 174
74 . や = 173
75 . 母 = 171
76 . って = 169
77 . 前 = 168
78 . よ = 167
79 . お嬢さん = 166
80 . られる = 162
81 . ぬ = 159
82 . 上 = 156
83 . より = 155
84 . 帰る = 153
85 . | = 151
86 . 気 = 150
87 . 今 = 150
88 . 出す = 145
89 . できる = 145
90 . たい = 141
91 . でも = 139
92 . 顔 = 135
93 . さ = 134
94 . けれども = 133
95 . め = 133
96 . 考える = 129
97 . 言葉 = 128
98 . ため = 126
99 . ただ = 125
100 . 字 = 124
MacPro:~ knnkanda$

//日本語って助詞だらけで、形態素解析しても意味をなさないことがよくわかりました(笑)

夏目漱石が最も使った言葉は何? – 文章中の単語をカウントしよう
https://news.mynavi.jp/article/zeropython-18/

次の目標課題 TensorFlow テンソルフロー

[AI]Googleのオープンソース機械学習 TensorFlow テンソルフロー

[AI]Googleのオープンソース機械学習 TensorFlow テンソルフロー

次の目標課題「スクレイピング」

macのターミナルから、pip install scrapy を打ちこむだけで、Scrapyはインストールできた。

Scrapy + Scrapy Cloudで快適Pythonクロール+スクレイピングライフを送る
http://data.gunosy.io/entry/python-scrapy-scraping

Pythonで作るWebクローラ入門
https://www.youtube.com/watch?v=65tazmN1CPg

foundit #6_02 Python による「スクレイピング & 自然言語処理」入門(講師:戸嶋龍哉 氏)
https://www.youtube.com/watch?v=exupXudARco