
3つのロボット(Robot: R1, R2, R3)が有する機能(Function: F1, F2, F3)の有無を調べたいと考えています。
(1)元データのファイルが3つ(R1, R2, R3)あります。
(2)(1)の3ファイルを対比較して得た(同じ機能を意味する異なる単語を対応づけた)データのファイルが3つ(R1vsR2, R2vsR3, R1vsR3)あります。
(3)(2)の3ファイルを元に、ロボット(R1, R2, R3)の機能(F1, F2, F3)の有無(1, 0)を示した表を、最終的に得たいのです。
質問:Perlを用いて、(2)の対比較データを(3)の表データに変換にはどうすればよろしいでしょうか?
(1)元データ
R1,watch,hear,speak
R2,look,listen
R3,kiku,hanasu
(2)対比較して得たデータ
R1,R2
watch,look
hear,listen
R2,R3
listen,kiku
R1,R3
hear,kiku
speak,hanasu
(3)最終的に得たい表データ
RF,F1,F2,F3
R1, 1, 1, 1
R2, 1, 1, 0
R3, 0, 1, 1
または、(機能F1,F2,F3をそれぞれ単語watch,hear,speakで代表させて)
RF,watch,hear,speak
R1, 1, 1, 1
R2, 1, 1, 0
R3, 0, 1, 1
(補足)
以下の機能一覧の情報は未知とします。
見る F1: watch,look,miru
聞く F2: hear,listen,kiku
話す F3: speak,talk,hanasu
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
要するに, (2) のファイルから「それぞれの機能を表す単語」がわかればいい (もしくは, 個々の単語がどの機能に対応するかがわかればいい) ってことですね. グラフ理論の言葉を使えば簡単に書けるけどなぁ.
各単語を「頂点」とし, 同じ機能を表す単語同士を「辺」でむすんだグラフを考えます. これは (2) のファイルから作ることができます. このグラフ上の連結成分は「機能」を表すことになるので, R1~R3 のもつ「単語」から「機能」に変換すればいいということになります.
がんばってハッシュなんかを作れば, それほど難しくないような気がします.
この回答への補足
ありがとうございます。この問題を解くのに有用な参考文献(類似の問題が解説されている、サンプルスクリプトが掲載されている、ウェブサイトや参考書)をご存知でしたらご教授ください。
補足日時:2007/09/05 16:22ありがとうございました。このような作業(グラフ等)を行ってくれる、Perlスクリプトのサンプル、またはフリーのソフト(R等)をご存知でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
CSVが可変長の場合の検索方法
-
perl内でPHPを動かす?
-
データファイルの行を削除する
-
CGI(Perl)でWeb上から作成...
-
拡張子 ”log” と ” dat” の違い
-
ReadLineでの読み出し行を指定する
-
指定行データの取得
-
CSV出力に関して
-
検索ボックスから製品名を検索...
-
C#でCSVファイルを逐一更新したい
-
VB6.0でDB接続する際に切断時の...
-
ファイル内の日付から1週間前...
-
MATLABでのwhile文の条件について
-
csvファイル改行コードの置換に...
-
画像をバイナリデータに変換す...
-
openした後、closeしないでプロ...
-
perl で googleAPIを呼び出す...
-
2つのCSVファイルをマッチング
-
ExcelをCSV書き出す場合のシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
MATLAB グローバル変数の宣言
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
ReadLineでの読み出し行を指定する
-
JavaでCSVファイルを高速に読む...
-
VBAで巨大なファイルの途中から...
-
VB6.0でDB接続する際に切断時の...
-
Perlの変数に文字数制限(容量...
-
CSVが可変長の場合の検索方法
-
C言語でのファイルのデータ更...
-
Javaで同一のファイルを読み込...
-
perlで、後ろの行を読んで、前...
-
perl内でPHPを動かす?
-
C#でCSVファイルを逐一更新したい
-
ADOによるCSVファイルからのデ...
-
拡張子 ”log” と ” dat” の違い
-
csvファイル改行コードの置換に...
-
エディットボックスの表示方法...
おすすめ情報