barilog

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

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

どうも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の記事を参考につくってみてください!

 

amazonで自動で商品を選んでカートに入れるプログラムを作ってみた

こんにちはbarisukeです。

 

この記事ではamazonで自動で商品買うためのプログラミング方法を紹介します。

 

 

まず最初に今回できあがるであろうプログラミングコードを紹介します。

github.com

※参考になったら"star"ボタン押していただけるとめちゃ嬉しいです。

 

〜〜コードを動かす手順〜〜

1 Python3環境を構築する

1.1 anacondaのインストール

 

2 zipファイルをダウンロードする

 2.1https://github.com/barisuke/amazon_scrayping/archive/master.zip

 

3 pipで必要なパッケージをインストール

3.1 コマンドプロンプト(ターミナル)を開いてrequirements.txtがあるフォルダ(ディレクトリ)に移動

3.2 pip install -r requirements.txt のコマンドをうつ

 

4 コードを動かしてみる

4.1 コードの中のURL, TARGET_WORDS, TARGET_PRICE_RATEを好みのものに書き換え、上書き保存

4.2 python amazon_scrayping.pyとコマンドをうつ

4.3 うまくいくように祈る

 

 

 以上がコードを動かす手順です。

 

補足:

4.1に関して

 

URLは

www.amazon.co.jp

のようにamazonの検索窓で検索したあと表示されるURLをつかってください。

f:id:barisuke:20180416032351p:plain

 このような商品の一覧が出てくる画面のURLをコピってください。

 

プログラムではここで中古品が存在する商品のurlを全部取得します。

 

その後

f:id:barisuke:20180416032549p:plain

のように中古品のページに自動的に遷移します。

 

このプログラムでは以下の基準で商品をカートに入れます。

 

1.指定した語句が「コンディション」の文中にあるか?

「コンディション」の文に注目し、TARGET_WORDSで指定された語句(未開封 綺麗など)が全てコンディションの文中に入ってる商品のみを選択します。

 

2.「商品価格+配送料」が新品のそれよりもお得か?

「商品価格+配送料」を取得し、新品の価格との比較を行います。

「商品価格+配送料/新品価格を計算し、これがTARGET_PRICE_RATE以下の商品のみを選択します。

 

例えばTARGET_PRICE_RATEが0.5だった場合、上の商品はこの画像では映ってませんが新品価格が16960円であり、中古商品の最安のものが8580+350=8930円ですね。16960円*0.5は8800円なので、最安のものでも130円オーバーでアウトです。

ですので、TARGET_PRICE_RATE=0.5に設定した場合、このページではどの商品もカートに入りません。