いっきのblog

技術とか色々

2018-01-01から1年間の記事一覧

Laravel ShiftでLaravelを簡単アップグレード!

Laravel #2 Advent Calendar 2018の11日目です! 今回は、Laravelのアップデートのやり方について書きたいと思います。 バージョンをあげる時の課題 僕らのチームは元々Laravelのバージョンを5.5を使っていて、そろそろあげたいよねって話をしてました。 た…

Genderize.ioを使って性別判定してみる

以前、顔写真を使って性別判定についての検証をした。 顔写真による性別判定はそこそこ判定が高くすごく満足しているのだが、顔がない場合の判定はどうすればいいんだろうと思い、ちょい調べてみた。 kzkohashi.hatenablog.com 名前による判定 Genderize.io…

DataFrameで特定カラムでユニークに集計する方法

DataFrameで特定カラムでユニークに集計する方法についてのメモ。 利用するデータ 今回利用するデータは、一つのアカウントに対して、複数の本のタイトルが紐づいてるデータとする。 df[['account_id', 'title']] 本のタイトルがいくつ紐づいてるか集計する…

Python(pandas)でざっくりデータを確認する方法

原さんのブログ読んでいたら、データの傾向を見る方法について簡単に書かれていたので真似したみた。 toohsk.hateblo.jp 結論から言うと、確かに傾向を見るのはすごく楽だし、癖にしたい。 要約統計量の確認 実はブログを見る以前に、「ヒストグラム」と「要…

Scrapy + Selenium + Headless Chromeを使ってJupyterからスクレイピングする

以前Scrapyを利用してみたが、Jupyterで使えないのか調べて見たのと、ついでにHeadlessブラウザでスクレイピングできないかも調べてみた。 kzkohashi.hatenablog.com Selenium + ChromeDriverのインストール Seleniumはいつものpipでインストールする。 pip …

Scrapyのスクレピングが簡単すぎて今更感動した話

僕はPHPでスクレイピングする時はGoutteを使っていた。 github.com サッやりたい時とかは便利だったりするが、robots.txtの中身だったりの確認やページング処理については自分で実装が必要なため手間だなと思っていた。 ふと最近Pythonをよく使ってるし、ス…

Think Stats(第2版)を読む:5章 分布をモデル化する

前回に続いて統計の勉強。 kzkohashi.hatenablog.com 今まで扱った分布は経験分布(empirical distributions)と呼ばれているもので、すべて実際の観察に基づいた分布だったからとのこと。 そうなると、標本サイズはデータサイズが限界となり、有限となる。 ま…

Laravelで特定のページに特定のユーザー以外が入ってきたら404を返す

管理画面を作っていると、一般ユーザーにはアクセスされたくないページが出てくる。 セキュリティを考えるとIP制限などが理想だったりするが、Laravelで簡単に解決したい場合があるので今回はそちらのやり方でやってみる。 カラムの追加とミドルウェアの準備…

Think Stats(第2版)を読む:4章 累積分布関数

