最近は人工知能や機械学習関連の情報がどんどん出てきて流れを追いかけるのが大変です。
まとめサイトもありますが、すぐにロールアウトしていくので、少し古くなった記事がどこにあったか気になることもあります。
非常によくできたまとめサイトもありましたが、そういうところはアクセスが集中して維持が困難になることが多いようです。
そこで、機械学習関連情報を自動的に収集・分類してローカルに眺めるからくりを作ってみようと構想しました。
現状、いくつかのパートはできているのですが、うまくいかないパートもあり、全体がつながっていません。
以下、つまみ食い的にいくつか紹介しておきます。
❶ 情報の収集
FESS サーバを立てて定期的にクロールして収集します。
現状動かしている FESS サーバは http://hosi.org:8090
このサーバは、
http://www.asahi-net.or.jp/~dd6t-sg/AI-Links.html
を起点にして、深さ 3 でクロールした結果を検索できるようにしています。
❹ 手動分類
クロールして発見したページのショートカットをローカルファイルシステムに手動でドラッグ&ドロップします。
ローカルファイルシステムのフォルダを階層的にしておいて、そのまま分類として用います。
❷ 自動分類
FESS サーバで収集した情報は Elasticsearch で取り出せます。
これに gensim を用いてトピックモデルで教師なし分類しようというのが最初の構想でした。これはうまくいかなかったので別途経緯を整理します(→機械学習関連情報をトピックモデルで分類する)。
次に考えられるのが、手動分類結果を教師データとする教師あり分類です。こちらは手を付けたばかりです(→参考:scikit-learn でランダムフォレストによる多ラベル分類)。
❸ 階層的分類の可視化
ローカルファイルシステムのフォルダに展開された分類結果は Ruby on Rails のサーバで可視化します。
機械学習関連情報の部分でなくて恐縮1ですが http://hosi.org:4000/bookmarks のような記事一覧ツリーになるでしょう。
■ 現状
…ということで、❶情報の収集→❹手動分類→❸階層的分類の可視化2という経路は実現しているので、新聞を読む感覚で記事を毎朝ドラッグ&ドロップして、ローカルに記事一覧ツリーが見えるようにはなっています。
しかし記事数が四千件(→こちら)を超えてくると、さすがに自動化したいですね。
[2017-08-03 追記]
全体のデータフローがかなり変わっていますので https://github.com/suchowan/bookmarks もご覧ください。