2018-03-30

LINEから送った画像を文字起こししてくれるアプリを作るときのメモ①

ユーザーのニーズ


・卒論書く時とか、電子化されていない書物から引用したいけど、写すの糞めんどうくさい
・書評を書きたいけど、紙の本だと結構面倒くさい。
・文字起こしをしてくれるAPIのお試しページからそれをやるのも面倒くさい

実装したいもの


・Lineのインターフェイスから画像を送信したときに、その情報をGoogle Vision APIにかませて、文字おこししてかえしてくれる処理

仕様


正常系
・画像を送信すると、その画像に含まれている文字を返してくれる

異常系
・画像以外のデータ(テキスト・位置情報)を送ると、invalid dataみたいなレスポンスがちゃんと帰ってくるようにする
・文字が含まれていないもの、もしくは検出できないものに関しても、invalid imageみたいな値がちゃんと帰ってくるようにする
・APIのレスポンスを超えてしまった場合は、献金ページに移動する
・一秒間に10リクエスト以上gああると止まる

実装方法


・画像はLINEのエンドポイントからいったんbase64方式に変換して、Google Vision APIに投げると、リクエストで文字起こしした結果が返ってくる


2018-03-25

「技術チュートリアルをnoteで売る」っていう社会実験をしてみた結果、めっちゃくちゃ可能性を感じた話