前回に引き続き統計のお勉強。 kzkohashi.hatenablog.com PMFの限界 前回、PMF(確率質量関数)を用いて、一人めの子供の妊娠周期(濃い青)と二人め以降の子供の妊娠期間(水色)を確率にして棒グラフで表示した。 このように、PMFは値の個数が少ない時(ここでい…

TF-IDFとコサイン類似度を使って似ている文章を見つける

今回は、以前実装したTF-IDFの処理をベースに、自分のブログに一番近いWikipediaの文章は何かをコサイン類似度を使って出してみる。 kzkohashi.hatenablog.com コサイン類似度とは? 高校の数学でやったようなやってないようなうる覚えな感じだったので、他…

形態素解析ツールについてのまとめのまとめ

以前、形態素解析を行う際にMeCabをインストールした。 kzkohashi.hatenablog.com 恥ずかしながら、僕は日本語の形態素解析 = MeCabと思っていたが、実は他にも結構あったのでメモがてらまとめてみる(随時)。 正直、僕の知識ではほとんどまとめられなかっ…

Jupyter Labをもっと快適にするためにvim Extensionを追加する

以前Jupyter Labを導入してから使い続けている。 kzkohashi.hatenablog.com ただ、僕はエセvimmerなので若干使いにくいなーと思っていたところ、Jupyter Labには様々なExtention(拡張機能)を追加できるというのを知った。 ちなみにJupyterからこの機能はあっ…

TF-IDFを自力実装してみる

前回ライブラリーを使って実装しようとして断念した「TF-IDF」について自力で実装したいと思う。 kzkohashi.hatenablog.com ちなみに上記の記事は、TF値の出し方が間違ってて理解不足だった・・。 一度実装するとしないでは理解度が変わるという教訓。。いや…

word2vecの理論ついてざっくり理解しつつ試してみる

4、5年前くらいに自然言語処理コミュニティで流行ったword2vecというものがある。 「同じ文章にある単語同士は近しい」という仮定のもと、様々な文章を計算することによって100〜200次元(調整次第)の空間に各単語を「ベクトル」で表せるというもの…

Think Stats(第2版)を読む:3章 確率質量関数

前回の続き。(100日ぶり) kzkohashi.hatenablog.com 3章:確率質量関数 PMF 確率質量関数のことは英語でPMF(probability mass function)という。 各値ごとに確率が計算され、紐づけられている状態。高校の頃、あるサイコロの目がどの確率でるか・・とやっ…

Jupyter Notebookの後継?Jupyter Labをつかってみた

自然言語の処理をする際に、JupyterNotebookと言われるノートブック形式のWebツールを使っている。 jupyter.org 以下のようにPythonのコードを書きながらメモもとれ分析の実行結果(勿論グラフも)もみれるというすぐれものだ。このツールが最初に出たかはわ…

TF-IDFの理論をざっくり理解する①

最近、自社のプロダクトで自然言語処理がよく使われるようになってきたので、勉強も兼ねてまとめてみる。 TF-IDFとは? tf-idfは、文書中に含まれる単語の重要度を評価する手法の1つであり、主に情報検索やトピック分析などの分野で用いられている。 tf-idf…

Wikipediaからコーパスを作る

前回、文章を単語分割するためにMeCabをインストースルしたが、大元となるデータ(コーパス)も欲しい。Wikipediaでは全文データをダウンロードすることができるので、それを利用する方法について書いていきたいと思う。 kzkohashi.hatenablog.com コーパス…

文章の単語分割を行うためにMeCabをインストールする

日本語の自然言語処理をやっていく上で、よく使われているであろうMeCabのインストールを行う。 そもそも前処理はなんぞやというと、いい例があったので引用させていただく。 引用:自然言語処理における前処理の種類とその威力 初心者の自分にとってはこんな…

ブログが滞っていたことについての反省と2018年半期の振り返り

僕がブログを始めた理由は、去年の9月ごろカック(カカカック)氏と渋谷のゴールドラッシュでハンバーグを食べなら相談したところから始まる。 これがカック(カカカック)氏だ。 twitter.com 当時はまだ社員4人で、エンジニア一人というなかなか刺激的な会…

「フォロワーがどの雑誌に興味があるのか可視化してみる 」について発表した

昨日は「統計やらNight!!データマイニングMeet up #2」に参加して、発表してきた。 ウィルゲートさんの会場もとてもよく、雰囲気も懇親会の時間が多めなのもとてもよかった。 data-konekone.connpass.com 他の方々の発表はまだあげれないみたいなので、上げ…

Think Stats(第2版)を読む:2章

前回の続き。 kzkohashi.hatenablog.com 2章: ヒストグラム 分析する上で、データ全体の傾向だったり、方針を決める際には必ずと言ってやると思われるデータの可視化。その中で、データの分布をみるためのヒストグラムについて書かれた章。 ヒストグラムの表…

Laravelでメール送信する際にSendGridを使う

自社のサービス(Laravel)では、メールを送信する際にはSMTPの仕組みを利用している。 グーグルのメールアドレスなどもっていればLaravelのデフォルトの機能でサクッと作れるのだが、送信する際に毎回認証を挟んでいるので、処理に時間がかかったり、大量に捌…

LaravelにSentryを導入してアプリのエラー監視を楽にする

サーバーの監視をするためにMackerelを導入をして1ヶ月くらいたった。時折なるアラートになんだか嬉しさを感じつつ(ダメだけど)、そろそろアプリのエラー監視もしっかりやらないとと思ってSentryを導入した話。 kzkohashi.hatenablog.com Sentryとは? オ…

Think Stats(第2版)を読む:1章

最近、統計処理について詳しくなろうと考えていたところThink Stasをオススメされたので、メモがてら勉強した事を書いていこうと思う。(今回は1章のみ内容) Think Stats 第2版 ―プログラマのための統計入門 | Allen B. Downey, 黒川 利明, 黒川 洋 |本 | 通…

リモートワークのMTGでペンタブ + RealtimeBoardを使ったら捗った

最近、実験的に週1~2でリモートワーク開発を行なっている。 その中で、どうしてもMTGの質がなかなか上げれずにいたけどかなり改善したので書こうと思う。 そもそもの課題 ビデオチャットでただ話すだけの会議については問題なかったけど、アーキテクチャの話…

React + GoogleAnayticsでページトラッキングする

React+ GoogleAanayticsでトラッキングをするにはライブラリがあるのでそれを使う。 github.com スター数も1000超えてるし、React + GAでなら一番人気かと思う。 インストールする際のバージョンに注意 react-gaには2.3.4において、初回のイベント以外は送信…

LaravelでJSON Web Tokenを使った認証方法

Laravel + Reactでサービスを構築した場合に、APIによる認証方法としてJSON Web Token(JWT)を使った例を紹介しようと思う。 JSON Web Tokenとは? ネットわかりやすく書いてあったので引用させていただくと JWT(ジョット)とは JSON Web Token の略で、電子…

Mackerel サーバ監視[実践]入門を読んで、監視の第一歩目を始めた話

はじめに うちのサービスは1月の後半に正式リリースをして約2ヶ月。 スピード重視という言い訳をしつつ、監視をあまりやってこなかったのでここらへんでMackerelを使って監視していきたいと思う。 Mackerel サーバ監視[実践]入門 ↓ 監視ちゃんと取り込むきっ…

PHPerKaigi 2018に行ってきたけどすごく良いイベントだった!

どうも、くずき(@kzkohashi)です。 2018年 3月9日(金)〜3月10日(土)に開催されたPHPerたちのイベントにいってまいりました。 phperkaigi.jp 土曜日のほうしか参加できなかったけど、すごくよかった。 参加したセッションの内容だけメモります。 今からで…