hanamichi-sukusuku.hatenablog.com 上記ではMLPを使用することで比較的高い正解率を叩き出すことができた。しかし、CNN(畳み込みニューラルネットワークを利用することで、より高い精度を出すことができる。 CNNとは畳み込み層(convolution layers)とプーリ…
# MLPでMNISTの分類問題に挑戦 import keras from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop from keras.datasets import mnist import matplotlib.pyplot as plt # 入力と出力を指定 …
実行結果 このプログラムではTensorFlowを用いて手書き数字の判定を行っていく。 MNISTデータの読み込み import keras from keras.datasets import mnist from matplotlib import pyplot (X_train, y_train), (X_test, y_test) = mnist.load_data() for i in…
実行結果 このプログラムではTensorFlowを用いてアヤメのデータを学習させて、その結果を出力するもの。 アヤメデータの読み込み iris_data = pd.read_csv("iris.csv", encoding="utf-8") pandasモジュールはデータ処理の利用するライブラリーで、ここではcs…
hanamichi-sukusuku.hatenablog.com tensorflowにはニューラルネットワークのモデルを視覚化するための便利なツールも用意されており、今回はこれを利用して作成したデータを図で確認してみる。 上記のリンクで作成されているプログラムにコードを書き加えて…
実行結果 hanamichi-sukusuku.hatenablog.com このプログラムではTensorFlowを用いて上記で作成したジャンケンの勝敗データを学習させるプログラムである。 tensorflowとは 機械学習を行うライブラリーで、機械学習やディープラーニングが実践できるが、それ…
このプログラムではジャンケンの勝敗データを作成し、データファイルに保存するもの。 ジャンケンの公式を定義 judge = lambda a, b: (a - b + 3) % 3 lambdaは無名関数。 lambda 引数: 返り値 という形で書く。 これを関数で表すと def func(引数): return …
文章を機械学習にかけるときのまとめ ・文章を機械学習にかけるときは、単語辞書を用いてテキストをIDに変換して、単語の出現頻度を調べることで実践できる。 ・文章の分類にはベイズ分類器が威力を発揮する。 ・スパム判定を応用することで、メッセージに対…
実行結果 hanamichi-sukusuku.hatenablog.com このプログラムでは上記で作成した学習モデルを用いて自身で作成したテキストのスパム判定を行っている。 三連引用符 test_text1 = """ 会社から支給されているiPhoneの調子が悪いのです。 修理に出すので、しば…
実行結果 hanamichi-sukusuku.hatenablog.com このプログラムでは上記で作成した単語を数値で表現したデータベースを用いて機械学習にかけ、学習モデルを作成していく。 実行結果ではaverage=の部分で平均の正解率を出力している。 全体で使う変数、ファイル…
# 全てのテキストを巡回して単語データベースを作成する import os, glob import MeCab import numpy as np import pickle # 保存ファイル名 savefile = "./ok-spam.pickle" # MeCabの準備 --- (*1) tagger = MeCab.Tagger() # 変数の準備 --- (*2) word_dic…
スパムとはメール、SNSなどで受信者・運営社の意図とは反する迷惑なメッセージや書き込みを指す。アダルトサイトの勧誘や、カジノ、ダイエット、架空請求やクリック詐欺などがその内容である。 そんな不快なメッセージを自動的に判定するために、電子メール…
hanamichi-sukusuku.hatenablog.com こちらで紹介したマルコフ連鎖を用いた自動作文ではオウム返しのようなやりとりになってしまったり、辞書からランダムに単語を取得していることからあまり実用的でないプログラムになっている。しかし、応用できる箇所は…
今回のプログラムではマルコフ連鎖を用いて、自動作文を作成していく。 マルコフ連鎖とは未来の状態が現在の状態によって決まるという確率過程のことで今回のプログラムに当てはめると、辞書型のオブジェクトに形態素解析した単語を保存していき、それを辞書…
Doc2Vecでは簡単に文章を分類することができる。 単語のベクトルによる計算はWord2Vecを、文章のベクトルによる計算はDoc2Vecと使い分けることができる。 Doc2Vecで作成するプログラムを応用すれば問い合わせの分類や類似度を図るという観点から、「類似した…
作者の分類をするプログラム。 前提として事前に青空文庫から取得した文書データを使用してDoc2Vecでモデルの作成を行っている。そのモデルを使用して作者の分類を行っていく。 import urllib.request as req import zipfile import os.path import MeCab fr…
import zipfile import os.path import urllib.request as req import MeCab from gensim import models from gensim.models.doc2vec import TaggedDocument #Mecabの初期化 mecab = MeCab.Tagger() mecab.parse("") #学習対象とする青空文庫の作品リスト --…
まとめ 前回までではWikiprdiaの文章をモデルに学習させたが、テキストの集合体であればなんでも学習させることができる。 例えば標準語と方言の類似度を調べることもできる。 ・今日も寒いから暖かい格好をしてね ・今日はしばれるから暖かい格好をしてね …
実行結果 このプログラムは文章から任意の文字との類似度を出力するプログラムである。 今回の場合、「至急」という文字との類似度を確認できることで文章の緊急度合いがわかるようになる。 実行結果を見ると一つ目の文章の一部が数値が高くなっている。おそ…
wikipediaから取得したデータで学習させたモデルを使って、単語の類似語を出力するプログラム。 実行結果 モジュールインポート word2vecは単語をベクトル化させるライブラリ。 モデルの読み込み word2vec.Word2Vec.load()でwikipediaから取得したデータから…
単語をベクトル化するにはWord2Vecを使用する。 Word2Vecはディープラーニングの技術を利用して単語をベクトル化する技術である。 大量の文章から単語をベクトル化し単語の意味を推測する。(単語の計算や単語の類似度を計算することができる) Word2Vecは既…
単語ベクトル化を行うと「単語の意味を計算すること」や「単語の類似度を計算すること」ができるようになる。 例えば 「王」ー「男」+「女」=「女王」 この式は、王様のベクトルから、男性のベクトルを引き、女性のベクトルを足すと、女王のベクトルと親し…
ストップワードとはあまりにも利用頻度が高い言葉であるために、処理対象外とする単語のことである。例えば助詞や助動詞など(が、の、です、ます)がそれに該当する。 どのような場面でストップワードの除去を行うかというと例えば形態素解析した結果を機械…
mecad-ipadic-NEologdとは新し語や固有表現を追加することでIPADICを拡張したMeCab用のシステム辞書である。 毎週2回更新されていて、はてなキーワードやニュース記事などから新しい情報資源から単語を抽出して辞書を作成している。 実行結果 MeCabで利用す…
まず形態素解析について 形態素解析とは対象言語の文法辞書や、単語辞書(品詞情報などが付与された単語一覧)に基づいて、意味を持つ最小単位(形態素)に文章を分割し、各形態素に品詞情報などを付与することである。(まだ意味わかんないと思う) 例えば…
import numpy as np from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score import glob # Unicodeのコードポイント頻度測定 def count_codePoint(str): # Unicodeのコードポイントをアドレスとする配列を用意 counter = …
実行結果 このプログラムは日本語、英語、タイ語の言語判定を行うプログラム。 モジュールインポート import numpy as np from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score numpyは強力な数値計算ライブラリ。 アル…
import cv2, os, copy, pickle # 学習済みデータを取り出す with open("fish.pkl", "rb") as fp: clf = pickle.load(fp) output_dir = "./bestshot" img_last = None # 前回の画像 fish_th = 3 # 画像を出力するかどうかのしきい値 count = 0 frame_count = …
import cv2 import os, glob, pickle from sklearn.model_selection import train_test_split from sklearn import datasets, metrics from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score # 画像の学習サイズ…
import cv2, os img_last = None # 前回の画像 no = 0 # 画像の枚数 save_dir = "./exfish" # 保存ディレクトリ名 os.mkdir(save_dir) # ディレクトリを作成 # 動画ファイルから入力を開始 --- (*1) cap = cv2.VideoCapture("fish.mp4") while True: # 画像…