Marten Düring

ネットワークの可視化は、人文系の研究者がテキスト史料に隠された複雑なパターンや構造を明らかにするのに役立ちます。このチュートリアルでは、質的データ分析(QDA)や社会ネットワーク分析(SNA)で開発された非技術的な手法で、史料からネットワークデータ(人、機関、場所など)を抽出する方法と、特定のプラットフォームに依存せず、特に使い方が簡単なPalladioを使って、そのデータを可視化する方法を説明します。

目次

はじめに

 ネットワークの可視化は、人文系研究者がテキスト史料に隠された複雑なパターンや構造を明らかにするのに役立ちます。このチュートリアルでは、質的データ分析(QDA)や社会ネットワーク分析(SNA)で開発された技術的な手法ではない方法で、史料からネットワークデータ(人、機関、場所など)を抽出する方法と、プラットフォームより独立しており特に使い方が簡単なPalladio [訳注:Palladioのリンク切れを修正しています] を使ってそのデータを可視化する方法を説明します。

図1: Palladioによるネットワークの可視化例。本チュートリアルの終わりには作成できるようになります。

 上のグラフは、ラルフ・ノイマンの1943年から1945年にかけてのベルリンでの潜行生活中に、彼と姉を助けた人々とのつながりを表したネットワークの一部を示しています。このグラフを少し修正して、次のような問いを投げかけることができます – 誰がどのように助けたのか?誰がいつ助けたのか?誰と誰がつながっているのか?

 一般的に、ネットワーク分析は、エンティティ間の高度に複雑な関係性の布置を探索するためのツールを提供してくれます。あなたの友人のことを考えてみてください。誰が仲が良く、誰があまり仲が良くないか、マッピングするのは非常に簡単です。ここで、あなたの友人を1人も知らない人に、これらの様々な関係性を説明しなくてはいけない状況を想像してみてください。あるいは、あなたの友人の友人たちの間における関係性も含めて説明したいとしましょう。このような状況では、言葉や社会構造を理解する私たちの能力はすぐに限界に達してしまうでしょう。グラフによる可視化は、このような複雑な布置を効果的に伝え探索するための手段となり得るのです。一般的に、 社会ネットワーク分析は複雑性を問題から研究対象へと変換する手段として考えることができます。多くの場合、ネットワークにおけるノードは、考えられるあらゆる種類の社会的関係性によって他の人間と繋がっている人間を表しています。ただし、映画であったり、場所や役職名、ある特定の時点、会場など、ほぼ何でもノードとして捉えることができます。同様に、ノード間の結びつき(エッジとも呼ばれます)の概念も柔軟なものです。例えば、2つの映画館が、両方で共通して上映している映画であったり、地理的な近さ、または同じ年に開業といった理由で繋がっていることが考えられます。これらは全てあなたの研究関心と、それをネットワークにおいてどのようにノードと関係性という形で表現するかによります。

 本チュートリアルは、John Scott著Social Network Analysisなど、これまでの数々の一般的なネットワーク分析のハンドブックに取って代わるものではありません。この分野への優れた一般的な総論や人文系研究者が陥りやすい罠については、Scott Weingart氏のブログシリーズ「Networks Demystified」Claire Lemercier氏の論文「Formal network methods in history: why and how?」を当たることをお勧めします。歴史家がそれぞれの研究においてネットワークをどのように活用しているのかといった感覚を掴むためには、Historical Network Researchの文献やイベントカレンダーを探ってみると良いでしょう。

 本チュートリアルでは非構造文からのデータ抽出に焦点を当て、それを可視化する1つの方法としてPalladioの使い方を紹介します。できるだけシンプルで安定したものとなるよう意図して作成しました。このチュートリアルの限られた範囲では、アクターとは、研究の対象であり、関係性によって接続されている個人、機関などを指していると言えば十分でしょう。ネットワーク可視化や計算(グラフとも言います)の文脈では、これらをノードと呼び、結びつきを紐帯と呼んでいます。全てのケースにおいて、ノードと紐帯は、過去の出来事の複雑さを表現するために使用される大幅に単純化されたモデルであり、それ自体が必ずしも洞察を生み出すのに十分ではないことを覚えておくことが重要です。しかし、グラフは興味深い側面を強調たりし、仮説に挑戦したり、新たな仮説へと導いてくれます。ネットワーク図は、データやその他の情報源との対話の一部となったときに、意味のあるものとなります。

 社会科学分野での数々のネットワーク分析プロジェクトは、既に存在しているデータソースやネットワーク分析そのものを目的として作成されたデータに依存しています。例えば、誰と誰がどのように繋がっているのかを比較的簡単に特定できる、Eメールのログやアンケート、取引関係などが挙げられます。非構造化テキストからネットワークデータを抽出することの方が各段に難しいのです。そのため、解釈学としての複雑さと正当なデータ分析の厳密さをどうにかして両立させねばなりません。「友人」という言葉がいい例でしょう。その言葉は、文脈によっては友人とは侮辱から愛情表現まで様々な意味合いを持ちえます。文脈の知識やテキストの分析は、それがどのような場合に何を意味するのかを特定するのに役立ちます。正式なカテゴリの体系は、目的に応じて必要な限り詳細に異なる意味を表現しているはずです。

 言い換えると、問題はテキストの解釈の体系化なのです。既存のデータセットから生成したネットワークは、それらが生成された文脈の中で検討する必要があります(例えば、アンケートの質問の文面と選定されたターゲットグループなど)。非構造化テキストから生成したネットワークは、解釈がかなり属人的になり、視点や文脈に関する知識に左右されてしまうという、さらに別の課題も突き付けてきます。

