본문 바로가기

Project13

[마켓센싱] 추가 스크래핑, 워드 클라우드 불용어 처리 시 소문자 처리, 기사 시각화 결과 비교 230619 월 추가 스크래핑 월, 분기, 년별로 볼 수 있으면 좋을 것 같아, 기존에 6개월치의 스크래핑을 5개년까지 범위를 늘렸다. 워드클라우드 시, 소문자 vs 대문자 nltk 라이브러리를 사용해서 불용어처리를 하려면, nltk의 stop words가 소문자로 구성되어 있기 때문에, 불용어처리할 내용들을 소문자처리 하는 것이 좋다. 하지만 다루고 있는 뉴스 기사들은 대문자인 경우가 많아서, 소문자 처리 했을 경우 기존의 내용과 달라지지 않을까 고민이 되어 비교를 해보았다. 시각화 결과, 소문자나 대문자나 워드 클라우드 시각화 시 출력되는 결과물이 비슷했고, 소문자 처리한 경우가 좀 더 불필요한 단어를 많이 제거해주었기 때문에 앞으로 소문자처리를 해주기로 하였다. 5개년 기사 제목, 요약, 본문 비교.. 2023. 6. 20.
[마켓센싱] 스크래핑 내용 EDA 및 피드백 230608 목 스크래핑 한 내용 EDA(워드 클라우드, 빈도 시각화) [뉴스 제목 분석] 1. 불용어 처리를 하지 않은 경우 2. 소문자(nltk+팀원 불용어), 소문자(nltk+팀원 불용+volvo 등 단어 제거) 3. 대문자(nltk+팀원 불용어), 대문자(nltk+팀원 불용+volvo 등 단어 제거) [뉴스 본문 분석] 소문자(nltk+팀원 불용어+volvo 등 단어 제거) 기획 팀원에게 전달한 의문 사항 등장 단어와 빈도수, 워드 클라우드 시각화로 트렌드가 보이는가? 워드 클라우드 시각화를 하는 이유가 새로 등장하는 장비에 대한 것도 눈으로 확인하고 싶은 것 같은데, 그게 맞을까? 그렇다면, 장비명을 눈에 띄게 할 수 있는 방법이 있을까? Q2, Q4, L120H와 같이 새로 등장한 장비는 신기.. 2023. 6. 20.
[CBB 공모전] 입지 추천 방법 고민 과정 TIL 230530 화. 통계와 지도 시각화 비교 통계 상관분석(카이제곱검정, 크레마V)한 것과 지도 시각화 비교 → 일치하지 않는 것이 보여서 다음 스텝이 고민이 됨. 230531 수. 입지 추천 방법 고민 휴리스틱 P-Median 알고리즘, Set Covering, MCLP 등이 자주 등장 → MCLP를 위해서는 Geopandas 등을 다운 받아야 함 → 보통 https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely 에서 GDAL, Pyproj, Fiona, Shapely, Geopandas를 받아서 설치하더라. → 그런데, 해당 사이트가 당시에는 PageNotFoundError여서(지금은 정상 접속됨) 구글에서 검색을 했다. 각각 다운을 받으려고 보니, whl이 아니고 .. 2023. 6. 20.
[CBB 공모전] 주소와 주소의 상관관계(범주형 변수) 230526 금 1. 필요한 것 흡연구역과 담배꽁초투기지역, 담배꽁초쓰레기통의 상관관계를 볼 수 있는 방법은 없을까 => 주소와 주소의 상관관계를 구하는 방법은 없을까 2. 참고 자료 범주형 변수의 경우 상관관계 구하는 방법들. 데이터 자료 형태에 따른 상관분석 방법 : https://eunhye-zz.tistory.com/29 크래머V 레이블 인코딩 + 히트맵 참고 https://blog.naver.com/kthchunjae/222290570091 카이제곱검정과 크래머V 코드 참고 블로그 3. 진행 위경도를 도로명주소로 변환 → 도로명주소에서 도로명만 추출 ex) 서울특별시 마포구 마포대로 38 에서 마포대로만 추출 → 흡연구역과 투기지역, 쓰레기통의 추출한 도로명 간 상관관계가 있을지 카이제곱검정 및.. 2023. 6. 12.
[CBB 공모전] 카카오맵 API 활용, 위경도 좌표를 주소로 변환 230525 목 💡 영등포구 위경도 좌표를 활용하여 주소 변환 영등포구의 흡연시설은 위도, 경도는 존재하지만 주소컬럼은 존재하지 않는다. 위경도→주소 변환 하고 싶을 때 사용한 코드(역지오코딩) 참고한 블로그 : https://parkgihyeon.github.io/ 카카오맵API를 검색하면, https://apis.map.kakao.com/web/guide/ 해당 사이트가 나오고, 이 사이트는 자바스크립트 API이므로 파이썬 코드를 사용하는 나로서는 이해하기가 쉽지 않다. 파이썬 코드들은 아래 주소의 로컬 > REST API 페이지를 보는게 이해에 도움이 된다. 카카오 developers의 로컬 > REST API 를 사용해서, 주소 검색, 좌표로 주소 변환, 좌표계 변환 등을 할 수 있다.(스크린샷의.. 2023. 6. 7.
[CBB 공모전] 전처리 시 예외 케이스, 데이터셋별 다른 기간에 대한 고민 230524 수 1. 중복 데이터, 또는 제거해야 할 데이터가 삭제가 안됨 drop() 할 때, inplace=True를 해야지 원본에 반영됨 2. 주소의 근사값으로 변경 위경도 매칭 시 오류가 발생하는 주소들이 존재한다. 그러한 주소들은 위치를 확인 후, 근사값으로 변경 ex) [마포구] 석양집의 주소는 ‘토정로 317’, 설치 세부 위치인 띠녹지 앞은 ‘토정로 35길 12’이지만, 해당 주소로는 위경도가 나오지 않아 석양집의 주소로 변경 ex) [영등포구] 로데오거리 → 로데오가 위치한 '문래동3가'로 ex) [영등포구] 49길 3-3 → 49길 2 3. 그럼에도 불구하고, 근사값으로 변경하기 애매한 경우가 발생 폐업 : 데이터 제거 아파트 단지로 변경 : 데이터 제거 메디컬 센터 이름으로만 되어 있.. 2023. 6. 7.
[CBB 공모전] ParserError 230524 수 ParserError 발생 원인 파악 파일을 불러올 때부터 encoding 등을 설정해줘도 ParserError가 발생한다. 해당 문제 발생 이유에 대해 참고한 블로그 : https://pylife.tistory.com/entry/PythonPandas-ParserError-Error-tokenizing-data 블로그의 방법을 참고하여, csv 모듈을 사용해 데이터를 불러와보면, 6번 인덱스처럼 주소의 컬럼이 구분자로 잘못 인식이 되어 컬럼에 들어갈 내용이 밀린 것을 볼 수 있다. file_path = 'data\쓰레기통\서울특별시 마포구 용강동 상점가 담배꽁초수거함 설치 현황_20220805.csv' f = open(file_path, 'rt') reader = csv.reader(f.. 2023. 6. 7.
[CBB 공모전](트러블슈팅) 카카오맵 API 활용, 데이터셋 주소와 위경도 매치 230523 화 💡 목표 구별 담배꽁초 쓰레기통 데이터셋에 존재하는 주소에 위경도를 매치하여, 지도 시각화 구글 API 보다 카카오 API의 위경도가 더 정확하게 나온다는 팀원의 정보에 카카오맵 API 활용 예정 ❗ 어려움 1 - 강남구 쓰레기통 설치 주소 형태 ex) 압구정로 14길 6(신사동 548-4) 도로명 주소 or 지번 주소 하나만 필요하지만, 설치주소 컬럼에 도로명주소(지번주소), 도로명주소가 혼재되어 있음 괄호('(')를 기준으로 split 후 0번째 값을 가져오도록 apply와 lambda 활용 주소 내 '앞'과 '맞은편'이 포함 공백(' ')을 기준으로 split 반복문 내 [-1] 인덱스 값이 '맞은편' 또는 '앞'이라면 [:-1]까지만 가져오도록 함. 주소 내 시와 구가 포함되어 있.. 2023. 5. 24.
[마켓센싱] 셀레니움으로 다른 경쟁사 홈페이지 스크래핑(더보기 클릭, 새 탭으로 열기, id값 변화 오류들) 230515, 230516 해당 홈페이지는 페이지 번호로 이동하는 이전 홈페이지와 다르게, 더보기(see more)를 클릭하면 추가로 15개씩 기사가 출력되는 형식의 홈페이지이다. 💡 스크래핑 방향 설정 - 필요한 날짜까지 한 번에 더보기를 클릭해서 기사목록을 펼쳐둔다 > 기사를 클릭해 들어간다 > 본문 스크래핑 > 원래 페이지로 돌아옴 - is_displayed()를 활용해 코드 작성 완료 # 더보기 버튼 클릭하는 요소 more_botton = driver.find_element(By.CSS_SELECTOR, '#newsloadmore') for i in range(1, 5): # 4번 더보기 클릭하도록 설정 time.sleep(3) if more_botton.is_displayed(): more_bo.. 2023. 5. 17.