kerasで手書き数字の判定

実行結果 このプログラムでは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でアヤメ分類

実行結果 このプログラムではTensorFlowを用いてアヤメのデータを学習させて、その結果を出力するもの。 アヤメデータの読み込み iris_data = pd.read_csv("iris.csv", encoding="utf-8") pandasモジュールはデータ処理の利用するライブラリーで、ここではcs…

TensorFlowでニューラルネットワークのモデルを視覚化

hanamichi-sukusuku.hatenablog.com tensorflowにはニューラルネットワークのモデルを視覚化するための便利なツールも用意されており、今回はこれを利用して作成したデータを図で確認してみる。 上記のリンクで作成されているプログラムにコードを書き加えて…

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=の部分で平均の正解率を出力している。 全体で使う変数、ファイル…

テキストデータを数値で表現し、データベースを作成する(BoW)

# 全てのテキストを巡回して単語データベースを作成する 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の簡単なまとめとマルコフ連鎖

Doc2Vecでは簡単に文章を分類することができる。 単語のベクトルによる計算はWord2Vecを、文章のベクトルによる計算はDoc2Vecと使い分けることができる。 Doc2Vecで作成するプログラムを応用すれば問い合わせの分類や類似度を図るという観点から、「類似した…

Doc2Vecで作成したモデルで作者の分類

作者の分類をするプログラム。 前提として事前に青空文庫から取得した文書データを使用してDoc2Vecでモデルの作成を行っている。そのモデルを使用して作者の分類を行っていく。 import urllib.request as req import zipfile import os.path import MeCab fr…

Doc2Vecを利用してモデルの作成

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("") #学習対象とする青空文庫の作品リスト --…

Word2Vecの簡単なまとめ

まとめ 前回までではWikiprdiaの文章をモデルに学習させたが、テキストの集合体であればなんでも学習させることができる。 例えば標準語と方言の類似度を調べることもできる。 ・今日も寒いから暖かい格好をしてね ・今日はしばれるから暖かい格好をしてね …

文章から指定した文字との類似度を調べる

実行結果 このプログラムは文章から任意の文字との類似度を出力するプログラムである。 今回の場合、「至急」という文字との類似度を確認できることで文章の緊急度合いがわかるようになる。 実行結果を見ると一つ目の文章の一部が数値が高くなっている。おそ…

単語の類似度の出力と単語の計算 (Word2Vec)

wikipediaから取得したデータで学習させたモデルを使って、単語の類似語を出力するプログラム。 実行結果 モジュールインポート word2vecは単語をベクトル化させるライブラリ。 モデルの読み込み word2vec.Word2Vec.load()でwikipediaから取得したデータから…

Word2Vec,学習モデル作成

単語をベクトル化するにはWord2Vecを使用する。 Word2Vecはディープラーニングの技術を利用して単語をベクトル化する技術である。 大量の文章から単語をベクトル化し単語の意味を推測する。(単語の計算や単語の類似度を計算することができる) Word2Vecは既…

単語の意味をベクトル化

単語ベクトル化を行うと「単語の意味を計算すること」や「単語の類似度を計算すること」ができるようになる。 例えば 「王」ー「男」+「女」=「女王」 この式は、王様のベクトルから、男性のベクトルを引き、女性のベクトルを足すと、女王のベクトルと親し…

python ストップワードの除去

ストップワードとはあまりにも利用頻度が高い言葉であるために、処理対象外とする単語のことである。例えば助詞や助動詞など(が、の、です、ます)がそれに該当する。 どのような場面でストップワードの除去を行うかというと例えば形態素解析した結果を機械…

python 形態素解析(mecab-ipadic-NEologdの使用)

mecad-ipadic-NEologdとは新し語や固有表現を追加することでIPADICを拡張したMeCab用のシステム辞書である。 毎週2回更新されていて、はてなキーワードやニュース記事などから新しい情報資源から単語を抽出して辞書を作成している。 実行結果 MeCabで利用す…

python 文章を単語に分割する(形態素解析)

まず形態素解析について 形態素解析とは対象言語の文法辞書や、単語辞書(品詞情報などが付与された単語一覧)に基づいて、意味を持つ最小単位(形態素)に文章を分割し、各形態素に品詞情報などを付与することである。(まだ意味わかんないと思う) 例えば…

python 利用されている文字が同じ言語の判定

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 = …

python 自然言語処理、英語、日本語、タイ語の言語判定を行うプログラム

実行結果 このプログラムは日本語、英語、タイ語の言語判定を行うプログラム。 モジュールインポート import numpy as np from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score numpyは強力な数値計算ライブラリ。 アル…

python 動画ファイルから魚が映った場面を抽出する

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 = …

python 魚が映っている時と映っていない時の画像で機械学習にかけて学習モデルの作成

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 # 画像の学習サイズ…

python  動画から熱帯魚が映った場面を抽出(基本)

import cv2, os img_last = None # 前回の画像 no = 0 # 画像の枚数 save_dir = "./exfish" # 保存ディレクトリ名 os.mkdir(save_dir) # ディレクトリを作成 # 動画ファイルから入力を開始 --- (*1) cap = cv2.VideoCapture("fish.mp4") while True: # 画像…

python 動画ファイルの書き出し

import cv2 import numpy as np # カメラからの入力を開始 cap = cv2.VideoCapture(0) # 動画書き出し用のオブジェクトを生成 fmt = cv2.VideoWriter_fourcc('m','p','4','v') fps = 20.0 size = (640, 360) writer = cv2.VideoWriter('test.m4v', fmt, fps,…

python 画面に動きがあった部分の抽出

import cv2 cap = cv2.VideoCapture(0) img_last = None # 前回の画像を記憶する変数 --- (*1) green = (0, 255, 0) while True: # 画像を取得 _, frame = cap.read() frame = cv2.resize(frame, (500, 300)) # 白黒画像に変換 --- (*2) gray = cv2.cvtColor…