本ケーススタディについて

 このチュートリアルで使用するケーススタディは、ホロコーストを生き延びたユダヤ人のラルフ・ノイマンの私語りです。テキストはオンラインで手に入ります。以下に紹介するコード体系は、第二次世界大戦中の秘密支援ネットワークを扱った筆者の博士課程での研究プロジェクトの時に開発したものを簡略化したものです。私の研究は、次の3つの問いに基づいていました。すなわち、普通の人がリスクを負いながらも支援を行ったことを、社会的な関係はどの程度説明できるのか?利用可能な資源が非常に限られている中で、そのような関係性は、どのようにして人々が支援行為を行うことを可能にしたのか?社会的関係はユダヤ人が潜行生活を生き延びるのをどのように助けたのか?

 このプロジェクトでは、ネットワークの可視化によって、これまで忘れられていたが非常に重要な仲介人を発見し、ユダヤ人難民の仲介人としての全体的な意義を強調し、1942年から1945年にかけて約1,400人もの人々を結び付けた合計5,000件ほどの支援行為を探索するのに役に立ちました。

コード体系の開発

 ネットワークの関係性を可視化する際に、最初にして最も困難な課題の一つは、誰をネットワークの一部にするべきか、そして選択したアクター間のどの関係性をコード化するべきかを決定することです。これを把握するのには時間がかかるでしょうし、研究関心や仮説と、テキスト史料の情報の利用可能性とのバランスを取る必要があるため、反復的なプロセスになる可能性が高いでしょう。

 この過程での主な問いは次のようなものです: 二人の行為者間のどの面が関係しているのか?誰がネットワークの一部なのか?誰がそうではないのか?どの属性が重要なのか?見出そうとしているものは何か?

これらの問いに対して、以下の答えを見つけました:

二人のアクター(行為者)間の関係を定義するのは何でしょうか?

 潜伏中の迫害者の生存に直接貢献した全行為です。これには、例えばユダヤ人以外の共産主義者が含まれますが、難民を非難しないことを選択した傍観者や行為者間の単なる知り合いは除外しています(史料内で十分な記述がないため)。行為者は、難民としての立場に関わらず、援助者(Giver)か受援者(Recipient)としてコード化しました。このような曖昧さや疑念に対処するためのシンプルで確かな方法は、現時点では存在しません。そのため、私は検証可能なデータのみを収集することにしました。

誰がネットワークの一部で、誰がそうではないのでしょうか?

 援助者として記述がある者、援助活動に関わった者、援助を阻止しようとする活動に関わった者全員です。実際、援助活動の中には、私のケーススタディとは無関係なものもありましたが、他のケースでは、このアプローチによって、これまで予想もしていなかったネットワーク間の相互接続が明らかになったこともありました。

