まえし/コミュニティ媒介性計算プログラム
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[まえし]]
*共通注意事項 [#pff9ee93]
netファイルならびにpajファイルの命名規則は↓の通りです.~
※ ***には年月(6桁)が入ります.命名規則に従っていない場合...
-開発者サブコミュニティ(略記:dev) ⇒ dev_***.net~
-ユーザサブコミュニティ(略記:user) ⇒ user_***.net~
-バグ報告者サブコミュニティ(略記:bug) ⇒ bug_***.net~
-2つないし3つのサブコミュニティをマージしたもの(略記:mer...
また,Partitionに関しては,↓の通りに統一します.~
-開発者 ⇒ Partition 1~
-ユーザ ⇒ Partition 2~
-アンドマン ⇒ Partition 3~
*提案指標(コミュニティ媒介性)の求め方 [#f6b24289]
-★Step1.
>mboxから複数のメールアドレスを利用している人物を抽出して...
-Step2.
>複数のメールアドレスを所有している人(ex.Joshua)のメール...
※この処理では,mboxを上書きせずtxt形式に変換します.次のS...
-Step3.
>getRelationWithCluster.plを用いて,Step2で処理したmboxか...
※netファイルを作成した後,↑の共通注意事項にある命名規則に...
-Step4.
>mergeNetworksByName_v2.plを用いて,開発者とユーザの2つの...
-Step5.
>makeEachDegreePajekMacro.pl,makeMergeBetweennessPajekMa...
(ノード重み付きコミュニティ媒介性を求める際にサブコミュニ...
また,開発者からユーザへの情報伝達の度合い(?)を評価したい...
&attachref(image of flow.gif);
-Step6.
>Pajekでマクロファイルを読み込ませて各中心性を計算する.~
-Step7.
>metricsWithNoWgt_Fvalue.pl,metricsWithEdgeWgt_Fvalue.pl...
--NoWgtCB_Fvalue(重みなしコミュニティ媒介性)
--EdgeWgtCB_Fvalue(エッジ重み付きコミュニティ媒介性)
--NodeWgtCB_Fvalue(ノード重み付きコミュニティ媒介性)
※ここには修論で用いたコミュニティ媒介性(調和平均version)...
-Step8.
>各期間毎に,参加者のメールアドレスと各中心性の値(媒介中...
※ここで作成したCSVファイルは,Rを使ってグラフ等を作成する...
-Step9(おまけ).
>各中心性
*各プログラムの説明 [#ec2b0d46]
↑の2〜6の工程(net,pajファイルの作成ならびに中心性の値の計...
***mboxからnetファイル(3ヶ月分)の作成 [#of0d4fc2]
&attachref(getRelationWithCluster.pl); ← 修正済(修正・...
>入力:mboxファイル
>>3ヶ月分なら3つのmboxファイルが必要~
e.g.) perl getRelationWithCluster.pl 200007 200008 200009~
~
>※200007や20008といった引数はmboxのファイル名です.~
>出力:netファイル~
>>↑の入力例だと200007.netというnetファイルができる~
~
>batファイルの例~
-perl getRelationWithCluster.pl 2000101 200102 200103~
-perl getRelationWithCluster.pl 2000102 200103 200104~
・~
・~
・~
>★修正・追加した点~
1.mboxからメールアドレスを抽出するための条件の追加. ...
2.スパム対策の偽造("@"が" at "になっている)部分の解除(...
3.↓のルール1,2で同一人物を特定.(大文字は小文字に統一)~
-ルール1:メールアドレスが完全一致ならば同一人物~
-ルール2:メールアドレスの@以前が一致 && From行にある名...
>4.ノード0問題の解決~
5.自己ループの削除 (Pajekで処理してもよかったけどめんど...
***2つのnetファイルをマージするプログラム [#of0d4fc2]
&attachref(mergeNetworksByName_v2.pl); <- by まつしん~
>入力:マージしたい2つのNetファイル~
>> e.g) perl mergeNetworksByName_v2.pl data1_***.net data...
>出力:Pajファイル(merge_***.paj)~
>※注意事項~
>>割り当てられるパーティション番号は引数の順番(↑の例だと...
Partition 1 : data1_***.net~
Partition 2 : data2_***.net~
Partition 3 : data1_***.netとdata2_***.netに共通して出現...
~
>batファイルの例~
-perl mergeNetworksByName_v2.pl dev_200101.net user_20010...
-perl mergeNetworksByName_v2.pl dev_200102.net user_20010...
・~
・~
・~
***中心性を計算するためのマクロファイル作成プログラム [#o...
&attachref(makeEachDegreePajekMacro.pl); <- Eachはサブ...
&attachref(makeMergeBetweennessPajekMacro.pl); <-Mergeは...
>※個人的に作ったものなので他の人が使うときは,netファイル...
>入力: perl makeEachDegreePajekMacro.pl ○○ △△ □□ ××~
-○○ = OSSコミュニティ名 e.g.) apache,gimp,netscape など~
-△△ = サブコミュ二ティ名 e.g.) dev,user, merge など~
-□□ = 期間(開始年月) : e.g.) 2000年7月からなら200007~
-×× = 期間(終了年月) : e.g.) 2007年5月で終了なら200705~
>※引数には↑に示す通り,OSSコミュニティ名,サブコミュ二テ...
>出力:中心性を計算するためのマクロファイル(↑の例は次数中...
***コミュニティ媒介性を計算するためのプログラム [#of0d4fc2]
重みなしコミュニティ媒介性 : &attachref(metricsWithNoW...
エッジ重み付きコミュニティ媒介性 : &attachref(metricsW...
ノード重み付きコミュニティ媒介性 : &attachref(metricsW...
>入力: perl metricsWithNoWgt_Fvalue.pl merge_***.paj dev_...
>出力: コミュニティ媒介性(有向)の値~
>>1To2は開発者⇒ユーザへの媒介度合いであり,2To1はユーザ⇒...
>Partitionの割り当ては手動で変更することも可能です.(各プ...
↑の例では,subCommunity_1(dev) = 1, subCommunity_2(user) ...
--$subCommunity_1 = 1;~
--$subCommunity_2 = 2;~
--$andman = 3;~
>もし,dev_***.netとuser_***.netを入れ替えるなら,~
--$subCommunity_1 = 2;~
--$subCommunity_2 = 1;~
--$andman = 3;~
>※defaultでは,subCommunity_1 = 1(dev), subCommunity_2 = ...
~
>batファイルの例 ※ノード重みなし(NoWgt)の場合~
-perl metricsWithNoWgt_Fvalue.pl merge_200101.paj dev_200...
-perl metricsWithNoWgt_Fvalue.pl merge_200102.paj dev_200...
・~
・~
・~
>batファイルの例 ※エッジ重み付き(EdgeWgt)の場合~
>↑のmetricsWithNoWgt_Fvalue.plの部分をmetricsWithEdgWgt_F...
>batファイルの例 ※NodeWgtの場合~
-perl metricsWithNodeWgt_Fvalue.pl merge_200101.paj dev_2...
-perl metricsWithNodeWgt_Fvalue.pl merge_200102.paj dev_2...
・~
・~
・~
>※NodeWgtは,中心性の値が必要になるので,netファイル(subC...
補足プログラム : &attachref(mergeEachDirection.pl);~
>※各コミュニティ媒介性を計算するプログラムでは,1To2(dev⇒...
この補足プログラムは,1To2と2To1のそれぞれの媒介度合いの...
***アンドマンのメール送信回数カウントプログラム(伊原研究...
&attachref(countMailNum4Andman.pl);~
>アンドマン同士のメッセージのやりとりが開発者コミュニティ...
>入力: mergeしたpajファイルと2つのnetファイル~
>>e.g.) perl countMailNum4Andman.pl merge_***.paj data1_*...
>出力:それぞれのサブコミュニティ参加者へのアンドマンのメ...
>>e.g.) andman⇒subCommunity_1の参加者へのメール送信総数~
andman⇒subCommunity_2の参加者への送信総数~
andman⇒subCommunity_1&2の参加者への送信総数
>同様に,プログラムの350行目(?)以降をコメントアウトすれば...
ちょっと改良すればアンドマン個人個人の送信回数を求めるこ...
※3-coordinator(3つのサブコミュニティに属する人のメール回...
***おまけ(同一人物判定用のサブプログラムたち) [#x77c369e]
getRelationWithCluster.plでは,同一人物を判定するためのル...
-ルール3:From行の名前が完全一致 && メールアドレスが異な...
目的: Joshua問題を含め,Andmanの取りこぼしを軽減する~
対象者: 以下の条件に該当する参加者 ※同一サブコミュニテ...
~
-条件1:全ての期間を通じて1度でもAndmanになったことがある...
-条件2:Andmanとしては判断されていないが,devとuserのサブ...
>
条件1の場合~
>手順1:全期間を通じて,mboxから参加者の情報(From行の名前...
手順2:抽出した参加者の情報一覧からルール3に該当する人の...
手順3:***で全期間のmerge_***.pajを用いてPartition=3の人(...
手順4:手順2,3で得られたそれぞれの一覧をもとに,***を使っ...
手順5:気合で調べる(42人分)~
条件2の場合~
>手順1:全期間を通じて,それぞれのサブコミュニティ毎にmbo...
手順2:抽出した参加者の情報一覧をもとに,それぞれのサブコ...
手順4:条件1の処理で得られたAndmanの一覧をもとに,Andman...
手順5:気合で調べる(???人分)~
以下は,↑の処理を行うための補足プログラムたち~
&attachref(getParticipantsIdentifier.pl);~
>各月毎にmboxからFrom行の名前とメールアドレスだけを抽出し...
&attachref(mergeText.pl);~
>↑の処理で得られたListをマージする(全期間分 または,全...
&attachref(makeMailListByNameIdentifier.pl);~
>↑でマージしたListをもとに,参加者が利用している複数のメ...
&attachref(correctAndman.pl);~
>全期間において1度でもAndmanになったことがある人のListを...
&attachref(extractAndmanByName.pl);~
>makeMailListByNameIdentifier.plで作成した参加者が利用し...
終了行:
[[まえし]]
*共通注意事項 [#pff9ee93]
netファイルならびにpajファイルの命名規則は↓の通りです.~
※ ***には年月(6桁)が入ります.命名規則に従っていない場合...
-開発者サブコミュニティ(略記:dev) ⇒ dev_***.net~
-ユーザサブコミュニティ(略記:user) ⇒ user_***.net~
-バグ報告者サブコミュニティ(略記:bug) ⇒ bug_***.net~
-2つないし3つのサブコミュニティをマージしたもの(略記:mer...
また,Partitionに関しては,↓の通りに統一します.~
-開発者 ⇒ Partition 1~
-ユーザ ⇒ Partition 2~
-アンドマン ⇒ Partition 3~
*提案指標(コミュニティ媒介性)の求め方 [#f6b24289]
-★Step1.
>mboxから複数のメールアドレスを利用している人物を抽出して...
-Step2.
>複数のメールアドレスを所有している人(ex.Joshua)のメール...
※この処理では,mboxを上書きせずtxt形式に変換します.次のS...
-Step3.
>getRelationWithCluster.plを用いて,Step2で処理したmboxか...
※netファイルを作成した後,↑の共通注意事項にある命名規則に...
-Step4.
>mergeNetworksByName_v2.plを用いて,開発者とユーザの2つの...
-Step5.
>makeEachDegreePajekMacro.pl,makeMergeBetweennessPajekMa...
(ノード重み付きコミュニティ媒介性を求める際にサブコミュニ...
また,開発者からユーザへの情報伝達の度合い(?)を評価したい...
&attachref(image of flow.gif);
-Step6.
>Pajekでマクロファイルを読み込ませて各中心性を計算する.~
-Step7.
>metricsWithNoWgt_Fvalue.pl,metricsWithEdgeWgt_Fvalue.pl...
--NoWgtCB_Fvalue(重みなしコミュニティ媒介性)
--EdgeWgtCB_Fvalue(エッジ重み付きコミュニティ媒介性)
--NodeWgtCB_Fvalue(ノード重み付きコミュニティ媒介性)
※ここには修論で用いたコミュニティ媒介性(調和平均version)...
-Step8.
>各期間毎に,参加者のメールアドレスと各中心性の値(媒介中...
※ここで作成したCSVファイルは,Rを使ってグラフ等を作成する...
-Step9(おまけ).
>各中心性
*各プログラムの説明 [#ec2b0d46]
↑の2〜6の工程(net,pajファイルの作成ならびに中心性の値の計...
***mboxからnetファイル(3ヶ月分)の作成 [#of0d4fc2]
&attachref(getRelationWithCluster.pl); ← 修正済(修正・...
>入力:mboxファイル
>>3ヶ月分なら3つのmboxファイルが必要~
e.g.) perl getRelationWithCluster.pl 200007 200008 200009~
~
>※200007や20008といった引数はmboxのファイル名です.~
>出力:netファイル~
>>↑の入力例だと200007.netというnetファイルができる~
~
>batファイルの例~
-perl getRelationWithCluster.pl 2000101 200102 200103~
-perl getRelationWithCluster.pl 2000102 200103 200104~
・~
・~
・~
>★修正・追加した点~
1.mboxからメールアドレスを抽出するための条件の追加. ...
2.スパム対策の偽造("@"が" at "になっている)部分の解除(...
3.↓のルール1,2で同一人物を特定.(大文字は小文字に統一)~
-ルール1:メールアドレスが完全一致ならば同一人物~
-ルール2:メールアドレスの@以前が一致 && From行にある名...
>4.ノード0問題の解決~
5.自己ループの削除 (Pajekで処理してもよかったけどめんど...
***2つのnetファイルをマージするプログラム [#of0d4fc2]
&attachref(mergeNetworksByName_v2.pl); <- by まつしん~
>入力:マージしたい2つのNetファイル~
>> e.g) perl mergeNetworksByName_v2.pl data1_***.net data...
>出力:Pajファイル(merge_***.paj)~
>※注意事項~
>>割り当てられるパーティション番号は引数の順番(↑の例だと...
Partition 1 : data1_***.net~
Partition 2 : data2_***.net~
Partition 3 : data1_***.netとdata2_***.netに共通して出現...
~
>batファイルの例~
-perl mergeNetworksByName_v2.pl dev_200101.net user_20010...
-perl mergeNetworksByName_v2.pl dev_200102.net user_20010...
・~
・~
・~
***中心性を計算するためのマクロファイル作成プログラム [#o...
&attachref(makeEachDegreePajekMacro.pl); <- Eachはサブ...
&attachref(makeMergeBetweennessPajekMacro.pl); <-Mergeは...
>※個人的に作ったものなので他の人が使うときは,netファイル...
>入力: perl makeEachDegreePajekMacro.pl ○○ △△ □□ ××~
-○○ = OSSコミュニティ名 e.g.) apache,gimp,netscape など~
-△△ = サブコミュ二ティ名 e.g.) dev,user, merge など~
-□□ = 期間(開始年月) : e.g.) 2000年7月からなら200007~
-×× = 期間(終了年月) : e.g.) 2007年5月で終了なら200705~
>※引数には↑に示す通り,OSSコミュニティ名,サブコミュ二テ...
>出力:中心性を計算するためのマクロファイル(↑の例は次数中...
***コミュニティ媒介性を計算するためのプログラム [#of0d4fc2]
重みなしコミュニティ媒介性 : &attachref(metricsWithNoW...
エッジ重み付きコミュニティ媒介性 : &attachref(metricsW...
ノード重み付きコミュニティ媒介性 : &attachref(metricsW...
>入力: perl metricsWithNoWgt_Fvalue.pl merge_***.paj dev_...
>出力: コミュニティ媒介性(有向)の値~
>>1To2は開発者⇒ユーザへの媒介度合いであり,2To1はユーザ⇒...
>Partitionの割り当ては手動で変更することも可能です.(各プ...
↑の例では,subCommunity_1(dev) = 1, subCommunity_2(user) ...
--$subCommunity_1 = 1;~
--$subCommunity_2 = 2;~
--$andman = 3;~
>もし,dev_***.netとuser_***.netを入れ替えるなら,~
--$subCommunity_1 = 2;~
--$subCommunity_2 = 1;~
--$andman = 3;~
>※defaultでは,subCommunity_1 = 1(dev), subCommunity_2 = ...
~
>batファイルの例 ※ノード重みなし(NoWgt)の場合~
-perl metricsWithNoWgt_Fvalue.pl merge_200101.paj dev_200...
-perl metricsWithNoWgt_Fvalue.pl merge_200102.paj dev_200...
・~
・~
・~
>batファイルの例 ※エッジ重み付き(EdgeWgt)の場合~
>↑のmetricsWithNoWgt_Fvalue.plの部分をmetricsWithEdgWgt_F...
>batファイルの例 ※NodeWgtの場合~
-perl metricsWithNodeWgt_Fvalue.pl merge_200101.paj dev_2...
-perl metricsWithNodeWgt_Fvalue.pl merge_200102.paj dev_2...
・~
・~
・~
>※NodeWgtは,中心性の値が必要になるので,netファイル(subC...
補足プログラム : &attachref(mergeEachDirection.pl);~
>※各コミュニティ媒介性を計算するプログラムでは,1To2(dev⇒...
この補足プログラムは,1To2と2To1のそれぞれの媒介度合いの...
***アンドマンのメール送信回数カウントプログラム(伊原研究...
&attachref(countMailNum4Andman.pl);~
>アンドマン同士のメッセージのやりとりが開発者コミュニティ...
>入力: mergeしたpajファイルと2つのnetファイル~
>>e.g.) perl countMailNum4Andman.pl merge_***.paj data1_*...
>出力:それぞれのサブコミュニティ参加者へのアンドマンのメ...
>>e.g.) andman⇒subCommunity_1の参加者へのメール送信総数~
andman⇒subCommunity_2の参加者への送信総数~
andman⇒subCommunity_1&2の参加者への送信総数
>同様に,プログラムの350行目(?)以降をコメントアウトすれば...
ちょっと改良すればアンドマン個人個人の送信回数を求めるこ...
※3-coordinator(3つのサブコミュニティに属する人のメール回...
***おまけ(同一人物判定用のサブプログラムたち) [#x77c369e]
getRelationWithCluster.plでは,同一人物を判定するためのル...
-ルール3:From行の名前が完全一致 && メールアドレスが異な...
目的: Joshua問題を含め,Andmanの取りこぼしを軽減する~
対象者: 以下の条件に該当する参加者 ※同一サブコミュニテ...
~
-条件1:全ての期間を通じて1度でもAndmanになったことがある...
-条件2:Andmanとしては判断されていないが,devとuserのサブ...
>
条件1の場合~
>手順1:全期間を通じて,mboxから参加者の情報(From行の名前...
手順2:抽出した参加者の情報一覧からルール3に該当する人の...
手順3:***で全期間のmerge_***.pajを用いてPartition=3の人(...
手順4:手順2,3で得られたそれぞれの一覧をもとに,***を使っ...
手順5:気合で調べる(42人分)~
条件2の場合~
>手順1:全期間を通じて,それぞれのサブコミュニティ毎にmbo...
手順2:抽出した参加者の情報一覧をもとに,それぞれのサブコ...
手順4:条件1の処理で得られたAndmanの一覧をもとに,Andman...
手順5:気合で調べる(???人分)~
以下は,↑の処理を行うための補足プログラムたち~
&attachref(getParticipantsIdentifier.pl);~
>各月毎にmboxからFrom行の名前とメールアドレスだけを抽出し...
&attachref(mergeText.pl);~
>↑の処理で得られたListをマージする(全期間分 または,全...
&attachref(makeMailListByNameIdentifier.pl);~
>↑でマージしたListをもとに,参加者が利用している複数のメ...
&attachref(correctAndman.pl);~
>全期間において1度でもAndmanになったことがある人のListを...
&attachref(extractAndmanByName.pl);~
>makeMailListByNameIdentifier.plで作成した参加者が利用し...
ページ名: