SlideShare a Scribd company logo
ミニGunosyを
作るには
ANYGMA:1st
ミニGunosyを作ろう
高橋誠二
名前:高橋誠二
学歴:慶應経済4年
職種:エンジニア勤務3年
ライブラリ2つ自作して起業家に
関するデータ分析の卒論書いた。
Digital Founders Japan選抜。
7社インターン、新規開発・運用部
100名規模の人事評価制度設計。
エンジニアの海外コミュニティーサイト
Casualyze.com運営経験。
Techlabpaakプロジェクト会員
Gunosyっぽいやつできた←New
twitter: @timadayon
github: timakin
ANYGMAとは
ビジネスとテクノロジーの両面
において、スキルを持った
エンジニア集団
自分のプロダクトを個々が持ち、
水面下ではなく表に出て
ハッカーとして活動する団体
創設の思い
エンジニアって結局
ビジネスサイドの奴隷みたいに
なってる
自分でプロダクトを
作れる力を持って、
ハッカーが世の中を主導していく
足がかりを作ろう。
• データマイニングとは
• ミニGunosyのつくりかた
• 今回問題になった点
• 機械学習プロダクトのつくりかた
目次
データマイニングとは
雑多なデータ群から
有益な情報を引き出すこと
機械学習そのものとデータマイニングは
必ずしも一致しない。
今回の事例
機械学習で大事なことをミニGunosyをつくって学んだ╭( ・ㅂ・)و ̑̑ 
生の記事タイトルから
202URL 8
28Ubuntu 18
364Unity10
134Vagrant 6
13View 3
158Vim7
517VirtualBox 3
名詞を抽出
言語ベクトル変換
要は生のターゲット情報を
加工して、解析可能な形にする
ってこと。
これを元に解釈を加えるのが
データマイニングと
機械学習の垣根
研究活動とかだと
データマイニングよくやる
(やらない学科は死ぬ)
具体名
テキスト解析
画像認識
音声認識
数値解析
クラスタリング
フィルタリング
特徴抽出
Deep Learning
Neural Net
KNN
SVM
Bayes Analysis
Deep Learning
Neural Net
KNN
SVM
Bayes Analysis
すごい
作ったほう
がはやいん
じゃ?
ミニGunosyのつくりかた
そもそもなんでそれ作った
Gunosyの
福島さんって凄いこと
やってるっぽいけど、
ほんとにすげぇのか?
ライブラリ使うだけだぜ?
機械学習Yo
よゆーでいけるわー:D
なんかQiitaの情報って
RSSでも流れてこないから
手軽に手に入れたいわー
よゆーでいけるわー:D
よゆーじゃない:D
工程
RubyでAPI接続と生データ抽出、形態素
解析で単語分割、名詞のみ抽出、テキス
ト書き出し。Pythonでテキストから意味
ある名詞とその意味の重要さ、登場頻度
を考慮した特徴語抽出、特殊語の不要な
ものをさらにクリーニング、CSVに書き
出し、特徴語を言語ベクトルに変換、言
語ベクトルの次元圧縮、クラスタリング、
予測モデルのトレーニング、結果のチュー
・生データ抽出
・名詞のみ抽出テキスト書き出し。
・意味の重要さ、登場頻度を考慮
・邪魔な単語を除外
・互いの単語の関係を座標で表現
・トピックごとにまとめる
・予測モデルのトレーニング
・結果を良くする
・クライアントツール化
・生データ抽出
・名詞のみ抽出テキスト書き出し。
・意味の重要さ、登場頻度を考慮
・邪魔な単語を除外
・互いの単語の関係を座標で表現
・トピックごとにまとめる
・予測モデルのトレーニング
・結果を良くする
・クライアントツール化
ところで
・生データ抽出
・名詞のみ抽出テキスト書き出し。
・意味の重要さ、登場頻度を考慮
・邪魔な単語を除外
・互いの単語の関係を座標で表現
・トピックごとにまとめる
・予測モデルのトレーニング
・結果を良くする
・クライアントツール化
本来やらんでいいとこ
・生データ抽出
・名詞のみ抽出テキスト書き出し。
・意味の重要さ、登場頻度を考慮
・邪魔な単語を除外
・互いの単語の関係を座標で表現
・トピックごとにまとめる
・予測モデルのトレーニング
・結果を良くする
・クライアントツール化
Qunosy
Personal Gunosy for Qiita With machine
learning, corpus clustering, recommend you
the latest code that match your interest.
Qunosy adopt random forest
as clustering method.
https://github.com/timakin/qunosy
製作期間
1週間
╭( ・ㅂ・)‫و‬ ̑̑
使った言語
Python
Ruby
Go
Shell
Python
Ruby
Go
Shell
Golang
話題なのにWeb周辺で使わない
ので、今回ちょっと触った。
コマンド
ツール化
デモ
今回問題になった点
文字列処理
MeCab
Natto
言語選択
最初から
1つか2つ
がいい。
あくまでプロトタイプ作るなら、
言語増えるはずはない。
今回はたまたまコマンドライン
ツール化したから増えた。
調べごと
ぜんぶ専門的な英語
機械学習プロダクトのつくりかた
1. やりたいことを決める
2. 分析に必要なデータを調べる
3. 分析手法を決める
4. 手法にあったデータを抽出する
5. 適切な形にデータを加工する
6. (訓練データを作って学習)
7. 表示形式を整える
1. やりたいことを決める
2. 分析に必要なデータを調べる
3. 分析手法を決める
4. 手法にあったデータを抽出する
5. 適切な形にデータを加工する
6. (訓練データを作って学習)
7. 表示形式を整える
・オープンデータ
・クローリング
・DeveloperAPI
1. やりたいことを決める
2. 分析に必要なデータを調べる
3. 分析手法を決める
4. 手法にあったデータを抽出する
5. 適切な形にデータを加工する
6. (訓練データを作って学習)
7. 表示形式を整える
・分類が必要か?
・重み付けするか?
・予測するか?
1. やりたいことを決める
2. 分析に必要なデータを調べる
3. 分析手法を決める
4. 手法にあったデータを抽出する
5. 適切な形にデータを加工する
6. (訓練データを作って学習)
7. 表示形式を整える
・文字コード
・数値の単位
・欠損データ
1. やりたいことを決める
2. 分析に必要なデータを調べる
3. 分析手法を決める
4. 手法にあったデータを抽出する
5. 適切な形にデータを加工する
6. (訓練データを作って学習)
7. 表示形式を整える
機械を訓練するデータを
自分で作る必要があるのが、
教師あり学習
適切な手順を踏んで、
手法を調査していけば、
だいたい先人の知恵でうまくいく。
おつ :)

More Related Content

機械学習で大事なことをミニGunosyをつくって学んだ╭( ・ㅂ・)و ̑̑