どのような種類の関係を調べるべきでしょうか?

 大きく次のように分類されます。援助の形式、関係の強さ、援助の期間、援助の日時、初対面の日時(いずれも6ヵ月単位でコード化)。

属性として妥当なものは何でしょうか?

 主に国家社会主義ドイツ労働者党によって法制化された人種ステータスです。

目的は何でしょうか?

 誰が誰をどのように助けているのかについて理解を深め、ネットワーク理論に対応するデータのなかのパターンの発見です。史料と可視化したデータの間での非常に生産的な相互作用のおかげで、これで続けることにしました。

ここで、一般的にコード体系は、史料がもつすべての機微や両義性における完全な複雑さを表現することができないことに注意してください。コード体系の目的は、あなたが関心を持っている関係性のモデルを構築することです。そのため、関係性の種類や属性は、テキストに含まれている複雑性を抽象化し分類したものなのです。これはまた、多くの場合、ネットワークデータや可視化は、元の文脈と改めて組み合わせることで初めて理解できるようになることを意味しており、この場合は筆者が抽出した一次史料がこれに当たります。

 テキストの解釈をデータのつながりへと翻訳することは、社会学的な質的データ分析にその起源があります。あなたや他の人が、各ステップをたどって、どのように関係を定義しているのかを理解することが重要です。それらを抽象的に定義して、あなたの選択をさらに説明するために、史料から例を提供することは非常に有用です。あなたが作成したデータは、あなたのコーディングの実践と同じくらい明確で首尾一貫したものでなければなりません。コード体系を作成するという反復的な過程を通じ、そしてそれが適合するまで、様々な史料に対してコード体系を試してみることで、明確さと首尾一貫性が増していきます。

図2:コード体系作成の最初の試み

 図2では、筆者がプロジェクトで使ったコード体系のサンプルデータを示しています。ここでは、AliceがPaulを助けています。これをアクター「Alice」と「Paul」の間の関係性で示しており、それらは「Form of Help」というカテゴリーの関係性を共有していると言えます。このカテゴリー内で、2人の関係性をさらに記述しているサブカテゴリー「4. Food, Commodities」ということになります。

 主要なネットワーク可視化ツールは、どれもこのようにネットワークが有向であるか無向であるかを指定できるようになっています。有向ネットワークにおける関係性はあるアクターから別のアクターへのやり取りを記述しており、この場合は「援助」になります。慣例的に、能動的なノードをデータセット内では先に記述しています(ここではAlice)。有向ネットワークの可視化では、あるアクターから別のアクターへと向かう矢印があります。関係性は、例えばAliceがBobを助けBobもまたAliceを助けるといった相互的な関係であることもありえます。

 しかし、多くの場合、方向性を扱うことは意味がありません。例えば、アクターとなる二人が単に同じ組織に所属している場合などがそうです。その場合は、ネットワークは無向であるべきで、アクターの二人の間を単に線で表すだけです。

 私は、アクターがどれくらい頻繁に援助し、また、援助を受けていたのかということを知りたいと思いました。特にユダヤ人たちの同士の援助の程度に関心を持っており、そのため、有向ネットワークのアプローチや、「援助者」と「受援者」と言った役割の方が理にかなっていたのです。コード体系の3つ目のカラムは任意のもので、AliceとPaulの間の関係性をさらに詳しく記述しています。カテゴリーとして「Form of Help」を選んでいますが、これは行われていた支援の一般的なやり方を反映しています。

 カテゴリーとサブカテゴリーは、さまざまなタイプのテキストとさまざまなタイプの支援ネットワークをコーディングする長いプロセスの中で生まれました。このプロセスの中で、例えば、支援に関連した情報の提供など、関連する支援の形態がほとんど記述されておらず、したがって追跡可能ではないことがわかりました。最初のうちは頻繁にコーディング・スキームを変更しなければならず、データがソースや関心事に一貫して対応するまで、何度かコーディングをやり直す必要があります。

 今のところ、カテゴリー「Form of Help」の「4. Food, Commodities」に対応する値である4が示している通り、コード体系はAliceが食料やその他の日用品をPaulに提供した情報を伝えています。しかし、人間関係はこれよりもはるかに複雑なもので、さまざまな関係の層が常に変化しつづけるのが特徴です。ある程度、多重関係を集めることで、この複雑さを表現できます。このサンプル文を見てください。「In September 1944 Paul stayed at his friend Alice’s place; they had met around Easter the year before(訳: 1944年9月にPaulは友人Aliceの家に滞在しました。二人は前年のイースターの頃に出会ったのです。)」

