もふもふ技術部

IT技術系mofmofメディア

機械学習(Machine Learning)

Rasaとhuggingface/transformersを使って日本語の固有表現抽出する

以前にhuggingface/trasformersで固有表現抽出する方法を試してましたが、日本語ではうまく動かせませんでした。今回は日本語の言語モデルの上にファインチューニングして固有表現抽出出来るところまでやってみます。 前回: huggingfaceのtransformersでNER(…

Kerasを使ってRNN(LSTM)でスパムメッセージの分類をしてみる

自社のサービスで、テキストを分類したりラベリングしたりということをやりたくなったので、文章タスクが得意らしいRNN(LSTM)で単純な分類問題を解いてみたい。 スパムメッセージ分類がちょうど良い難易度っぽいので、以下エントリのコードをお借りして動く…

Rasa NLUをPythonのコードから呼び出す方法

RasaNLUはAPIサーバが内包されているので、単純に固有表現抽出するAPIは最初からある。だがしかし、今回そこそこな回数の固有表現抽出処理を連続で行いたいというニーズがあったので、1リクエストで複数の固有表現抽出処理を行うAPIを追加したい。 たぶんFla…

Heroku Container RegistryでPython + Rasa NLUを動かす

以前にHeroku上でPythonで動かしている機械学習のAPIを立てたことがあった。Herokuならサーバを意識する必要がないので楽チンなので、固有表現抽出のRasa NLUをHerokuで動かしてみたいと思います。 ローカルのdockerで動くようにする docker-composeで動くよ…

Rasa NLUで日本語の固有表現抽出をしてみる

前回Rasa NLUを使って英語文章のintentを分類できるところまで出来たので、今度は日本語でやってみる。 Rasa NLUを使って固有表現抽出器を作りたいので入門してみた 文章から固有表現抽出してみる ソースコード まず、data/nlu.mdに日本語の教師データを追加…

Rasa NLUを使って固有表現抽出器を作りたいので入門してみた

そういえば最近Mac Book Proを新しくしたのでPython環境が整っていなかった。今まではpyenv + pyenv-virtualenvでバージョン管理してたんですが、最近ではPython公式がPipenvを推してるらしいのでpyenv + pipenvという構成にしてみた。 Macにpipenv環境作っ…

pipで機械学習や自然言語処理用のデータをサクッと持ってきたいのでjp-datasetsというパッケージを作った

データをサクッと取ってきて機械学習とか自然言語処理に使えるパッケージが欲しかったので作ってみました。 前回の続き。 pipでGitHub経由でインストール出来る自作パッケージを作る 開発モードでローカルのソースコードをpip installする ネガポジデータを…

pipでGitHub経由でインストール出来る自作パッケージを作る

機械学習や自然言語処理でごにょごにょ試してみるときには、大体の場合データが必要で、どこからか取得してくるか作る必要がある。日本語のデータはあまり多くはなくて、とりあえず試しに動かす程度でいいやってときは自分で適当なデータ作ったりするんだけ…

KerasでSentiment140のネガポジ分類をCNNで解こうとして挫折した

前回、KerasでMNISTの手書き数字をCNNで分類する問題をやってみたので、今度は自然言語処理らへんをKerasで動かしてみたいと思った。 KerasでMNIST分類問題をCNNで解く 同様にKerasのリポジトリのサンプルコードを眺めていたらimdb_snn.pyというのを見つけた…

KerasでMNIST分類問題をCNNで解く

Kerasはあくまでも機械学習フレームワークのインタフェースを簡便なものにするラッパーなので、バックエンドが必要。基本的にはtensor flowを推奨してる模様。 Home - Keras Documentation Kerasのリポジトリ。 GitHub - keras-team/keras: Deep Learning fo…

Google Cloud Vision APIで写真がラーメンかどうかを判定できそうか調べてみた

とりあえず手っ取り早くラーメン画像を識別出来そうか試してみたかった。どうやら画面から画像アップしたらAPIの出力結果が見えるようになっている親切な仕組みがあったので、まずはこれであたりをつける。 Vision API - 画像コンテンツ分析 LabelsよりもWeb…

機械学習の知識なしでカスタムモデルが作れる画像分類API、Google Cloud AutoML Visionでリンゴとイチゴを分類してみる

前回IBM Visual RecognitionとCloud AutoML Visionどっちにしようか検討していたのですが、Cloud AutoML Visionの方を使うことに決定したので、実際に試してみますです。 画像分類API、Google Cloud AutoML VisionとIBM Watson Visual Recognitionを比較して…

画像分類API,Google Cloud AutoML Visionは本当に松坂桃李と佐藤健を分類出来るのか?

前回はGoogleのCloud AutoML Visionを使って、イチゴとリンゴを分類するモデルを構築した(精度は著しくポンコツだったけど)。 機械学習の知識なしでカスタムモデルが作れる画像分類API、Google Cloud AutoML Visionでリンゴとイチゴを分類してみる なぜCloud…

画像分類API、Google Cloud AutoML VisionとIBM Watson Visual Recognitionを比較してみる

新規事業で使いたい技術の調査で、GoogleのCloud AutoML VisionかIBMのVisual Recognitionか、どちらを使うべきか検討中なので、まずは料金の試算をしてみる。 Cloud AutoML Visionの料金について https://cloud.google.com/vision/automl/pricing?hl=ja Vis…

word2vec対人間でコードネーム(ボドゲ)を対戦してみたら大接戦だった

コードネームで遊んでいたある瞬間にあることに気付いてしまった。word2vecを使えば、人間よりも賢く正解を選べるのではないかということに。 コードネームというのは今mofmof inc.で少し流行っているボドゲなんですが、超簡単に説明すると、それぞれ単語が…

強化学習(Q-Learning)で学習させたオセロAIで、MinMaxアルゴリズムと戦わせる

前回4x4のオセロで最強のAIを作ろうとしたらランダムさんごときにボッコボコされたところからの続きです。 強化学習(Q-Learning)でオセロAIを学習させてみた Q学習 vs ナイーブ Q学習 vs ランダム Q学習(バトルモード) vs 竜王ミニマックス おまけ: Q学習(バ…

強化学習(Q-Learning)でオセロAIを学習させてみた

年2回、毎度楽しみにしている「開発合宿友の会」の開発合宿に来ております。やはりコード書くのはこの上ない幸せですね。 というわけで、前回強化学習(Q-Learning)で四目並べを学習させてみたというのをやってうまくいかなかったので、別のゲームで実装し直…

強化学習(Q-Learning)で四目並べを学習させてみた

ちょっとだけ余暇を確保出来たのでずっと前からやりたかった強化学習をやります。強化学習を使って最強のスマブラ64AIを作って、練習相手になってもらいたいなーと思っているのですが、さすがにいきなりそれは難し過ぎるので、簡単なゲームのAIを作ってみま…

PyCallを使ってRubyで機械学習(ロジスティック回帰)を実装する

最近Rebuild.fmで聞いた情報で、RubyからPythonを呼べるライブラリの開発が進んでいるらしいという話を聞いた。 まさにRails側からPythonを呼び出すところのコードがちょっとだるいなーと思っている最中だったので、使わない手はない!ということで試してみ…

TensorFlowのseq2seqで英仏語翻訳のチュートリアルを試す②

前回でTensorFlowのseq2seqのチュートリアルの英語フランス語翻訳を実装してみたのですが、あちらこちらにハマりポイントがあり、未だにうまくいってません。続きを書いていこうと思います! 学習を実行したら以下のようなエラーが出てしまったのでこれの対…

TensorFlowのseq2seqで英仏語翻訳のチュートリアルを試す①

前々回あたりで、tensorflowのseq2seqで対話システムをつくる記事を書いたのだけれど、実はまだあんまり動く動いていなくてあれこれ試行錯誤しているところです。 学習処理はうまく走らせることが出来たし、収束している様子も確認したのですが、肝心の対話…

TensorFlowのseq2seqで対話を学習させる

世の中ディープラーニングということで、対話システムに応用できる?とseq2seqをTensorFlowで実装してみます。英仏翻訳のチュートリアルがありますが、今回は日本語の対話でやりたかったので、下記を参考にとりあえずそのまま動かしてみることにします。 Ten…

TensorFlowのチュートリアルをAWSのGPUインスタンスで動かす

TensorFlowでseq2seqを試してみたりしているのですが、やはりローカルPCのCPUでディープラーニングはつらすぎるということがよくわかったのですが、とりあえずさくっとAWSのGPUインスタンスで対応できないかと思ったので、やってみます。 けっこう色んな人が…

強化学習?でジャンケンの出す手に偏りがあるAさんに高確率で勝つ方法を探す

強化学習に入門したいのですが、入門にちょうどいい難易度の本とか記事とか見当たらなかったんで、簡単そうな問題を考えてそれに強化学習に当てはめて解いてみようと思いました。 あ、Python3.5.2でやってます。 ジャンケンの出す手に偏りがある人に、高確率…

ナイーブベイズをキャッチアップするためにベイズの定理を復習する

最近テキストを解析してごにょごにょする仕事をよくしているのですが、精度は高くないけど、比較的少ないデータ量でもいい感じに振る舞ってくれるナイーブベイズ分類器で実装を試したりしています。 scikit-learnを使っていると特に何も考えずに実装ができて…

IBM Bluemix Watson君で日本語の対話サンプルを試してみる

今週末にチャットbotハッカソンに参加することになったので、IBM Bluemix Watson君の対話APIを試してみます。 こちらのQiita記事を参考にさせていただいた。これ見れば全部わかる。 http://qiita.com/y_some/items/03858ed87aad15ac7998 試してみる 対話定義…

BayesPyのクイックスタートで変分ベイズ法を実装してみる

ベイジアンネットワークというのは複数の要因によって捉えられる事象を確率的にモデル化する手法の一つです。どっかの例でみたのは「風が吹けば桶屋が儲かる」的な事象を複雑な要因を含めて数学的にモデル化出来るわけです。 機械学習での応用としては音声認…

Python + Flaskを使ってHerokuで機械学習させてみようとしたが挫折した

ぼくはRubyエンジニアなのでWEBを書くときはRailsをよく使ってます。最近はPythonで機械学習にハマっているのですが、画面側の実装が必要なとき慣れているRailsを使ってます。 ですが、Pythonをコマンド経由で実行したりしているので、ちょっとWEB側と機械学…

scikit-learnを使ってIrisデータのロジスティック回帰分類を実装する

matplotlibがimportに失敗する問題の対処 ロジスティック回帰の実装 少しだけ解説 scikit-learnでサクッとロジスティック回帰の実装をやってみようと思ったのですが、思いのほかmatplotlibにハマってしまった。エラー対応の履歴がほとんど。 まずは公式ドキ…

scikit-learnを使ってテキストから素性ベクトルを取得する

機械学習をやっていると、実際に何か使えるものをサクっと作りたくなってくるんですが、膨大なデータが必要だったり、実装ボリュームが大きくなりすぎたりするんですが、テキスト解析ならちょうど良いノリで出来そう。 そこで、TwitterのツイートをSVMにかけ…