2019サイト内の参照・相互リンクの関係を整理したい、と考えている人は多いと思います。いうのも、SEO的にサイト内の相互リンクは重要です。サイト内の記事は、内容が関連する記事間で、相互にリンクを張っており、過去記事もリンクを張ることで、回遊による訪問者が増えることがあります。手動で整理するのはとても大変です。そこで、Pythonのnetworkxを使って、サイト内のリンク関係を可視化するツールを作成しました。networkxを使ってグラフ作成をしたので、初心者(私)がつまづいた用語やライブラリの概要を残しておきたいと思います。最終的に作成したグラフツールのサイトは以下になります。上記ツールの処理概要は以下の通りです。初めに「グラフ」というと、日常生活では、折れ線グラフやヒストグラムに代表される”統計的な”グラフを指すことが多いです。」があり、本記事でのグラフは、ネットワーク図のように「頂点」と「辺」で構成されたグラフを指します。今回のサイト内リンクマップで例えると、サイト内の記事(URL)がノードで、その記事間の参照関係(リンク)がエッジになります。有向グラフ/無向グラフ有向グラフは、辺に向きがある(矢印)もの無向グラフは、辺に向きがない(線)もの今回のサイト内リンクマップでは、記事が参照しているのか/されているのか、も関心があるので、有向グラフを使います。頂点から出ている辺の本数。今回のサイト内リンクマップでは、次数が多いほど、重要な記事といえます。次数の大きさで、記事(ノード)の大きさ、または色の濃さを変えたりします。今回のサイト内リンクマップでは、次数に着目した次数中心性を使います。非常に簡単な構文でネットワークデータをサポートしたテキストファイルの形式です。よって使われています。テキストファイルです。よって使われています。Graphviz人や物のネットワーク、フローチャート、系統樹などに適したグラフ描画ツールです。ライブラリで操作できます。グラフ関連のライブラリnetworkxNetworkXは、複雑なネットワークの構造、ダイナミクス、および機能を作成、操作、および研究するためのPythonパッケージノードとエッジを追加すれば、あとは良しなにグラフデータを用意してくれます。matplotlibPythonでよく利用されるデータ可視化ライブラリです。散布図・ヒストグラム・折れ線グラフなど、色々なグラフを作成できます。pygraphvizDOT言語で記述されたファイルを読み込んでグラフを描画します。matplotlibより気の利いたグラフを作成できるようですが、今回は利用していません。NetworkXについて簡易な利用手順としては、以下の通り。利用イメージ用のソースのためコピペしても動きません。