図3: サンプル文の表現

 図3のコード体系では、援助者と受援者の関係性をより細かく記述しています。例えば、「Relation」はアクターの二者がどれだけお互いを知っているのかといった程度で大別し、「Duration」はどれだけ援助が続いたかを示して、「Date of Activity」は援助がいつ始まったのか、「Date of first Meeting」は文字通り二人が出会った日付を指します。ここで、「99」の値は「不明」を表すもので、サンプル文においてAliceとPaulの関係性の強度についてより詳しい記述がなかったために用いています。この体系は、援助行為を集めることだけに集中しており、(筆者の史料では記述されていなかった)人々の間の関係の展開までを捉えようとはしていない点に注意してください。このようなはっきりした選択が、分析においてデータの価値を決定づけます。

 また、ネットワーク内のアクターに関する情報を集めることも可能です。いわゆる属性データは、ほぼ同じフォーマットを用いています。図4では、AliceとPaulのサンプルデータを示しています。

図4: 属性データのサンプル

 ここでコード体系に登録されている情報を読むと、AliceがPaulに泊まる場所を提供していますが(「Form of Help」:4)、2人がどれだけ親密であったかはわからず(「Relation」:99)、またどれだけ滞在したかも明らかになっていません(「Duration」:99)。しかし、これは1944年後半に起きたことで(「Date of Activity」: 14)、出会ったのは1943年の前半であった(「Date of first Meeting」: 11)ことは分かっています。最初に出会った日は「前年のイースターの頃」という言葉から推測できますもし怪しいと思ったら、「不明」を表す「99」を入力することもできます。

 しかし、もしAliceが滞在中のPaulに対して心の支え(「Form of Help」の別のサブカテゴリー)も提供していたとしたらどうでしょう?これを確認するために、1行目に宿泊設備の提供を記述する行を、そして、心の支えの提供を記述する行として2行目も用意しました。全てのネットワーク可視化ツールが並列関係を表現できるわけではなく、それを表現できないツールは発生した2行目の援助行為を無視するか、あるいは、2つの関係性を統合しようとしてしまいます。NodeXLとPalladioは両方ともこのような状況を扱うことができ、今後リリースされる予定のGephiの新バージョンでも対応することが噂されています。この問題に直面し、上記2つのツールがどちらとも使えない場合は、リレーショナルデータベースを作り、各可視化に対してそれぞれ専用のクエリを使うことをお勧めします。

 このようなコード体系を設計するプロセスによって、仮定や興味関心、自由に利用できる史料について明示的になることを余儀なくされます。これはデータ分析を超えて価値あることなのです。テキストからネットワークデータを抽出することによるもう1つの副次的効果が、史料をよく知ることが出来るという点です。「AさんがBさん、Cさん、DさんとX型の関係性によってY時点で繋がりました」といったような文は滅多にないでしょう。その代わり、誰が誰とどのように繋がっているかを明らかにするためには、史料の精読と深い文脈での知識、そして解釈が求められます。このような形でデータをコーディングすることは、多くの疑問を投げかけることになり、「伝統的な」方法で作業を進めた場合よりも、より深く、より厳密に史料を調査することが求められます。

Palladioでネットワークデータを可視化する

 コード体系を作成し情報源をコーディングしたら、ネットワーク関係を可視化する準備が整ったことになります。まず全てのセルが何らかの結びつきの種類を表す番号か、もしくは「不明」を表す「99」で埋まっているかどうかを確認してください。ファイルのコピーを「名前を付けて保存」(Save as..)で作成し、シートが図5のようになるように、異なるカテゴリーのコードを削除してください。

