とりあえずの画像の出し方と、仕組み自体はわかりましたので、自然言語を使って実戦していきます。 さいきん終電帰りが多く、内容は軽めです。
実践
まずはNetworkXとMatplotlibのimportです。 あと、グラフの作成。
import networkx as nx import matplotlib.pyplot as plt %matplotlib inline G = nx.Graph()
次にひとまず、日本地図でも作ろうと思いますので、日本の主要都市をリストにします。
japan = ["北海道","仙台","埼玉","東京","神奈川","石川","京都","大阪","広島","福岡","沖縄"]
それで、これをnodeに代入します。
G.add_node(japan)
TypeError: unhashable type: 'list'
エラー。リストはハッシュの型じゃないよ、というエラーですね。
ハッシュを調べて見ましたら、キーと値の組合せを 1つのかたまりとして管理する方法だそうです。キーと値といいますと、辞書型が当てはまりますので、辞書型で試してみます。
japan = {0:"北海道",1:"仙台",2:"埼玉",3:"東京",4:"神奈川",5:"石川",6:"京都",7:"大阪",8:"広島",9:"福岡",10:"沖縄"} G.add_node(japan)
TypeError: unhashable type: 'dict'
辞書型でもダメでした。
結局ハッシュエイブルが何なのかがわかりませんでしたが、リストや辞書型を付け加えるには.add_nodes_fromメソッドを使えばいいそうです。
G.add_nodes_from(japan)
次に描写
nx.draw(G)
これといった特徴がないですね。 これを線で結ぶにはpathを追加すればよいそうです。
G=nx.path_graph(11)
とっと変な感じですが線で結べました。
テキストを表示させるのには、nx.draw_networkx_labelsメソッドを使えば良さそうです。
pos=nx.spring_layout(G) labels=nx.draw_networkx_labels(G,pos)
あー、そっちなんですね。 都市の方を出力するには、引数で指定する必要があるそうです。
nx.draw_networkx_labels(G, pos, japan)
とりあえずテキストの出力までです。
今日の結果
今日のAKBの呟きは67件でした。
'嬉しい': 8, '楽しい': 6, 'すごい': 3, '可愛い': 3, '良い': 2, 'いい': 2, 'よろしい': 2, '面白い': 2, '軽い': 2, '甘い': 1, '短い': 1, '無い': 1, 'ったらしい': 1, '凄い': 1, 'ゆるい': 1}) '今日': 20, '公演': 19, 'お願い': 18, '位': 16, '応援': 11, '回': 9, '嬉しい': 8, '皆さん': 8, '最後': 8, 'チームフォー': 7, '笑': 7, 'さん': 7, '初日': 7, '楽しい': 6, '時': 6, 'キャンペーン': 6, '目': 6, '感謝': 6, 'する': 40, '今日': 20, '公演': 19, 'お願い': 18, '位': 16, 'くださる': 14, '応援': 11, '頑張る': 10, '回': 9, '嬉しい': 8, '皆さん': 8, '最後': 8, 'チームフォー': 7, '笑': 7, 'さん': 7, '初日': 7, 'てる': 7, '楽しい': 6, '時': 6, 'キャンペーン': 6, '目': 6, '感謝': 6, '来る': 6, 'いる': 6,