IT

HITS algorithmをnetworkxではなく自前で実装した話[Python]

shimasan0x00

こんにちは,しまさん(@shimasan0x00)です.

HITS(Hyperlink-Induced Topic Search)を研究で少し使ってみようかなって思って色々調べたのですが日本語文献はあるにはあるのですが如何せん古い(提案された時期が1990年代なのでそれはそう)….

結局英語論文読んだり,本を読んで勉強しました.

せっかく勉強したのでPythonで実装しようかなと思ったらnetwork xですでにhits関数が実装されていました.

ですがreturnされるのは辞書形式だし今後weighted HITSみたいな拡張を考えるなら自分で実装するか!と思って今回実装をしました.

GitHubの方には学習の足跡も残しているので今から勉強される方の参考になればと思います.

スポンサーリンク

環境

  • Python 3.7.3
    • matplotlib 3.1.0
    • numpy 1.16.4
    • pandas 0.24.2
    • networkx 2.3
    • pprint 0.1

GitHubのリンク

Note

現状思っていること

精度はnetworkxのhits関数と十分近似できてるのでよかったです.

現在は隣接行列を,作成した関数に投げればndarray形式で返すようになっているのですが形式をもう少しバリエーション増やしたいなと思ってます(あとdocstringとかもろもろ整備します).

後は投げる前の隣接行列作成をnetworkxで作っているのでnetworkxを使わずに実装!!!を掲げるのであれば隣接行列作成の関数も作ったほうが勉強になるのかなと.

スポンサーリンク
ABOUT ME
shimasan0x00
shimasan0x00
Data Engineer
高専→大学編入→大学院→データエンジニア

専攻は計算社会科学,ウェブマイニング
趣味でSNSやVTuberのデータ集めたり分析しながら生活している
スポンサーリンク
記事URLをコピーしました