図5: 可視化や計算用にエクスポートする準備が整った属性データのサンプル

 どの表計算エディタも、テーブルを.csv(カンマ区切り値)または.txtファイルでエクスポートできます。これらのファイルは、一般的に使われているどのネットワーク可視化ツール(チュートリアル末尾の一覧を参照)でもインポートできます。しかし、ここでは第一歩として、スタンフォード大学が活発に開発を進めていて、使い方が非常に簡単な可視化ツールであるPalladioで試してみることをお勧めします。ブラウザ内で動作するため、Palladioは特定のプラットフォームに依存しません。ただし、Palladioは、非常に柔軟ではあるものの、高度なネットワーク分析というよりも、簡単な可視化向けのものとして設計されている点に注意してください。

 以下のステップでは、Palladioを使ったネットワークデータの可視化の方法を解説しています。ですが、Palladioが提供している練習素材も確認して、サンプルデータで遊んでみることをお勧めします。しかし、ここでは前に紹介したコード体系に基づいて調整したサンプルデータセットデータテーブル1 – 関係性データテーブル2 – 属性テーブルを使っています(他のツールを試すためにもダウンロードして利用することも可能です)。

ステップごとの手順:

1. Palladioへアクセス: http://palladio.designhumanities.org/のサイトへアクセスしてください。[訳注:PalladioのURLが原著と異なります。 こちらからアクセスしてください。 https://hdlab.stanford.edu/palladio/ ]

2. スタートを押す:Palladioのウェブサイトで「Start」ボタンを押してください。

3. 属性データをロードする: データシートからサンプルのデータテーブル2 – 属性テーブルをコピーし、ウェブページ内の白い部分に貼り付けて、「Load」ボタンをクリックしてください。

図6: Palladioへ属性データをロードする

4. 属性を編集する:表のタイトルを「People」など、より意味のあるものに変更してください。これでサンプルデータのカラムに対応する「Person」「Race Status」「Sex」といったカラムが表示されました。次に、Palladioが、データベースに入力した人々に関連付けられた行動があることを理解していることを確認する必要があります。

図7: Palladioの属性データの画面

5. 関係性を示すデータをロードする: データをロードするためには、「Person」をクリックし、「Add a new table」をクリックしてください。ここで、データ表1 – 関係性に含まれている全てのデータを、適切なフィールドへ貼り付けてください。Palladioは関係性の情報をアクターの属性情報へと紐づけるために固有の識別子を必要とします。これがうまく並び、「/」などの不要な文字を避けているようにしてください。そのような文字が含まれていると、Palladioがエラーメッセージを表示します。「Load data」をクリックし、オーバーレイウィンドウを閉じ、メインのデータ表示画面に戻ってください。次のような画面になっているでしょう。

図8: 関係性を示すデータをロードする

6. 属性と関係を紐づける: 次に、作成した2つのテーブルをリンクさせる必要があります。今回のケースでは、各人物の姓と名がIDとして機能しているため、これらを繋げる必要があります。そのために、新しいテーブルで対応する項目をクリックしてください。サンプルファイルでは、「Giver」と「Recipient」となっています。(最下部の)「Extension」をクリックし、人物の全ての属性情報を含むテーブルである「People」を選択してください。「Recipient」についても同じようにしてください。

図9: PeopleとRelationsの紐づけ

7. 時間データを指定する:Palladioには時間を可視化する便利な機能があります。各関係の開始時点と終了時点があればこの機能を使うことができます。サンプルデータには適切なデータを含むカラムが2つあります。「Time Step Start」をクリックし、データ型「Year or Date」を選択してください。「Time Step End」でも同じ手順を繰り返してください(図10)。Palladioの開発チームは、データ形式としてYYYY-MM-DDのフォーマットを推奨していますが、筆者のより抽象的なタイムステップでもうまく機能しました。地理座標をロードする場合は、データ型「Coordinates」を選択します(本チュートリアルでは扱っていませんが、次を参照してください: Palladio Simple Map Scenario)。

図10: データ型を「Year or Date」に変更

8. Graphツールを開く:データのロードが完了しました。「Graph」をクリックし、可視化インターフェイスをロードしてください(図11)。

図11: Graphツールをロード

9. 情報源とターゲットノードを指定する:最初にPalladioがネットワーク内の「Source」と「Target」のノードを指定するように求めてきます(図12)。「Givers」と「Recipients」から始めてみましょう。グラフが表示され、より詳細に調べることができるようになります。

