Mecabの使い方〜ワンポイントレッスン的な〜

Mecabを使用する目的

  1. 文章を解析するために、読み込んだ、日本語を「分かち書き」に変換
  2. 文章の単語を品詞分解する

Mecabのインストール

Mecabのインストール手順を記載した記事を参照ください。

分かち書き

<コマンド>

echo 昔々、あるところに、おじいさんとおばあさんがおりました。 | mecab -Owakati

<出力結果>※見た目上わからないので半角スペースを「<スペース>」に変換して記載しています。

昔 々 、 ある ところ に 、 おじいさん と おばあさん が おり まし た 。 

シンプル(simple)

<コマンド>

echo 昔々、あるところに、おじいさんとおばあさんがおりました。 | mecab -O simple

<出力結果>

昔 名詞-副詞可能
々 記号-一般
、 記号-読点
ある 連体詞
ところ 名詞-非自立-副詞可能
に 助詞-格助詞-一般
、 記号-読点
おじいさん 名詞-一般
と 助詞-並立助詞
おばあさん 名詞-一般
が 助詞-格助詞-一般
おり 動詞-自立
まし 助動詞
た 助動詞
。 記号-句点
EOS

参照している辞書の情報表示

<コマンド>

mecab -D

<出力結果>

filename: /usr/local/mecab/lib/mecab/dic/ipadic/sys.dic
version: 102
charset: utf8
type: 0
size: 392126
left size: 1316
right size: 1316

TensorFLowを学ぶ

  1. Tensorflow Keras 〜初めてのKeras
  2. Tensorflow Keras Errors”python is not installed as a framework.”
  3. Python Tensorflow 〜初めての人工知能(TensorFlowインストール)
  4. Tensorflow Keras〜初めのトレーニング_1
  5. Tensorflow Keras〜初めのトレーニング_2:前処理〜
  6. TensorFlow Keras〜テキストの分類〜
    1. TensorFlow Keras 実行結果〜テキストの分類〜
  7. Python TensorFlow tutorial〜チュートリアルを進めるコツ、ワンポイント〜
  8. TensorFlow Keras〜回帰、準備から予測まで〜
  9. TensorFlow Java 環境構築〜JavaでもTensorFlow〜


Python TensorFlow tutorial〜チュートリアルを進めるコツ、ワンポイント〜

自分がTensorFlowのチュートリアルを進めていく上で「こーすると楽だ」と思ったことです。

チュートリアルの中で必ずバージョン確認の処理を行うコードがあります。

import tensorflow as tf
from tensorflow.keras import layers

print(tf.VERSION)
print(tf.keras.__version__)

この部分を実行することで、必要なライブラリなどインポートできるか確認できます。コードを書いてからだとどこの部分がダメなのかでバックしないといけないので先に「ハローワールド」しておいた方があとが楽です。


Python Basic〜Tupleのコンソール表示〜

ズバリ

tuple1 = (1, 2, 3)
print("トレーニングイメージ数(train_images.shape):%s " % (tuple1,))

Pythonの特徴みたいだねぇ(笑)


Tensorflow Keras Errors〜python is not installed as a framework.〜

TensorflowのKerasの学習を進める途中でつまづいた部分です。

<エラーメッセージ>

ImportError: Python is not installed as a framework. 
The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. 
See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

<対処法>

参考にしたサイトはこちら

以下のコマンドで修正対象ファイルを調べる

$python
>>> import matplotlib
>>> matplotlib.matplotlib_fname()

出力されたファイル(matplotlibrc)を修正する

修正_前:backend : macosx 
修正_後:backend : Tkagg

確認する

pythonのコンソールを開いて、matplotlib.pyplotをインポートする

>>> import matplotlib.pyplot

これでエラーが出なければOK!


Python TensorBord ワンポイント 〜ウェブサーバーを動かす〜

イントロダクション

Tensorflowを実行して解析したデータを出力します。そのあとにそのデータを表示する。参考にしたサイトはこちらです。

<データの出力先>

log_dir=./logDir

<TensorBord起動>

tensorbord --logdir=./logDir

そしてブラウザーから<http://localhost:6006>でアクセス


Python 引数の渡し方〜Pythonワンポイントレッスン〜

Pythonプログラムに引数を渡す。下のように実行したいと思います。

$python3 プログラム引数1 プログラム引数2

引数の取得方法

args = sys.argv
import sys
import pytrends

args = sys.argv

num = 1
print("アイウエオ")

for param in args:
    print("第%s引数: %s", (num, param))
    num = num + 1

 


python print 使い方〜ワンポイントレッスン〜

「print」関数を使用してコンソールに出力します。

ケース1:単純に文字列を出力します。

print("文字列 A B C");

これはほとんどのプログラムで同じような書き方をすると思います。
そして、文字の間に変数(数値や文字)などを入れたいときは下のようにやります。

num=1
param = "anv"
print("第%s引数: %s" % (num, param))

引数を表示するプログラム

import pytrends
import sys

args = sys.argv

num = 1
print("アイウエオ")