こんにちは、スケベサイエンティストのDaiです(@never_be_a_pm
つい最近、noteというサービスが、コードを挿入できる機能を追加しました。

noteでコードが投稿できるようになりましたβ|深津 貴之 (fladdict)|note

エンジニアのnoteクリエイターさん達に、素敵なお知らせが。 pcのnoteエディターに、コード埋め込み機能(β)がつきました。エディタでテキストを選択し、ポップアップのコードボタンを押すと、コードブロックを埋め込めます。 こんな感じですね。 for(int i=0; i<100; i++){ println("hello world"); } あわせて、コードブロックの中では、TABボタンが使えるようになります。まだ実験中なので、使いにくいところはあるかと思います。 アプリでの対応はリニューアル後になってしまいますが、年内には搭載されるはずです。マ


noteとは、自分の作った文書、写真、イラストなどに価格をつけて販売することができるプラットフォームです。

noteは、個人のクリエイターが、自分のメディアとしてコンテンツを発表するためのプラットフォームです。

noteは、そこに課金を組み合わせるという新しいチャレンジをしました。文章だけでなく、写真やイラスト、音楽、映像などの作品を投稿して、無料で見せるだけでなく、販売することもできます。フォロー機能で、ファンとつながることも可能です。

ここで、最近noteがコードを挿入することができる機能を追加したという記事をみました。そこで「チュートリアルを売る」ということが、日本でなかなかされていないことに気が付きました。


2018-03-23

【速報】スケベ博士が「金払わなきゃ動かないのじゃ」とグレたのでスケベ基金はじめます。

こんにちは、スケベサイエンティストのDAIです。
スケベツイートが1万RT超えしてしまったせいで、実はスケベ博士の利用者が大変なことになっています。


2018-03-21

AIで似ているAV女優を紹介しているスケベAI「スケベ博士」を作りました。①アプリ紹介編

こんにちは。スケベサイエンティストのDAI(@never_be_a_pm)です。
AIで、画像から似ているAV女優を紹介してくれるLine Bot「スケベ博士」を作りました。



2018-03-19

multipart/form-dataのファイルをGoogle Apps Scriptから送信する

Google Apps Scriptでファイルを送れない


HTTPの通信を用いて、ファイルを送るとき、curlやpythonでは、コマンドでfile指定すれば、簡単にmultipartのファイルを送れる。しかし、Google Apps Script上では、簡単にmultipartを送信することができない。


2018-03-12

Pythonによる画像学習:ひらがなからローマ字に変換する

CSVに存在するAV女優のデータには、AV女優名、AV女優名(ひらがな)、動画URLがあります。Microsoft Azure Face APIを利用するうえで、日本語に対応していなかったので、このひらがなの部分をローマ字に変換します。


pandasで作成したCSVのデータをよみこみ、一つ一つの上を取り出して、ひらがなの部分をローマ字に変換する処理を行い、その結果を再度pandasでCSVにエクスポートすることで、データの前処理を行いました。


ということで今回はそのコードをべた張りしておきます。
ちなみに、だれかがひらがなからローマ字にしてくれるラッパ-を作成してくれていたので、それを利用させてもらいました。ありがたや。


miurahr/pykakasi

pykakasi is re-imprelemtation of kakasi library by Python.
READMEに従って、

$ pip install pupykakasi

をすれば、インストールできると思います。使い方はREADMEにある通り、こんな感じ。
    from pykakasi import kakasi,wakati

    kakasi = kakasi()
    kakasi.setMode("H","a") # default: Hiragana no conversion
    kakasi.setMode("K","a") # default: Katakana no conversion
    kakasi.setMode("J","a") # default: Japanese no conversion
    kakasi.setMode("r","Hepburn") # default: use Hepburn Roman table
    kakasi.setMode("C", True) # add space default: no Separator
    kakasi.setMode("c", False) # capitalize default: no Capitalize
    conv = kakasi.getConverter()
    result = conv.do(text)

    wakati = wakati()
    conv = wakati.getConverter()
    result = conv.do(text)


で、このpykakasiを利用して、ひらがなからローマ字にして、CSVに加えました。

import pykakasi.kakasi as kakasi
import pandas as pd

kakasi = kakasi()
kakasi.setMode("H","a")
conv = kakasi.getConverter()

df1 = pd.read_csv("final.csv", index_col=0)
df = pd.read_csv('default.csv', index_col=0) #女優名・女優の画像URL・DMMの画像URLが列に入っている
romandf = pd.read_csv('roman.csv', index_col=0)

def getRomeNameByHira(hira):
    result = conv.do(hira)
    return result

for index, row in df1.iterrows():
    name = row["name"]
    kana = row["kana"]
    image = row["image"]
    dmmimage = row["dmmimage"]
    roman = getRomeNameByHira(row["kana"])
    print(roman)
    se = pd.Series([name,kana,image,dmmimage,roman],["name", "kana", "image","dmmimage","roman"])
    romandf = romandf.append(se,ignore_index=True)
romandf.to_csv("romaned.csv")

2018-03-11

未経験プログラマーが転職するときに必要なこと

土日でツイッター経由で、フリーランスの人に話してきたんだけど、その時にいろいろな転職の話を聞いたので覚書。


Python 機械学習のためのMicrosoft Azure Face API活用② Microsoft Azure Face APIに、AV女優を学習させる

とりあえずメモで。
PythonでMicrosoft Azure Face APIを利用して、画像の学習が成功したので、とりあえず動かしてみたときのコードを置いておく。


2018-03-10

Python requestsでrequest bodyがJSON形式のデータを送信する方法

Pythonで、requestsを利用している際に、request bodyがJSON形式のデータを送信したかった。その際にはまったことの忘備録。


pythonでE: Unable to locate package python-pipと出てきたときの対処法

pythonでE: Unable to locate package python-pipと出た時の対処法を忘備録に。

2018-03-06

Python 機械学習のためのMicrosoft Azure Face API活用① Microsoft Azure Face APIに、AV女優を学習させるためにAPIドキュメントを読む

Microsoft Azure Face APIを利用して、スクレイピングで取得したAV女優の画像を学習させる。

#TODO

  • この記事を参考にして、Microsoft Face APIにAV女優の画像を学習させる
  • 今回はMicrosoft Azure Face APIを利用してみたいので、そのドキュメントを読んでまとめてみる

2018-03-03

Python 機械学習のための画像収集①:アダルトサイトからAV女優6000名の名簿データをスクレイピングし、スプレッドシートを公開しました

#やりたいこと

  • Microsoft AzureのFace APIを使って、Lineから送られてきた画像から、似ているAV女優を取得する




Web APIのマッシュアップアプリ開発入門

QiitaでWeb APIを利用したマッシュアップアプリが少しバズったので、今回はWeb APIを利用した、マッシュアップアプリについて書いてみたいと思います。


リグレッションテストのテストケース書くときに気を付けるべきこと

リグレッションテスト覚書

2018-03-02

検索したDMMアダルトのサンプル動画をLINEからすぐ見れる「変態コンシェルジュ」を作ってみました

問題提起


こんにちは、DAIです。(@never_be_a_pm)


アダルト動画の品質は、ここ数年間でかなり品質がよくなってきています。それにつれて、サンプル動画の質も非常によくなってきています。


2018-03-01

ブログを書くモチベーションを持続させるために必要な5つの基準

今月ブログで稼ぐために記事書いてたら超絶つまらなくなったので、その時に気づいたことずらずら並べます。ブログを書くモチベーションについてです。



LINEでMM号と打つと、DMMからサンプル動画を送ってくるLine Botを作成しました。

前回は画像オブジェクトをメッセージとして送信したのですが、今回はテンプレートオブジェクトで、バックグラウンドがDMM APIから取得した画像、さらに共有するURLがDMMのサンプル動画のスクリプトを作成しました。





本来であれば、動画をリスト形式で送りたいのですが、念のためバックアップを取りたいので、こちらにメモしておきます。


注目の投稿

めちゃくちゃ久しぶりにこのブログ書いたw 更新3年ぶりw > 多様性というゲームは尊厳と自由を勝ち取るゲームなのかもしれないな。  もともとツイッターでツイートした内容なんだけど、ちょっと深ぼる。 ----- 自分は男 x 30代x 二児の父 x 経営者 x 都心(共働き世...