図12: 「Giver」をSourceとして、「Recipient」をTargetとして選択したところ

10. ノードを強調:「Highlight」ボックスにチェックマークを付けてください。これで誰が援助者として行動し、誰が単に援助を受けただけで、誰が援助者と受援者の両方の役割を果たしたのかがすぐに分かるようになります。

11. ファセットフィルター:次に、ファセットフィルターを使ってみましょう(図13)。異なる援助行動を記述しているカラムがあるのが分かるでしょう。始めに「Form of Help」カラムで「3」を選択してください。これにより、宿泊設備の提供のみを表示するグラフに変更します。次に、「Date of Activity」カラムから値を選択し、クエリをさらに狭めてみましょう。これにより誰が宿泊設備を提供し、それが時間とともにどのように変化したのかを示してくれます。カラム名の隣にあるチェックボックスをクリックし、カラム内の全ての値を再度選択してください。時間をかけてデータセットをいろいろいじってみてください。時間が経つにつれてどのように変化していますか?終わったら、小さな赤いゴミ箱を使ってファセットフィルターを削除してください。

 ネットワーク可視化はかなり示唆的になることがあります。あなたが目にしているものはコード化したデータ(とそれに至るまでのあなたの選択)の異なる表現であり、修正しなくてはならないエラーも表示されるかもしれない点に留意してください。違うタイムステップを用いたり、単にお互いのことを知っていたものの援助を行わなかった人を含めていたりしたら、筆者が操作したグラフはいずれも違って見えていたかもしれません。

図13: Palladioのファセットフィルター

12. ネットワーク可視化を2部化: ここまででも十分便利なのですが、初めてのネットワーク可視化ツールとしてPalladioが最適なのには、もう1つ理由があります。それは、2部グラフ(bipartite)、つまり、2-モードネットワークを作成するのが非常に簡単であるという点です。これまで見てきたネットワークは、どれも1分(unipartite)または1-モードネットワークと呼ばれるもので、1種類以上の関係性を通じてある種類(例えば「人」)のソースとターゲットノードの間の関係性を表現しています。図13と14はこのようなグラフの例です。

 しかし、ネットワーク分析では、何がソースで何がターゲットなのかを再考する自由が大いに与えられているのです。2部ネットワークには異なる2種類のノードがあり、例えば1つ目を「人」として選択し、2つ目を「時点」として選択することができます。図15では2部ネットワークを表していますが、ここでは同じ時点でどのような受援者が存在していたかを明らかにしています。このグラフを、どの援助者が同じ時点で存在していたかを表している図16と比べてみてください。援助者間の変動率が高いことが分かると思いますが、これは私が研究したすべてのネットワークにも当てはまることでした。人間は人と人のネットワークの処理には非常に長けているものの、このようにより抽象的なネットワークの処理には苦労するのです。いろいろ試して、様々な2部ネットワーク を作成してみてください。「Target」をクリックし、今度は「Form of Help」や「Sex」、その他のカテゴリーで可視化してみましょう。

 「援助者」と「受援者」を1つ目のノード型とし、「Date of Activity」を2つ目のノード型として扱いたい場合は、表計算エディタで全ての登場人物を含むカラムと各人物が存在していた時点を含むカラムを用意し、そのデータをPalladioにインポートする必要があります。また、この時点ではPalladioではノードの色付けなどによって属性データを表すことはできませんが、他のツールではそのような機能が備わっています。

図14: 一分(unipartite)ネットワークの可視化: 援助者と受援者
図15: 二分ネットワークの可視化: 受援者と活動日
図16: 二分ネットワークの可視化: 援助者と活動日

13. タイムライン: タイムライン機能はネットワーク上での変化を比較的簡単に可視化できるものです。図17は、時間の経過とともに変化する男女の分布を表しています。Y軸の最初の列は「Dates」フィールドに対応し、異なるタイムステップを表しています。グラフの棒は「Sex」属性を表しています。不明、男女それぞれの人数は棒の各セグメントの高さによって表現しています(薄い灰から黒まで)。何が何に対応しているのかは、マウスオーバーをして確かめてみてください。一番低い棒セグメントは「Height shows」フィールドに対応しており、タイムステップの13から14にかけて変化する合計人数を表しています。