for param in args:
    print("第%s引数: %s" % (num, param))
    num = num + 1
pythn3 test.py pra
<実行結果>
python3 test.py pra
アイウエオ
第1引数: test.py
第2引数: pra

以上、ワンポイントで終わらなかったけど。。。(笑)


Python GoogleTrend 〜トレンドを取得する、ワンポイントレッスン〜

イントロダクション

最近の流行りを調査すべくGoogleトレンドを調べて見ました。そしたらR言語、Python、Node.jsでのAPIはすぐに見つかったのだけれどJavaは見つかりませんでした。。。なのでPythonからトレンドを取得して結果をJavaでモチョモチョとやろうと思います。

pytrendsを使う

Pythonなので「pip」でインストールできます。Macは標準装備なのでピップします。

$pip3 install pytrends

こんな感じでインストール完了、「pip3」コマンドを使用します。間違えないようにしてください。


参考にしたサイトはこちらです。そして実行した結果を下に記載します。

takunojiMacBook-Pro:python takk$ python3
Python 3.7.1 (default, Nov  6 2018, 18:49:54) 
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pytrends
>>> from pytrends.request TrendReq
  File "", line 1
    from pytrends.request TrendReq
                                 ^
SyntaxError: invalid syntax
>>> from pytrends.request import TrendReq
>>> pytrends = TrendReq(hl='ja_JP', tz=360)
>>> kw_list = ["Java", "Ptrhon", "JavaScript"]
>>> pytrends.build(kw_list, cat=0, timeframe='today 5-y', geo='JP', gprop='')
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'TrendReq' object has no attribute 'build'
>>> pytrends.build_payload(kw_list, cat=0, timeframe='today 5-y', geo='JP', gprop='')
>>> pytrends.related_queries()
{'Java': {'top':               query  value
0            string    100
1       java string     96
2           eclipse     79
3      eclipse java     78
4           配列 java     73
5         java list     62
6          java クラス     60
7      android java     59
8         java 文字 列     58
9       java インストール     57
10  java javascript     48
11         java for     45
12       javascript     44
13      java oracle     39
14           oracle     39
15        java メソッド     38
16      java ダウンロード     38
17         java int     38
18       java バージョン     37
19         java api     37
20         java map     36
21        java file     35
22          java 実行     35
23          java 入門     34
24        java date     31, 'rising':                                         query  value
0                                   java 有償 化   7550
1                              android studio   5200
2                                  java ラムダ 式   1500
3                                    java 1.8   1400
4         java セキュリティ によって ブロック され た アプリケーション   1300
5                                 java silver    800
6                                   java ブロンズ    650
7                                 java bronze    450
8                                 java stream    350
9                                      spring    250
10                                java spring    200
11                              java map 初期 化    200
12                                  java json    180
13                            java jsonobject    140
14                               java scanner    140
15                              java contains    120
16                               java foreach    120
17                            mac java インストール     90
18                                 java regex     90
19                             java try catch     90
20                               java isempty     80
21  could not create the java virtual machine     80
22                             java list 初期 化     80
23                               java 文字 列 結合     70
24                               java install     70}
, 'Ptrhon': {'top': None, 'rising': None}
, 'JavaScript': {'top':                   query  value
0                jquery    100
1       javascript html     85
2                  html     83
3         javascript 配列     62
4                    js     46
5                  java     45
6       javascript 文字 列     45
7       java javascript     45
8                   css     38
9        php javascript     31
10                  php     30
11        javascript 関数     26
12      javascript イベント     25
13     javascript array     25
14        javascript 変数     24
15      javascript json     24
16       for javascript     24
17    chrome javascript     22
18        ie javascript     22
19  javascript function     21
20                正規 表現     20
21    javascript オブジェクト     19
22      javascript 読み込み     19
23     javascript 正規 表現     19
24       javascript api     19, 'rising':                         query  value
0          javascript promise   5950
1           javascript moment   2700
2                   angularjs   1800
3                   bootstrap    700
4     javascript array filter    550
5              javascript let    500
6                     json 整形    300
7       javascript json parse    250
8          javascript require    250
9           javascript filter    250
10           javascript const    200
11     javascript array slice    200
12       javascript 文字 列 切り出し    200
13     chrome javascript デバッグ    200
14     javascript date format    190
15          javascript concat    180
16        javascript 三 項 演算 子    180
17     javascript console.log    180
18         javascript console    160
19          javascript splice    160
20             mdn javascript    160
21      javascript use strict    150
22        javascript 連想 配列 削除    140
23          javascript 配列 ループ    140
24  javascript undefined null    140}}

こんな感じで取得できました。Javaからコマンド実行するには

  1. 上のPythonスクリプトをpyファイル(Trends.py)に記載してやり
  2. Javaでコマンド"/usr/local/python3 Trends.py"を起動、結果を取得

のようにしてやればおっけ。

これで検索結果の上位部分を取り出してやれば流行を追いかけることができそうだ(笑)ちなみに楽天プラグインを「流行」で検索して見たらこんなのが出てきた。