Python

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

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

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
しまさん
てくてくぷれいす運営者のしまさんです. 高専→大学編入してから行動的な大学生  自身の変化を求めてブログを始める グレープフルーツと本が大好物 IT系のことやブログ,高専や編入,大学生活に関することを発信中!!詳しいプロフィールはこちら≫ 投げ銭はコチラへ YouTubeはコチラへ 質問はコチラ