図17: 時間の経過とともに変化する性別の分布

14. タイムスパン: さらに興味深いのがネットワークの可視化を動的に更新するTime Spanビューです。「Time Span」をクリックしてください。図18は、現在表示されているものを示しています。マウスでタイムステップの間のセクションをハイライトすると、灰色にハイライトされます。ハイライトされた部分をタイムライン上にドラッグすると、グラフがタイムス テップからタイムステップへとどのように変化するかを見ることができます。

図18: タイムライン。タイムステップの可視化。

15. ノードの大きさ: Palladioではアクターの属性に応じてノードの大きさを変えることができます。ここでは数値がカテゴリーを表しているため、サンプルデータではノードの大きさを変えることには意味がない点に注意してください。しかし、ノードの大きさはある人の援助行為の合計を表したいときに便利であり、ここではノードの外向的な関係性の数を表すOut-Degreeに対応しています。

16. 可視化のエクスポート: Palladioではネットワークをベクトルベースのイメージ形式である.svgファイルとしてエクスポートできます。選択したブラウザでファイルを開きます。

17. リスト、マップ、ギャラリー: Palladioにはリスト、マップ、ギャラリーといった様々な追加の可視化フォーマットが用意されていることにお気づきでしょう。これらは全てグラフセクションと同じくらい直観的で、よく設計されています。ギャラリーではアクターの特定の属性を指定し、カード型のビューで表示してくれます。アクター属性に緯度と経度を追加することで、どこでネットワークが発生しているのか瞬時に理解できるようになります。Palladioが提供しているサンプルファイルでこの機能を試してみてください。

ネットワーク可視化の付加価値

テキストからネットワークデータを慎重に抽出する作業は、ステップ毎に集中力を要するため、時間がかかり疲れやすい作業です。筆者もこの作業は時間をかける価値があるものなのか、ネットワーク可視化を使わずとも同じ観察をできたかどうか、何度も自問自答しました。答えとしては、このようなデータを全てコード化せずとも同じような主な結論に至ったかもしれないと思うと同時に、手間をかけてこのような作業を行ってよかったというのが筆者の考えです。熟読(close reading)していくなかで、関係性のデータ入力は、すぐに素早く楽に行えるようになるでしょう。

筆者の経験では、問い主導による熟読や解釈と、データのコーディングと可視化は、全く別々のプロセスではなく密接に絡んでおり、相互に効果的に補完しているといえます。遊ぶという行為は一般的にあまり学術的な行為として捉えられることはありませんが、特にこの手のデータにおいては価値ある時間の使い方であり、ただ単にデータで遊ぶだけでなく、並び替え、それによって常に自分のテーマについて知っていること、知りえることを考え直すことにつながるのです。

コード化した結びつきの一つ一つが、誰がどのように誰を助けたのかというストーリーを表しています。ネットワークの可視化は、このように5,000を数えるストーリーと1,400名もの個人がどのように相互に関係しているのかを理解する上で役に立ちました。ネットワークは筆者が知っていたことを確かめてくれるだけでなく、驚くべきことも何回も見せてくれて、興味深い問いを投げかけてくれたのです。例えば、仲介人が2つの主要なサポート・ネットワークを立ち上げ、その後、何百人もの人々を救うことができるようにした人物として、ウォルター・ハイマンを特定することができました。両方のネットワークにおける主要なアクターへ繋がる彼の連絡先は、筆者が本プロジェクトの様々な段階で扱った数々の文書に散らばっていました。可視化が、これらの関係性を全て集約し、そのような繋がりを明らかにしてくれたのです。さらに調査を進めた結果、ネットワーク全体をまとめていたのが彼であることが明らかになったのです。

図19: ウォルター・ハイマンによる仲介人の周旋と、それによる2つの主要な支援ネットワークの出現

