&size(14){[[../ろぎ>ろぎ]]};

*Pajek形式データいじりツール [#t7060657]

必要なツールがあれば,できるだけ作っていきたいので,コメント欄あたりに書き込むなりしてください.

今のところ,Mailinglist Archive形式のMLログサイトから関係を抽出するプログラム作りたい.

#contents

----

#article
**mboxからメール送信回数をカウントするプログラム [#e8036a02]
> (2007-11-16 (金) 18:22:10)~
~
&attachref(mbox2mailcount.pl);~
&attachref(mbox2mailcount.bat);~
~
入力:~
mbox形式のメールアーカイブ~
~
出力:~
mboxに含まれるメールの数~
フォーマット:ファイル名	メール数	ユニークメール送信者数(参加者数)~
~
使用法:~
perl mbox2mailcount.pl [filename1, filename2, ...]~

//
- Kaffe用に作ったので,他のプロジェクトで使うときは改良しないといけないかも. --  &new{2007-11-16 (金) 18:23:50};
- これはmboxファイルからメール送信数をカウントするプログラム..netからカウントしたい場合は下のほうのcountMailNum.plを使ってください. --  &new{2007-11-16 (金) 18:27:18};

#comment

**.net ファイルの整形 [#sb65ca08]
> (2007-06-01 (金) 12:24:08)~
~
&ref(fixNetFile.pl);~
~
mbox から生成した .net ファイルを修正する
~
入力:~
変換したい.netファイル~
~
出力:~
整形済み.netファイル~
~
処理内容~
1. アドレス名とエッジのソート (&renumbering)~
2. 0エッジの削除 (&remove0arcs)~
3. 自己ループの削除 (&removeLoops)~


//

#comment

**2つのネットワークファイルを同一ノード名でマージする [#a64bf2e1]
> (2007-05-08 (火) 09:41:35)~
~
&ref(mergeNetworksByName.pl);~
~
入力:~
2つのネットワークファイル~
~
出力:~
.pajファイル(マージ済ネットワーク+パーティション情報)~
パーティションの意味は以下のとおり~
 1:data1.netのみに属する~
 2:data2.netのみに属する~
 3:両方に属する~
~
 ↑これって逆じゃない?~
 1:data2.netのみに属する~
 2:data1.netのみに属する~
 3:両方に属する~

~ 

使用法:~
perl mergeNetworksByName.pl data1.net data2.net~

//

#comment

**.netファイルをノード名でソート [#ccd22a57]
> (2007-05-08 (火) 09:32:46)~
~
生ファイルの視認性向上のためのツール~
&ref(renumbering.pl);~
~
入力:~
変換したい.netファイル~
~
出力:~
ソート済み.netファイル~
~

//

#comment

**mbox形式→Pajek形式への変換プログラム(シュリンクデータを元に作成する) [#q5e27a08]
> (2007-01-12 (金) 09:41:02)~
~
仕様はgRewCluTw.plと同じですが,メールアドレスの新旧対応表を元に生成します.~
~
&ref(gRewCluTwSr.pl);~

//
-シュリンクされたアドレス一覧テキストと,新旧対応テキストが必要です.プログラム中でファイル名を指定します. --  &new{2007-01-12 (金) 09:42:17};

#comment

**新旧アドレス対応表を用いて,.netファイルの同一人物をシュリンクする [#k034e546]
> (2007-01-12 (金) 07:17:51)~
~
emailDupShrinker.plを用いて生成された新旧のEmailアドレス対応関係を用いて,シュリンクされた.netファイルを変換する.~
~
&ref(networkShrinker.pl);~
~
入力:~
変換したい.netファイルと,networkShrinker.plを用いて生成した新旧アドレス対応表~
~
出力:~
シュリンクされた.netファイル~
~
使用法:~
コマンドラインで、以下のコマンドをたたく(要 Perl 5 以上)~
perl networkShrinker.pl data.net email_translate.txt~
-引数~
--data.net			シュリンクしたい.netファイル~
--email_translate.txt		アドレス対応表~

//

#comment

**メールアドレス一覧から,同じ人のアドレスっぽいのを除去する [#ue88168a]
> (2007-01-12 (金) 07:13:54)~
~
プログラム:~
&ref(emailDupShrinker.pl);~
~
Email一覧から,@以前の文字列が(大文字小文字を無視して)同じであれば同一人物と判断し,最新のアドレスへの変換表を吐き出す.~
~
入力:~
Emailアドレス一覧(標準入力)~
~
出力:~
旧-新が対応付けられたemail関係リスト~
~
使用法:~
コマンドラインで、以下のコマンドをたたく(要 Perl 5 以上)~
perl emailDupShrinker.pl < email_list.txt~

//

#comment

**複数の.netファイル→1つの.pajファイルにマージするプログラム [#a373f2f8]
> (2006-12-29 (金) 04:51:37)~
~
プログラム:~
&ref(merge.pl);~
~
merge.txtの例:~
&ref(merge.txt);~
~
時系列で変化を見るためには,複数の.netファイルをPajekで読み込まなければいけませんが,100個とか読み込むのは手間過ぎるので,単一の.pajファイルにすることで一気に読み込むことができます.~
# ただ,マクロとか使うなら,そっちでもできるので,このプログラムの意味があまりなくなります...~
~
入力:~
マージしたい複数の.netファイル.merge.txtに順番にファイル名を書いておく.~
出力ファイル名は,プログラム中の$filenameという変数で指定しておく.~
~
出力:~
マージされた.pajファイル.~

//

#comment

**特定の人物の次数推移を吐き出すプログラム [#ge11d0e4]
> (2006-12-29 (金) 04:47:07)~
~
プログラム:~
&ref(degreecount.pl);~
~
ノード情報ファイルの例:~
&ref(degreecount.txt);~
~
実行例:~
perl degreecount.pl 10~
ノード番号10番の人の次数推移を表示する.~
~
入力:~
引数に,表示したいノードのノード番号を与える.~
degreecount.txtには,推移を見たい期間の.netファイルのリストを書いておく.~
~
出力:~
degreecount.txtのファイルそれぞれについて出次数をカウントしたリスト.~

//

#comment

**入次数,出次数,次数を全ノードについて計算するプログラム [#kc6e3656]
> (2006-12-29 (金) 04:40:20)~
~
プログラム:~
&ref(mailcount.pl);~
~
実行例:~
perl mailcount.pl~
~
入力:~
プログラム内で,$filenameという変数に,測定したい.net形式ファイルを直接指定する~
~
出力:~
countFrom_〜.txt,countTo_〜.txt,countAll_〜.txtの3ファイル.~
それぞれ,全ノードにおける出次数,入次数,次数を多い順にソートして出力する.~

//

#comment

**メール送信回数カウントプログラム [#j9cb6ceb]
> (2006-12-29 (金) 04:31:16)~
~
プログラム:~
&ref(countMailNum.pl);~
~
実行例:~
perl countMailNum.pl sample.net~
~
単一の.netファイル内に記述されている,メールの送信回数を合計するプログラム.~
.netファイルは月ごとになってるので,月ごとの推移とかが見れると思う.~

//
- これは.netファイルからメール送信数をカウントするプログラム.mboxからカウントしたい場合は上のほうのmbox2mailcount.plを使ってください. --  &new{2007-11-16 (金) 18:25:57};

#comment

**mbox形式→Pajek形式への変換プログラム(ノード情報をあらかじめ与えておく用) [#a3228979]
> (2006-12-29 (金) 04:26:43)~
~
プログラム:~
&ref(gRewCluTw.pl);~
~
allnode.txtの例:~
&ref(allnode.txt);~
~
便利なバッチファイル:~
&ref(rMAwCluTw.bat); … 90日窓,30日ごとの.netファイルを吐き出す例~
~
入力:~
引数で与えられたmboxファイル形式のファイル(複数可)~~
あらかじめ,ノード情報をallnode.txtというファイル名でおいておく必要がある(これは,下の単体用変換プログラムで全期間の関係をマージして出力された.net形式から手作業で抽出してください)~
あと,プログラム内の $allnodecountという変数に,ノード数を書いておかないと,ちゃんと動かないです.
~
出力:~
上記のファイルをマージして得たレスの関係を,Pajekの.net形式と.clu形式で吐き出す(ファイル名に+3が付加される)~

//

#comment

**mbox形式→Pajek形式への変換プログラム(単体用) [#x5ff0203]
> (2006-12-29 (金) 04:20:22)~
~
プログラム:~
&ref(getRelationWithCluster.pl);~
~
便利なバッチファイル:~
&ref(runMergeAllWithCluster_all.bat); … 全期間をマージして吐き出す例~
&ref(runMergeAllWithCluster.bat); … 90日窓,30日ごとの.netファイルを吐き出す例~
~
実行例:~
perl getRelationWithCluster.pl 199503 199504 199505~
~
入力:~
引数で与えられたmboxファイル形式のファイル(複数可)~
~
出力:~
上記のファイルをマージして得たレスの関係を,Pajekの.net形式と.clu形式で吐き出す

//

#comment

**リスト生成の補助プログラム [#sb05438f]
> (2006-12-29 (金) 03:06:29)~
~
&ref(expander.pl);~
~
[1-5]みたいな値を引数に与えることで,それを展開したリストが吐き出されます.~
ファイル一覧を作るときに,『[1995-2006]年[01-12]月』みたいなのを投げれ~
ば,ファイル名一覧とかがサクサク生成できそうです.~
投げ方は,こんな感じです.↓~
~
perl expander.pl [1995-2006]年[01-12]月~
~
上記の出力例:~
1995年01月~
1995年02月~
1995年03月~
・・・~
1995年12月~
1996年01月~
1996年02月~
・・・~
2006年12月~

//

#comment


*コメント [#p2185552]

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS