フリーランチ食べたい

No Free Lunch in ML and Life. Pythonや機械学習のことを書きます。

レコメンドアルゴリズム入門(非個人化推薦/コンテントベースフィルタリング/協調フィルタリング)

現在受講中のCourseraのRecommender Systemsコースの中で自社のサービスなどにレコメンド機能の導入を検討している方に有用だと思われる情報があったのでまとめてみました!

「レコメンドアルゴリズムって協調フィルタリングのこと?」というくらいの知識の方にオススメです。

続きを読む

【Chrome Extension】簡単にURLとタイトルをコピーできる「simple-url-copy」作りました

今閲覧しているURLとタイトルを簡単にコピーできるChrome Extensionを公開しました。

https://github.com/ikedaosushi/simple-url-copy/raw/master/assets/how_to_use.gif

ダウンロードはこちらから↓

chrome.google.com

このブログでは、なぜこのChrome Extensionを作ったのか、どういう機能があるのかを簡単に紹介したいと思います。

実は同機能を持つ色々なChrome Extensionを試していたのですが、どうしても自分の欲しい機能を満たすものが見つからず、自分で作ってしまいました。 1ヶ月使ってみてかなり便利に使えているので紹介させてもらおうと思いました。

続きを読む

【Python】Pipfile.lockを活用したDockerとpipenvでの安全な環境構築

Dockerとpipenvを使った環境構築についての記事はいくつか読んだのですが、PIpfile.lockを更新する運用について書かれている記事が少ない(見つけられなかった)ため、書いておきます。

f:id:ikedaosushi:20190203220109p:plain

TL;DR

  • Dockerfile内では pipenv install --system --ignore-pipfile --deploy を使う。
  • Pipfile.lockは更新用にコンテナを作って、その中で更新し docker cp でホスト側に戻す。
  • pipenv install は現状時間がかかるので軽く使ってみたいときは pip install で試す。
  • あくまで自分が考えついたプラクティスなので「もっといい方法があるよ」「ウチではこうしてるよ」という意見があれば是非コメントくださいmm
続きを読む

【Selenium】 UnexpectedAlertPresentExceptionが出るケースとその対応

Seleniumで思わぬエラーが発生したのでメモとして残しておきます。

TL;DR

  • UnexpectedAlertPresentExceptionはalertに処理がブロックされているときに起きます。
  • seleniumのalertオブジェクトを操作することで解消します。

こんなケースで発生

自分の場合では、JSのコードを実行する処理でこのエラーが発生しました。

driver.get(url)
js = "console.log('hello');"
driver.execute_script(js)
# => UnexpectedAlertPresentException Error!
続きを読む