別の機会では、可視化により難民が見知らぬ人たちと信頼関係を築くのに役立った、異なる社会階級をまたいで長い続く仲介人の連鎖の存在が明らかになったほか、つながっていると考えていたアクター間に意外にも隔たりがあったことが分かったり、重複している名前のリストからクラスターを特定できたり、活発な期間とそうでない期間を観察し、異なるグループの橋渡し役となった人々を見つけ出し、秘密のネットワークの出現においてこれまで見過ごされてきた大きな要因として、迫害の犠牲者であるユダヤ人の仲介人の周旋を強調することにつながったのです。

可視化は、もちろん何かを「証明」するものではありませんが、複雑な関係性を理解するためのツールであり、その解釈には、根底にあるデータとそれがどのように可視化されたかという深い理解に基づいているのです。厳選したネットワークの可視化は、古い書籍の表紙の内側に時々描かれている地図のように、本文に付随して、読者が複雑な関係性をよりよく理解するうえで役立つでしょう。

いくつか実践的なポイントを以下に記しておきます:

  • 表計算にデータを集め保管しつつ、可視化にはコピーした別ファイルを使いましょう。
  • データの見方を左右するため、選択した中心性アルゴリズムやレイアウトアルゴリズムの背後にある基本的な根拠を必ず理解してください。ウィキペディアは、通常、それらに関する包括的な情報を提供してくれる優れた情報源です。
  • コード体系が思ったようにうまく行っていないと思ったら、躊躇せず見直してやり直してみましょう。やってみる価値は間違いなくあります。

最後に、本チュートリアルで筆者が提供した小さなサンプルデータセットで作成できるどのような可視化も、本当に意味のあるものになるためには文脈の知識が求められます。あなたの研究にとってこの方法が適切かどうかを調べるには、独自のデータのコーディングを開始し、あなた自身の文脈の知識を活用して、可視化を意味あるものにするしかありません。

では、頑張ってください!

検討すべき他のネットワーク可視化ツール

Nodegoat – データ収集とマッピング、グラフの可視化を簡単に行えるという点ではPalladioに似ています。リレーショナルデータベースの設定が簡単にでき、ユーザーはサーバーにデータを保存することもできます。チュートリアル(英語)はこちら。〔訳注:チュートリアルリンク切れにつき、”nodegoat Guides”のページへリンクを修正しています。〕

NodeXL – SNAで一般的に行う数々のタスクを実行でき、使い方も簡単でオープンソースですが、WindowsとMS Office 2007以降が必要です。チュートリアル1チュートリアル2

Gephi – オープンソースでプラットフォームには依存していません。最も有名で最も柔軟な可視化ツールですが、使い方を覚えるには多少時間がかかるでしょう。開発者らはバージョン1.0からパラレルエッジへのサポートを発表しています。Clement Levallois氏とSebastien Heymann氏のチュートリアルがあります。

VennMaker – プラットフォームに依存せず、無料で試すことができます。VennMakerではデータ収集の過程を逆にしており、ユーザーはカスタム化できるキャンバスから始め、自己定義したノードや関係性を描きます。その間、背景でツールが対応するデータを収集してくれます。

より数学的な分析に最もよく用いられるツールがUCINET (要ライセンス、チュートリアルはウェブサイトより)とPajek(無料)であり、後者に関しては優れたハンドブック(英語)が用意されています。両方ともWindows用に設計されていますが、Wineを使えば他のOSでも作動します。

Pythonユーザーにとって、ドキュメンテーションが非常にしっかりしているパッケージであるNetworkxから始めるとよいでしょう。別のプログラミング言語用には他のパッケージが用意されています。


著者について

Marten DüringはCVCE LuxembourgのDigital Humanities Labに研究員として勤務する歴史研究者であり、http://historicalnetworkresearch.orgを運営するかたわら定期的にネットワーク分析のワークショップで教えています。


引用の際はこちらをご利用ください

<原著>

Marten Düring, “From Hermeneutics to Data to Networks: Data Extraction and Network Visualization of Historical Sources,” The Programming Historian 4 (2015), https://programminghistorian.org/en/lessons/creating-network-diagrams-from-historical-sources.

<翻訳記事>

Marten Düring著, 菊池信彦訳. 解釈学からデータのネットワークへ:史料からのデータ抽出とネットワークの可視化. 東アジアDHポータル. 2020, https://www.dh.ku-orcas.kansai-u.ac.jp/?p=661

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。