barilog

エンジニアリング見習い雑記

Effective Pythonのまとめ

pythonコードを綺麗に書く方法を学ぶために、こちらの本を借りました。

Effective pythonです。

 

項目1: 使っているPythonのバージョンを知っておく

項目2: PEP8スタイルガイドに従う

項目3: bytes, str, unicodeの違いを知っておく

項目4: 複雑な式の代わりにヘルパー関数を書く

こちらを参照

Effective Pyhton メモ 項目4 複雑な式の代わりにヘルパー関数を書く

 

項目5: シーケンスをどのようにスライスするか知っておく

項目6: 一つのスライスでは,start, end, strideを使わない

項目7: 

ubuntuへのmysqlのインストール

こちらでできる

ksino.hatenablog.com

 

以上!!!!!

 

このあとpythonからmysqlに接続する

その際に参照すべきはこちらのぺーじかな

Python3 データをMySQLに挿入する|Review of My Life

 

mysqlというモジュールがみつからん!というお叱りを頂いた場合、pathの設定がうまくいってないです。

blog.nikuniku.me

こちらを参照にpipのsite-packagesのパスを把握し、

import sys

sys.path.append("パス")

でパスを追加しましょう

 

 

 

上記で環境構築は終了です

次に実際にpythonmysqlを連携させてテーブルの中身をデータフレームに入れるコードを掲示します!

 

#ライブラリのインポート
import mysql.connector

import pandas as pd


conn = mysql.connector.connect(
user ='root',
passwd = 'パスワード',
host = 'localhost',
db = 'データベース名')

df = pd.read_sql("SELECT * FROM テsample_table",con=conn)

 

これでおっけー!

 

参考

https://stackoverflow.com/questions/37730243/importing-data-from-a-mysql-database-into-a-pandas-data-frame-including-column-n

オープンイノベーションスペースでの施策案かきなぐり

どうもbarisukeです。

今自分はlabcafeというコワーキングスペース

Lab+Cafe

の学生スタッフをやっております。

 

ここはコンセプトとして

・夜ゆっくりできる居心地が良い場所

・肩書きに関係のない仲間を見つけられる場所

・仲間とともに何かに挑戦できる場所

があります。

 

・夜ゆっくりできる居心地が良い場所

に関しては非常によく実現できていると思います。過去現在の学生スタッフのリーダーが頑張ってくれました。

 

・仲間とともに何かに挑戦できる場所

・肩書きに関係のない仲間を見つけられる場所

この2つがまだ不十分ですね。

 

まず

・肩書きに関係のない仲間を見つけられる場所

を実現するための施策をいくつか考えていたいと思います。

 

a. 国際交流センターに掲示を出す 

b.利用者の専門・興味分野の本を展示

c.facebookコミュニティまたは黒板で他己紹介/自己紹介/特定分野の紹介を行った場合メニューのサービス (きっとコミュニティ内に学生と絡みたいけど機会がないOBOG、自分の自己紹介をするのは恥ずかしいが自分の知っているすごい人を紹介したい人はいるはずだ)

d.(スペース内の使われていない席に対して)配置変更&電源タップ設置などの利用促進

e.スペース利用規約の更新

f.ipadを用いた映像撮影(500円とか) 要三脚 ->イベントは撮影してコミュニティページにアップロードするのをデフォにする(ちゃんと許可はとる)。 http://amzn.asia/iSUibXYこれとかつかって

 

らへんですかね。

 

 

次に

・仲間とともに何かに挑戦できる場所

を実現する施策に関して書いていきたい。

a. いろんな分野の挑戦体験談を語るイベントを開く。

b.利用者の思う呼びたい人、聞きたい話のリストを作成

c.留学生のピッチイベントの開催

d.仲間募集掲示の作成

とかですかね。

 

あと単純に上で挙げたコンセプトの周知が足りてないとおもいます。

HPを編集してもっと反映させたいですね。

 

終わり。

学術論文からNLPを用いてファクトを抜き出す

論文からファクトを抜き出す技術についてこんなやりとりが全脳アーキテクチャであった。
紹介されている論文については今週読む。
 

どなたかご存知の方にお聞きしたいのですが、
神経科学・医療・生物学系などの論文から、自然言語処理でファクトを抜き出すような技術は今はどのあたりまでできるようになっているのだろうか?たとえば、「海馬CA1 contains 場所細胞」とか抜き出せるとか。
そうではなくて、むしろデータベース化が進んでいるとか?

2,005年くらいのBioinformaticsの状況は知っているが、DL以降はどのくらい良くなったか知らないもので。。。

 
 
いいね!
 
