2012年6月27日水曜日

2012年06月27日 講義087日目

2012年06月27日
講義087日目
------------------------------1H------------------------------
★職業体験
●マッピングテーブルの作成
・m_stationのline_nameを抽出
SELECT line_name FROM m_station GROUP BY line_name;
・master_ensen_abstractのensen_nameを抽出
SELECT ensen_name FROM master_ensen_abstract GROUP BY ensen_name
------------------------------2H------------------------------
●マッピングテーブルの作成
・whileで回さないと配列にできないことをすっかり忘れていた件
$sql = "SELECT ensen_name FROM master_ensen_abstract GROUP BY ensen_name";
$result =mysql_query($sql);
$row = mysql_fetch_array($result);

while($row = mysql_fetch_array($result)){
    $sql_master_ensen_abstractEnsen_name[] =$row;
}

foreach($m_stationLine_name as $k => $v){
    foreach($master_ensen_abstractEnsen_name as $k2 => $v2){
        if($k == $k2){
            $ensen[] = $k;
        }else{
            $ensen2[] = $k
        }
    }
}
------------------------------3H------------------------------
●マッピングテーブルの作成
foreach($arr_master_ensen_abstractEnsen_name as $k2 => $v2){
    $flg = 0;
    foreach($arr_m_stationLine_name as $k => $v){
        if($v == $v2){
            $arr_ensen[$v] = $v2;
            $flg = 1;
        }
    }
    if($flg != 1){
        $arr_notmach_ensen[] = $v2;
    }
}
------------------------------4H------------------------------
●マッピングテーブルの作成
・similar_text()を使ってみた
foreach($arr_notmach_ensen as $k => $v){
    $flg = 0;
    foreach($arr_m_stationLine_name as $k2 => $v2){
        $c = similar_text($v, $v2, $percent);
        if($percent > 70){
            echo $v." と ".$v2." は ".intval($percent)."%一致します".$c."文字一致します<br>";
            $arr_ensen2[$v2] = $v;
            $flg = 1;
        }
    }
        if($flg != 1){
            $arr_notmach2_ensen[] = $v;
        }
    }
    print_r($arr_ensen2);
------------------------------5H------------------------------
●マッピングテーブルの作成
・マッピングに必要な沿線の総数→81件
・完全一致させるて抽出の結果→14件
・similar_text()を使用して抽出の結果
80%→36件
75%→44件 ほぼ大体間違えてない(気がする)
70%→56件 ほとんどマッチする、間違った結果もいくつか含まれた
65%→85件 なんだか微妙な結果に 重複が目に余る
60%→完全につかいものにならない結果に→数えるまでもない
------------------------------6H------------------------------
●インポートのプログラムを作成する
・目的:物件情報のcsv内のデータを
          沿線マッピングテーブル
          住所テーブル
          出力フォーマット
        を元にして、指定されたフォーマットに書き換えてcsvで出力するプログラムを作成する
・使用するファイル
  元となるcsvファイル、日々異なる内容のcsvを得る
  出力するcsvのフォーマット
  住所一覧のテーブル
●作業手順
・物件情報のcsvを読み込み、内容を出力用に書き換えてcsvで吐き出すロジックを作成する
●注意点
・csvを読み込んだだけでは文字化けしてる可能性がある
  ソース内で文字コードを変換する
  CentOS上で実施してるならexec関数でnkfコマンドを実行するなどして対処
・住所コードや沿線・駅コードに、実在しないデータが存在した場合は、その物件は処理しない
  (その際、エラーメッセージを出したり、ログに書き込むなどすると良い)
・出力ファイルに書き込む際にはflock関数を使って排他ロックする
・可能なら
    出力されるレコードの
    address_idには、「例)学園東町~」のデータを含む11桁の数字とする
    block_numberには、所在地詳細_非表示部のみが入る
  難しいなら、所在地名称と所在地詳細_非表示を合わせた文章をblock_numberカラムに入れる
-----------------------------memo------------------------------

0 件のコメント:

コメントを投稿