AI를 활용한 창원시 치안지도 서비스 - (4) 지역, 키워드 도출 결과 병합 & 창원 구별 top 5 키워드 도출

Vincent·2023년 3월 25일
0

Tools

  • Google colab

주요 코드 분석

키워드 도출 결과와 지역 도출 결과를 불러와서 기사내용을 key로 해서 Inner Join한다.

keywordregion = pd.merge(region, keyword, left_on='기사내용', right_on='기사내용', how='inner')
for i in range(0,len(keywordregion)):
  keywordregion['keyword'][i] = ast.literal_eval(keywordregion['keyword'][i])
keywordregion

지역별로 기사 할당하기 위해 explode 메서드 사용

explode = keywordregion.explode('지역분류')
explode = explode.drop('Unnamed: 0',axis=1)

#창원 5구만 추출
changwon = explode[explode['지역분류'].str.contains('마산회원구|의창구|성산구|마산합포구|진해구')]

이제 구별 Top5 키워드를 도출한다. 아래는 의창구 Top5 키워드 도출 과정이다.

#의창구 top 5 키워드
changwon_euichang = changwon[changwon['지역분류']=='의창구']
changwon_euichang = changwon_euichang['keyword'].tolist()
changwon_euichang_sum = sum(changwon_euichang, [])
from collections import Counter
result = Counter(changwon_euichang_sum)
changwon_euichang_result = str(result.most_common(5))
#창원시 5구 지역분류, 키워드 데이터프레임
changwon_result = pd.DataFrame([changwon_euichang_result,changwon_masanhappo_result,changwon_masanhoewon_result,changwon_jinhae_result,changwon_sungsan_result])
for i in range(0,len(changwon_result)):
  changwon_result[0][i] = ast.literal_eval(changwon_result[0][i])
changwon_result = changwon_result.rename(columns={0:'keyword'})

#URL주소 획득 위해 기사내용 중복 제거한 후 인덱스 재정렬
changwon = changwon.drop_duplicates(subset=['기사내용'],ignore_index=True)
lst = []
for k in range(0,len(changwon)):
  for i in range(0,5):
    for j in range(0,5):
      if changwon_result['keyword'][i][j][0] in changwon['keyword'][k]:
        lst.append(changwon['기사URL'][k])
lst = list(set(lst))
lst = pd.DataFrame(lst)
lst = lst.rename(columns={0:'기사URL'})
title_url = pd.merge(changwon,lst,left_on='기사URL',right_on='기사URL',how='inner')
title_url = title_url.drop(['기사내용','keyword'],axis=1)

최종적인 결과물은 이런식으로 만들어진다.

결과물을 활용하여 구성한 화면이다.

profile
Frontend & Artificial Intelligence

0개의 댓글