コメントする
コメント
中川 裕志 深層学習がよいという話はありえそうですが、こういう難しい問題に適用して成功した話は私は聞いていない(ただし、私はもはや自然言語の研究者でないので、嘘を言っているかもしれないです😅
ちなみに機械翻訳は深層学習で劇的に改善しましたが、実は意味を理解して翻訳しているわけではないので、異なるメディアの間での変換という形になるので、かなり楽なケース。(注:日本語というメディアから英語というメディアへという意味)
1
管理する
 
いいね!他のリアクションを見る
返信1時間前
秋山理 昨年kaggle において 分子生物学の論文のテキスト情報からその論文で扱われている遺伝子の性質を判別するコンペティションが開かれています。
https://www.kaggle.com/c/msk-redefining-cancer-treatment
管理する
 
いいね!
 
返信1時間前
礼王 懐成 意味解析の分野で、AMR(Abstract Meaning Representation)が最近注目されおり、述語項構造+概念情報(固有名詞、時間情報などのエンティティ)+ 文脈情報(共参照,談話構造)についての情報表現ができるのが特徴です。
ARMとLSTMを組み合わせた研究もあり、以下の論文のようにBiomedical イベント情報抽出などにも応用されています。
http://www.aclweb.org/anthology/W17-2315
2
管理する
 

np.dot(a, b)で計算できるaとbの組み合わせ

np.dot(a, b)で計算できるaとbの組み合わせ

内積計算において、次元を合わせる作業は必須である。

しかし、np.dotにおいては1次元配列と多次元配列の計算においてはなぜか次元が合わなくても計算できてしまう現象が発生する。

 

本記事の目的は、np.dot(a,b)で次元が合わなくても計算が実行される際、どんな計算が行われているのかを実験により明らかにすることである。

 

 

実験1

x = [[1,2,3],[2,3,4]] #(2,3)
W = [[1,3,4],[2,3,4],[2,3,4]] # (3,3)
np.dot(W, x)

 

ValueError: shapes (3,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)


実験2
x = [[1,2,3],[2,3,4]] #(2,3)
W = [[1,3,4],[2,3,4],[2,3,4]] # (3,3)
np.dot(x, W)
array([[11, 18, 24],
       [16, 27, 36]])

実験3
x = [1,2,3] #(1,3)
W = [[1,3,4],[2,3,4],[2,3,4]] # (3,3)
np.dot(W, x)
array([19, 20, 20])

実験4
x = [1,2,3] #(1,3)
W = [[1,3,4],[2,3,4],[2,3,4]] # (3,3)
np.dot(x, W)
array([11, 18, 24])



実験5

f:id:barisuke:20180614111955p:plain

実験6
x = [[1],[2],[3]] #(1,3)
W = [[1,3,4],[2,3,4],[2,3,4]] # (3,3)
np.dot(W, x)
array([[19],
       [20],
       [20]])



実験1,2より
多次元配列と多次元配列の計算の場合は、引数の順番を合わせる/またはtransposeすることにより次元を合わせる必要がある 

実験3,4より
一次元配列と多次元配列の計算の場合は、次元が合わない場合勝手にtransposeが起こる。

ということがわかった。

つまり、

np.dot()において

次元が合わなくても計算ができてしまうのは

1次元配列と多次元配列の内積計算の時のみで、その時は1次元配列の転置が自動的に行われるということである。

 

「基礎からのMySQL」のまとめをつくってみた!

webサービスを作る際に大量のデータから必要なデータを選んで加工してユーザーに見せる!

みたいなことが求められることがあります。

 

そういうときに必要なのがSQLの知識ですね。前々回の記事でamazonで商品をカートに入れるプログラムを紹介しました。

 

このプログラムでは実は色んな商品情報を取得してます。これらの情報を保存しておき、カートに入れた商品の情報を確かめられるようにする!そのための勉強というのが今回の目的です。

 

 

SQLに関しては簡単な知識しかなかったため、勉強がてらこちらの本を借りてきました。

amzn.asia

 

SQLはデータを構造的に保存するためのデータベースと呼ばれる仕組みの一つです。

データベースを扱う人はほとんどSQLを用いてます。

 

さらに、このSQLを操作するために、色々なシステムがあります。

その中でもオープンソースつまり無料で最もシェアが高いシステムがMySQLです。

 

データベースの初心者の方が学ぶシステムとしては最適でしょう。

 

それではこちらの本のまとめを書いていきます。

目次

1 MySQLの概要

2 MySQLの環境設定

3 MySQLの基礎知識

4 データベースの作成

5 データ型とデータの入力

6 データを改造する

7 テーブルやレコードをコピー・削除する

8 色々な条件で抽出する

9 データを編集する

10 複数のテーブルを利用する

11 ビューを使いこなす

12 ストアドプシージャを使いこなす

13 トランザクションを使いこなす

14 ファイルを使ったやり取り

15 MySQLを利用するためのPHP

16 PHPの基礎知識

17 PHPスクリプトとHTML

18 PHPスクリプトMySQLを操作する

19 PHPMySQLで簡単掲示板を作る

20インターネットに公開するときの対策

21 ちょっと実用掲示板の作成

appendix1 phpMyAdiminの利用

appendix2 問題解決チェックシート

appendix3 MySQL基礎練習

 

DeepLearningを使って、安倍首相のフィギュア引退会見の動画を作ってみた

こんにちはbarisukeです。

今回はディープラーニング技術を使って「安倍首相のフィギュアスケート引退会見動画」を作ってみました。な、何を言ってるかわからねー。。何を言っているんだこいつは。。という人は次の動画を見てください。

 

youtu.be

※盛大に音ズレあり。

 

 

ところどころ、元の本体である浅田真央が見え隠れしてます。

 

特に泣きそうになって横を向いたときに、ほぼ浅田真央が出現してます。癒やしです。

 

 

しかし真正面を向くと安倍首相が復活してしまい、大変残念な気持ちになります。

 

 

 

これはディープラーニングを使って、動画の人物の顔を他人の顔似入れ替えるということをおこなってます。

 

今回はdeepfakesという技術を使いました。元のコードはこの人のgithubにあります。

https://github.com/deepfakes/faceswap

 

動画の作り方は以下のqiitaの記事を参照しました。

qiita.com

 

この技術は、fakepornoというAV動画の女優の顔を入れ替えた作品群が作られたことをきかっけに有名になりました。

詳しい技術的な紹介じゃ省きますが、知りたい方はこちらのリンクを見てください..と思って資料を探そうと思ったんですが、なかなか日本語で解説している記事がありませんね。あとで私が書いてみます。

 

とりあえずは上のqiitaの記事を参考につくってみてください!