水道屋がRubyを活用する(その2)
その1での手順で求めた固有ベクトルは、対応する部品と共に値が大きい順に並べると、関連のある(同じ見積書の中に出てくる可能性の高い)部品が集まります。うちのデータで行ったものはこんな感じになりました。固有ベクトルは行列の次元数だけありますが、とりあえず一部を示します。
部品名 | 値 |
---|---|
メカニカル継手工 | 0.440263 |
塩ビ管用鋳鉄継手スリーブ工 | 0.337004 |
埋設表示シート工 | 0.325982 |
菅明示テープ工 | 0.325237 |
仕切弁室築造工 | 0.318161 |
フランジ継手工 | 0.285637 |
仕切弁設置工 | 0.275278 |
塩ビ管布設工 | 0.218837 |
鋳鉄管布設工 | 0.168255 |
ポリエチレンスリーブ工 | 0.167788 |
離脱防止金具取付工 | 0.139654 |
消火栓・空気弁室築造工 | 0.135662 |
鋳鉄管切断工 | 0.128218 |
NS継手工 | 0.120586 |
ゴム輪形塩ビ管継手工 | 0.104157 |
これは、道路などに埋設されている配水管の工事の労務費がまとまっています。
部品名 | 値 |
---|---|
フランジ継手材 | 0.496939 |
硬質塩化ビニル管 | 0.297529 |
ソフトシール仕切弁 | 0.296968 |
空洞ブロック | 0.243058 |
鋳鉄製継手VSジョイント片落 | 0.206172 |
仕切弁筺1型 | 0.198184 |
硬質塩化ビニル管(ゴムリング付き) | 0.189774 |
鋳鉄製継手チーズ三受T字管 | 0.178762 |
鋳鉄製継手VC片フランジ短管 | 0.172702 |
鋳鉄製継手ベンド | 0.163757 |
鋳鉄製継手離脱防止金具 | 0.163221 |
ボール式補修弁 | 0.159338 |
消火栓・空気弁筺 | 0.147844 |
これは、配水管の工事の材料費がまとまっています。
部品名 | 値 |
---|---|
機械埋戻工 | 0.763639 |
残土処理工 | 0.267258 |
舗装切断工(アスファルト) | 0.256090 |
機械掘削 | 0.241483 |
Asガラ処理工 | 0.225705 |
舗装版直後掘削積込工As・Co舗装バックホウ施工 | 0.211365 |
路盤工 | 0.205821 |
仮復旧工 | 0.158050 |
仮表層工人力施工 | 0.155073 |
人力埋戻工 | 0.070800 |
人力掘削 | 0.069813 |
舗装版破砕掘削積込工t=16cm以上 | 0.059926 |
舗装切断工 | 0.058485 |
機械掘削工 | 0.049504 |
これは、土工(掘ったり埋め戻したりの労務費・砂などの材料費)がまとまっています。
こんな感じで、各固有ベクトルが見積書の典型的なパターンになっています。あとは、新しく入力した見積書がどの固有ベクトルに近いか調べて、その中の値の大きな重要なメンバーが無いときは「必要じゃないですか?」と聞くとミスが減るかもしれないなーと思います。
次回は、話を細かくして見積書からどうやってデータを取り出すかを書きたいと思います。見積書はExcelで書いているのでwin32oleを使ってデータを抽出しています。これが、Rubyを使っている大きな理由の1つですとかそんな話です。