Tableau - WordCloud

ramramram·2022년 11월 20일
0

Tableau

목록 보기
3/3
post-thumbnail

Tableau에서 WordCloud 만들기

공기업의 정보를 담고 있는 data를 이용해, 주무기관 별 주요기능 및 역할을 wordcloud로 시각화한다.

1. preprocessing

컬럼은 각각 '기관명', '기관소개', '주무기관', '설립근거', '주요기능및역할', '기관연혁', '경영목표및전략', '기관장', '소재지'

job_info.columns = ['기관명', '기관소개', '주무기관', '설립근거', '주요기능및역할', '기관연혁', '경영목표및전략', '기관장', '소재지']

아래 코드를 사용하여 '기관소개', '주요기능및역할', '기관연혁', '경영목표및전략'에서 불용어를 제거하고, 명사만 추출한 후 리스트로 저장해주었다.

stopword 처리

import re

def clean_str(text):

    pattern = '([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)' # E-mail제거
    text = re.sub(pattern=pattern, repl='', string=text)
    pattern = '(http|ftp|https)://(?:[-\w.]|(?:%[\da-fA-F]{2}))+' # URL제거
    text = re.sub(pattern=pattern, repl='', string=text)
    pattern = '([ㄱ-ㅎㅏ-ㅣ]+)'  # 한글 자음, 모음 제거
    text = re.sub(pattern=pattern, repl='', string=text)
    pattern = '<[^>]*>'         # HTML 태그 제거
    text = re.sub(pattern=pattern, repl='', string=text)
    pattern = 'ㅇ○o'         # 
    text = re.sub(pattern=pattern, repl='', string=text)
    pattern = 'o'         # 
    text = re.sub(pattern=pattern, repl='', string=text)
    pattern = '[^\w\s\n]'         # 특수기호제거
    text = re.sub(pattern=pattern, repl='', string=text)
    text = re.sub('[-=+,#/\?:^$@*\"※~&%ㆍ!』\\‘|\[\]\<\>`\'》]','', string=text)
    text = re.sub('\n', ' ', string=text)

    return text

명사만 추출(noun)

  #텍스트 데이터를 리스트로 변환
  Data_list_2=job_info.주요기능및역할.values.tolist()

  #명사만 추출한 후 리스트로 저장
  data_word_2=[]

  for i in range(len(Data_list_2)):
      try:
          data_word_2.append(okt.nouns(Data_list_2[i]))
          
      except Exception as e:
          continue

WordCloud 시각화를 위해 '주요기능및역할'에 리스트로 저장되어있는 데이터를 1NF로 정규화해주었다.

1NF 정규화

#정규화 결과 p_paper
p_paper = pd.DataFrame(columns=['기관명', '기관소개', '주무기관', '주요기능및역할', '기관연혁', '경영목표및전략', '소재지', '시군구'])
rows = 0
#normalize to 1NF 
for index, row in job_info.iterrows():
    for token in row['주요기능및역할']:
        p_paper.loc[rows]=[row['기관명'], row['기관소개'], row['주무기관'], token, row['기관연혁'], row['경영목표및전략'], row['소재지'], row['시군구']]
        rows +=1

preprocessing result

2. visualization

index인 기관명을 countd하여 다음과 같이 필터를 설정해주었다.
(동작은 무시 가능)

색을 변경해준 후 완성해주었다.

3. result

WordCloud가 각 기관의 정보를 제대로 반영하고 있는지 파악하기 위해, 주무기관 별 결과를 확인해보았다.

1) 고용노동부

'근로자', '협력', '직업', '고용'등의 기업 및 구직관련 키워드가 나타나는 것을 확인할 수 있다.

2) 국무조정실

'성과', '연구원', '사업', '정책'등의 행정의 지휘·감독, 정책 조정에 관련된 키워드가 나타나는 것을 확인할 수 있다.

profile
Industrial Engineering / Data Science / Data analytics

0개의 댓글