어떻게 하면 자연스러운 한국 주소를 만들 수 있을까? 고민하다가 이것도 사람들이 많이 사용하는 주소를 기준으로 하는게 좋을 것 같았다. 그래서 인구기준으로 한국주소를 정리 했다. 행정안전부_지역별(법정동) 성별 연령별 주민등록 인구수(https://www.data.go.kr/data/15099158/fileData.do) 데이터를 통해서 법정동(법정리) 별 인구수를 확인 할 수 있다. 이에 따라서 인구수가 적은 법정동(법정리)는 제거 했다.(전체를 포함할 경우 데이터가 너무 많아진다.)
우리가 사용하는 동 주소에는 행정동과 법정동이 있다. 경우에 따라서 행정동과 법정동 이름 자체가 다른 경우도 꽤 많다. (https://www.seoul.go.kr/seoul/autonomy_sub.do 에서 추가정보를 확인 할 수 있다. ). 그러나 가짜 데이터용을 만들면서 이런 것 까지는 신경쓰기는 힘들다. 

한국에서 주소는 시도, 시군구, 읍면동, 리 로 세분화되어있다. 시도는 특별시, 광역시, 도(경기도, 강원도...) 를 포함하는 체계이고, 시군구는 과천시, 수원시 같은 시와 부여군, 예산군 같은 군과 광진구, 성북구 같은 구를 포함하는 개념으로 경우에 따라서는 성남시 수정구까지를 하나의 구로 볼 수 있다. 읍면동은 우리가 흔히 알고 있는 주소이고, 리는 읍면에서만 사용 되는 주소 체계이다. 

한국 주소 종류는 지번주소와 도로명 주소가 있다. 도로명주소 체계를 확인해보니 도로명으로  ~대로, ~로, ~길이 있고 이 곁가지 도로에 ~대로2길 ~대로2번길   ~로 2길 ~로 2번길  형태로 되어있다.(지역에 따라서 번길을 사용하는지 길을 사용하는지에가 다르다. 두 개가 번호를 붙이는 방식이 다른 방식이라고 한다. ). 그리고 경우에 따라서 ~안길을 사용하는 경우도 있지만 이를 무시했다. 

그래서 대충 아래와 같은방식으로 가짜 주소 데이터를 만들 수 있을 것 같다.
1. 인구수에 따라서 확률적으로 지번주소(address_bunji.csv 이용)를 생성한다.
2. 인구수에 따라서 적당히 동주소를 확장한다. ( ex: 구의동  =>  구의2동, 인구수가 많을 수록 많은 큰 값의 n동이 생성대도록 한다.)
3. 인구수에 따라서 적당히 번-지를 상성한다. ( 인구수가 많으면 큰 번이 생성가능하도록 하고 지는 가능한 100보다 작게 한다. 경우에 따라서는 지가 0일 경우 번만 사용되기도 한다. )
4. address_bunji.csv에 법정동코드가 있는데 이 주소와 일치하는 도로명주소(address_road.csv 이용)를 찾아서 해당 도로명주소중 랜덤하게 선택한다.
5. address_road.csv 파일에 보면 확장형태가 있는데, 이에 따라서 도로명주소에 적당히 N확장형태를 붙여서 주소를 완성한다. ( 강원도,홍천군,가일길,번길  의 경우 가일길2번길 로 확장주소를 만들 수 있다.)
6. 추가적으로 주거 형태(아파트, 빌라, 단독주택)에 따라서 건물명이 필요할 수 있다. 이 부분을 차후 더 분석해보도록 하겠다.  

 

address_bunji.csv
0.38MB
address_road.csv
0.41MB