hirax.net::Keywords::「Perl」のブログ



2000-01-13[n年前へ]

WEBサイトの絆 

WEBの世界を可視化しよう




 目に見えないものを実感できるものにしようと思うことは多い。「直接感じることが出来ないものを感じられる形にする」という作業とその結果には非常にわくわくさせられる。それは、きっと私だけではないと思う。

 目に見えないものは色々ある。可視化して見てみたいものは多々あるのだが、以前、

の時に扱った、WEBのトポロジーなどもその最たるものである。WEBページはもちろん目に見えるわけではあるが、それらがどう繋がっているか、すなわち、WEB[= クモの巣(状の物);織物 ]そのものは目には見えない。

 ネットワークという目に見えない世界でWEBサイト同士がどう繋がっているか、それは企業のWEBサイト同士であれば企業間の繋がりを示すかもしれないし、公的機関のWEBであれば公的機関内部の繋がりが見えてくるかもしれない。そして、個人WEBであれば、個人どうしの繋がりが見えてくるだろう。そして、さらに考えを進めるならば、それが「WEBの繋がりだ」と端的に言い切ってしまっても良いと思う。

 そういう色々なWEBサイト同士が互いに結びつき合う、つまりWEBそのものを今回は可視化してみたい。その結果はきっと「WEBサイトの絆」を私に見せてくれるはずだ。

 例えば、ファイルシステムを可視化するものであれば、

  • xcruise( http://tanaka-www.cs.titech.ac.jp/~euske/index-j.html )
といったファイルシステムを宇宙空間に見たてて、表示するようなものがある。また、そこまで派手でなくても通常のファイラーやエクスプローラのツリー表示などもファイルシステムの構造を可視化しているといっても良いだろう。(そういえば、かつて富士XeroxがWindowsのファイルシステム中のドキュメントを色々面白い3次元表示で表示、検索してくれるソフトを扱っていた。なかなか面白いソフトだったと思うのだが、今ではどうなっているのか?)

 そして、今回の本題のWEBサイトのHyperlink構造を可視化するソフトウェアも、少し探しただけでも結構ある。例えば、

といったところだ。確かappleもこういったツールの開発を行っていたように思うが、どこに情報があるのか忘れてしまった。
 しかし、よく調べていないので間違っているかもしれないが、この辺りのソフト(appleを除く)はWEBサイト内のリンクのみに限られるようである。それでは、今回の目的とは違う。何しろ、今回知りたいのはWEBサイト同士のリンクの度合いである。WEBのトポロジーなのである。

 そこで、もう少し探してみる。すると、今回の目的にかなり近い情報が

に見つかった。perlでWeb Robotを作成し、"*.go.jp"のサイトに放ち、ハイパーリンクのデータベースを作成し、それを解析・可視化したものである。その結果のハイパーリンクの具合を可視化した図が、リンク切れで見ることができないのが実に残念だが、非常に役に立つ情報が満載である。ほとんど、私のしてみたいことそのものである。しかし悔しいことに、その結果の図を見ることが出来ない。そこで、同じようなことを自分でやってみることにした。

 やり方はどうしたら良いだろうか?宮久地氏と同じようにWeb Robotを作成して、データを集めるのが理想的だろう。しかし、「perl入門」を昨日やっと買ったばかりの私にはとても難しそうである。いや、もしそんなことをしたらとんでもないことになるに違いない。

 そこで、perlのlwp-rgetを用いて各WEBの内容をローカルのPC内にダウンロードした上で、勉強がてらperlで解析を行うことにした。と、思ったのだが、lwp-rgetが上手く動いてくれない。まだドキュメントをちゃんと読んでいないせいだろうか?何故か、ダウンロードの途中で終了してしまう。仕方がないので、急遽作戦を変更し、ダウンロード作業はlwp-rgetではなくてwgetを用いることにした。

 行った手順は以下のようになる。

  1. 5つのWEBサイトを広いWEB内から適当に選択する
  2. 選んだ各WEBサイト内のファイルについて、相互のハイパーリンクを抽出し、その数を解析する
  3. その結果を可視化する
 今回選択したWEBサイトはA,B,C,D,Eという5つのサイトである。A〜Dについては、サイト内の全てのページについて解析を行った。Eに関しては、サイト内の特定の1ページについてのみ解析を行った。A〜Dのサイトに関しては、名前は伏せておく。サイトEに関してのみ名前を明らかにしよう。Eは日記猿人というサイトの中の「今月の得票数」を示すページである。そう、今回選択したWEBは全て「日記猿人」という一風変わったコミュニティー内のサイト群から抽出したのである。

以下に、解析を行った結果、すなわちサイトA,B,C,D,Eの相互に対するリンク数を示す。

A,B,C,D,Eの相互に対するリンク数
↓から→へのリンク数
A
B
C
D
E
A
-
0
2
0
27
B
1
-
0
13
273
C
20
2
-
0
43
D
0
11
0
-
285
E
1
1
1
1
-
合計
22
14
3
14
/

 サイトE「日記猿人」へのリンクがムチャクチャ多いのは投票ボタンという形で、他のサイトからリンクがなされているからである。

 さて、上の表からではWEBの絆を実感できないので、「WEBの絆」を3次元空間に可視化するJavaアプレットを以下に張り付けておく。WEBサイトが5つあるので、それぞれのサイトをピラミッド構造(四角柱状)に配置した。
 各WEBサイトの表示色は、

  • A = 赤
  • B = 緑
  • C = 青
  • D = 黄
  • E = 灰
という五色を用いた。そういつぞやと同じ五色である。imacも五色(6?)だが、今回のターゲットサイトも五色なのである。

 それぞれのサイトから伸びる直線の長さは、そのサイトから他のサイトへ向かうリンク数に比例したものにしている。また、直線の太さもリンク数に比例させている。また、それぞれのWEBサイトを示す立方体の大きさは自分へ向かうリンク数に比例させている。ただし、サイトEの大きさはあまりにも巨大なため、リンク数に比例したものにはなっていない。また、サイトE、すなわち「日記猿人」、へのリンクは省略し、全てサイトEからの直線リンクを表示するだけにした。

 さぁ、WEBサイトの構造を自分の目でみて、そしてグリグリ動かして見てもらいたい。このグラフの操作方法は

  • 操作 = 作用
  • マウス左ボタンドラッグ = 回転
  • シフトキー + 垂直ドラッグ = ズームイン・アウト
  • シフトキー + 水平ドラッグ = 垂直軸についての回転
  • コントロールキー + 垂直ドラッグ = 焦点距離の変更
  • マウス右ボタン垂直ドラッグ = 部品除去
  • "s"キー = ステレオ画像作成
である。表示をステレオ画像にして、WEBの世界へダイビングしてみよう。

 Java表示が上手く動かない人のために、静止画も一応張り込んでおく。

WEB構造を可視化したもの

 どうだろう?この5つのWEB間のWEB構造から何が見えるだろうか?こういう解析を数多くのサイトに行うと非常に面白い結果が得られそうである。特に「日記猿人」のようなコミュニティーに対して行うと興味深い結果が得られるはずだ。
 私のような「日記猿人」の日記はほとんど読まない(サイトAに関しては大ファンであるが)人間にとっても興味深いのであるから、関係者にとってはきっと...の筈だ。

 さて、今回はテストのためにごく少数(5つ)のWEBの解析を行ってみた。いつか、こういった解析を広い範囲で行い、そして、時系列的な変化をも調べようと思う。銀河のvoid構造が観測され、可視化されたものを見たときもとてもわくわくしたものだが、WEBの構造・変化ならばどうだろうか?

 不思議なことに、そういうことを考えていると、「新宿都庁」と「思い出横町」が頭の中に浮かんできてしまうのは何故だろうか?押井守の影響だろうか。謎である。

 そして、こうも思う。WEBネットワークの中でWEBサイトは何を感じているのだろうか?これらのWEBサイトはもしかしたら孤独を感じているのだろうか、それとも繋がりを感じているのだろうか?あの時のページの中の一フレーズがその答えの一つなのかもしれない。

2001-01-27[n年前へ]

今日の反応 JPNICに関する意見書 

 かつて、最初の数ヶ月は第一交信網不動産のヴァーチャルドメインサービスを利用していた。1GB/月の転送量を超えたときの追加料金8円/1MBというのがちょっと高かったので、他の専用サーバーに移動したわけだ。今はhirax.netのデータ転送料は大体500MB/日だから、あのままだったら大変なことになっていただろう。ただし、私自身は1GB/月の転送量を超えるあたりで移動したので、私自身は何の問題もトラブルもなく、安いなりに納得して使っていた、ということは念のために書いておきたい。
 ただし、知人にここを勧められるかというと、かなり躊躇してしまうのもまた事実である。でもって、日本交信網は実は第一交信網不動産と同じなわけで、この意見書を読むと複雑な気持ちを感じてしまうのである。うむむ。(リンク)(リンク

2001-02-19[n年前へ]

ひとりで書いてるだけだから。 

ヘッポコ文章を直したい


   面白い情報を探しにと「お笑いパソコン日誌」を眺めていると、「ウエヤマの事件簿」の「他人の日記をオモチャにしよう!」が紹介されていた。「お笑いパソコン日誌」に〜『できるかな?』風ネタであります〜と紹介されてあった通り、実に私好みの話だった。ウエヤマ氏が「自分で書いてる日記の文章」を解析して、文字の出現頻度を調べてみたものである。

 「できるかな?」は画像や科学の関連の話が多いように見える。しかし、実はそれだけではなくて文章や日記に関する話も多い。例えば、これまでに出てきた話を振り返ってみると、

に始まり、と続く、「文学の世界を眺めてみよう」という話など、あるいは「WEBページで見かける文体の特徴を解析しよう」としたなど、あるいは「WEB日記の文化を眺めて見たい」というなどの話があった。「技術サイト」という分類をされることも多い本サイトではあるのだけど、非技術的な話に強引に技術的な話を持ち込みたくなったり、技術的な話なのに何故かとても私的で非技術的な話が入ってしまったりするのが、良くも悪くも「できるかな?」の特徴だろう。もちろん、良いことでは全然無いのだけれど、こうでも書かないと悲しい気分になってしまうので、「良くも悪くも」と書いているのである。

 そういったhirax.netの特長ならぬ特徴は私が書く文章が下手なせいなわけで、そんなヘッポコ文章から脱出するべく、私の書く文章の特徴を調べて反省してみることにした。もちろん、自分のヘッポコ文章だけを眺めてみてもしょうがない。他の素晴らしい文章を書く書き手と比較しなければならないだろう。そこで、今回はいくつかの文章を品詞解析し、その結果の特徴を調べることにする。そして、書き手による文章の特徴が眺めながら、私のヘッポコ文章の欠点を調べ、さらには誰もが思わず涙がこぼしてしまうような素晴らしい文章を書けるようになりたい、と思うのである。
 

 さて、まずは目標を決めよう。私がヘッポコ文章を脱出してどんな文章を目指すかを、何より先に決めなくてはならない。となれば、あまりにも大それた目標ではあるのだが、やはり日本の文豪、夏目漱石は外せないだろう。そして、その教え子でもある寺田寅彦もやはり外すわけにはいかない。一応私も理系のはしくれ、日本の理系文章の流れを作ったこの二人を目標にしなくてなんとしよう。ヘッポコ文章を脱出していきなり、夏目漱石と寺田寅彦というところに無理があるが、そんなことを考えていては駄目なのである。「少年よ大志を抱け」とクラーク博士も言ったのである。もう少年と言うにはどう考えても年齢的に無理があるのだが、気持ちはまだまだ少年で目標は大きく持ってみたいと思うのである。

 そして、もう一人の目標は「ちゃろん日記(仮)」をマイペースに書き続ける「ななゑ」さんである。私は彼女の書く文章を読むたびにとても素晴らしい理系的センスが感じ続けているのである。しかも、理系的でありつつも笑いと涙のペーソスたっぷりの「ちゃろん文体」という独自の確固とした文体を築いているところも尊敬していたりするのである。

 というわけで、今回の文章の比較は

  1. 夏目漱石
  2. 寺田寅彦
  3. ちゃろん日記(仮) ななゑ
  4. 「できるかな?」 jun hirabayashi
の四人の書き手の文章を適当に二つずつピックアップして、その文章を品詞解析して簡単に特徴を眺めてみることにした。各書き手に対して、それぞれピックアップした文章はである。なお、夏目漱石と寺田寅彦は「青空文庫」から入手した。そして、これらの文章を日本語形態素解析システム茶筌&perlで解析後、Excelでさらに解析・表示を行ってみることにしよう。

 ところで、形態素解析とはどのようなものだろうか。まずは、例を挙げよう。例えば、

私が好きな書き手達は、夏目漱石、寺田寅彦、ななゑさんです。
という文章を茶筌で分解すると、
  1. 私 名詞-代名詞-一般
  2. が 助詞-格助詞-一般
  3. 好き 名詞-形容動詞語幹
  4. な 助動詞
  5. 書き手 名詞-一般
  6. 達 名詞-接尾-一般
  7. は 助詞-係助詞
  8. 、 記号-読点
  9. 夏目 名詞-固有名詞-人名-姓
  10. 漱石 名詞-固有名詞-人名-名
  11. 、 記号-読点
  12. 寺田 名詞-固有名詞-人名-姓
  13. 寅彦 名詞-固有名詞-人名-名
  14. 、 記号-読点
  15. ななゑ 名詞-固有名詞-人名-名
  16. さん 名詞-接尾-人名
  17. です 助動詞
  18. 。 記号-句点
というようになる。このように各文章を品詞毎に分解して、その出現分布から特徴を調べてみるのである。なお、今回注目した品詞は
  1. 読点
  2. 形容詞
  3. フィラー
  4. 感動詞
の四つである。この四つを選んだ理由は、読点は明確な決まりがないだけに書き手の感覚が入りやすいと思われ、形容詞、フィラー・感動詞に関しては書き手の気持ちが素直に現れやすいと思われるからである。ちなみに、フィラーとはから引用すれば、「あのー」「えー」といった語句ということになる。まずは各文章が書き手によってどのくらい特徴づけられるかのイメージを掴むために、形容詞の出現頻度とフィラーの出現頻度を軸にとり、各文章を二次元の世界に配置してみた結果を図示してみよう。
 
形容詞の出現頻度とフィラーの出現頻度を軸にとって、
各文章を二次元の世界に配置した結果

 結構、同じ書き手による文章が同じような位置に配置されることがわかると思う。ちゃろん日記(仮)などは、二つの独立した文章がほとんど同じ位置に配置されている。もう、ちゃろん文体は安定しまくっていて完成されているのである。そしてまた、「文豪」夏目漱石の場合も、「我が輩は猫である」と「坊っちゃん」がかなり近い位置に配置されていることがわかる。

 なるほど、結構書き手による特徴はこんないかにも雑な解析でも評価できるものなのかもしれない(あくまで「遊び」だけどね)。そして、形容詞の出現頻度などは、「雪だるまがいる景色」と「自然と生物」以外は大体同じようなものである。寺田寅彦の「自然と生物」は妙に形容詞の出現頻度が高いところが面白いところである。私の「雪だるまがいる景色」はあまり技術的な話ではなくて、確かに形容詞が多そうな話ではあるのだが、一体「自然と生物」はどうだっただろうか?

 ちなみに、「できるかな?」からの二つの文章は共にフィラーが一個も出てこない。その他の6つの文章にはフィラーが出てくるのであるが、何故か「できるかな?」の二つの文章にはフィラーが含まれていないのである。この差がなければ、寺田寅彦の二編と「できるかな?」はかなり似た場所に位置するのであるが、このフィラーは特に違うのである。

 さて、上の図ではフィラーと形容詞の出現頻度だけを眺めてみたが、読点、感動詞の出現頻度も加えて、クラスター分析を行ってみた。つまり、「読点・形容詞・フィラー・感動詞」の出現分布が似ているものを分類してみたわけである。クラスター分析にはExcelアドイン工房「早狩」の統計解析アドインを使用させて頂いた。ちなみに、クラスターの結合はウォード法を用い、非類似度計算法には標準化ユークリッド平方距離を使用した。その結果が下の図である。
 

クラスター分析の結果

 このクラスター分析の結果を示す図は近い文章をまとめていったものを示している。つまり、文章の「近さ」あるいは「似ている度」を示しているのである。ちゃろん日記(仮)の二編は本当によく似ていて、また夏目漱石の書いた二編も互いに似ている。そして、それより「近い度」は低いが「新宿駅は電気羊の夢を見るか?」は「科学について」に近くて、「雪だるまがいる景色」は「自然と生物」に近い。おして、さらに似ているものを探せば、ちゃろんの二編と「新宿駅は電気羊の夢を見るか?」・「科学について」は似ているといえなくもない、さらに言えばその四編と夏目漱石の二編が似ている。

 ここでは、四人の書き手がいるということが私には判っているので、あえて四つのクラスターに分解してみると、

1.
    • 「雪だるま」がいる景色
    • 自然と生物
    2.
    • 新宿駅は電気羊の夢を見るか?
    • 科学について
    3.
    • ちゃろん日記1998(仮)11月上旬
    • ちゃろん日記1999(仮)6月上旬
    4.
    • 我が輩は猫である
    • 坊ちゃん
という風になる。やはり夏目漱石とちゃろん日記に関してはこんなチープなごく少数の品詞解析でも、「作者の文体が同じである」と解析されてしまうのである。なかなか、スゴイとは思わないだろうか?数多くの解析をしてみるのもなかなか面白いと思う。高校生のレポートくらいだったら、これで何とか書けそうである。

 しかし、その一方で考えてみれば寺田寅彦の名随筆と「できるかな?」のヘッポコ文章が「文体が近い」と解析されてしまっているわけなので、実はこの解析の信頼性はかなり低いと言わざるを得ないところもあるのである。いや、もしかしたら「文体は同じやけど、内容が全然違いますがな」というような冷たいアドバイスを解析結果は言わんとしているのかもしれないが、もうそれは哀しすぎる事実なので考えたくないのである。

 さて、そう言えば一番最初の図で「できるかな?」と寺田寅彦の差はフィラーの出現分布だったわけであるが、「大学の講義における文科系の日本語と理科系の日本語-- 「フィラー」に注目して --」では、「聞き手への働きかけのあるフィラーが多いということは聞き手への配慮が大きいということにつながる」と書いてあった。ということは、フィラーの出現分布は聞き手への配慮に比例するというわけで、「できるかな?」の文章にフィラーが出てこない、ということは読み手に対する配慮がない、なんてことなのかなと思ってしまったりするのである。

 そんなことを考え出すと、ホラどうせひとりで書いてるだけだから読み手のことなんか考えていないのさと、思わず涙がこぼれてしまうような哀しい気持ち、になったのである。う〜む、最初は誰もが思わず涙がこぼしてしまうような素晴らしい文章を書けるようになりたいと思ったったのに、何でこんな結論になるんだろう?

 答え: それは文才がないからです。ハイ。
 
 

2002-12-24[n年前へ]

ATOK「コマンド」プラグイン 

 まるで何かから逃避するかのように、ATOK「コマンド」プラグインなんてものを作ってしまいました。これが何かと言えばATOKから例えば"nslookup"なんて入力してAMET変換すると、その結果が表示されたり、あるいはまた、"perl -v"なんて入力すれば、
This is perl, v5.6.1 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for m
と変換されるわけです。ただし、256文字以降は変換されないため、そんな時はクリップボードにもコピーしているので、変換後ペーストすることになります。すると、This is perl, v5.6.1 built for MSWin32-x86-multi-thread
(中略)
perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.
なんてちゃんと変換されるわけです。つまりは、ATOKから外部のプログラムを使うことができるので、何でもできるというわけです。ATOKからperl、ruby、EXEもう何でもかんでも呼び放題です。
 結果が256文字以上の場合はキーボードイベントで送るのも手かと思うのですけど、日本語処理がそれだとできなくなるし困ったもんだ、と思って悩んでいるところです。あと、カレントディレクトリやらヒストリ機能やらも実装しようかどうしようか、と悩んでいるところ。とりあえず、この二つはちゃんと入れてからアップロードしましょうか。とはいえ、こんなソフトを使う人がいるかどうか判らないし…気分が向けばというところ。とはいえ、現実逃避モードに入っているから…。

2002-12-25[n年前へ]

ATOK 「コマンド処理」プラグイン 

 結局、クリップボード経由で自動ペースト(Ctrl + V)方式に変更。というわけで、ペーストをCtrl+Vでサポートしていない環境では使えないです。とはいえ、その場合にもクリップボードに結果が入れられているので、もしかしたら使えるかも。
 Cygwinやらperl, rubyのワンライナーやら得意な人のご意見など参考にしてみたい、です。とはいえ、数式処理プラグインと同時併用は今のところできませんのでご注意を。というわけで、人柱版をここにおいておきます。とりあえず、面白いけど需要は少ないか。
 ちなみに、"calc"と打てば電卓が立ち上がります。とはいえ、そういう類のことはShellExecuteEXを使う「ラウンチャー」プラグインを別途用意してあるので、そちらを使う方が便利ですかね。



■Powered by yagm.net