신형 코로나 바이러스 감염자 정보의 특징을 wordcloud로 시각화해 보았다

개요


  • 신형 코로나 바이러스 (COVID-19)의 일본 감염자 정보 취득
  • mecab에서 형태소 분석
  • wordcloud로 특징 어 시각화

  • 참고



    신형 코로나 바이러스 (COVID-19) 감염자 정보



  • htps : // 코 m / 료마 / ms / 20db8cd20f1086838249
  • 감염자 정보로 간주되는 데이터 : htps : // 등 w. 기테부세 r 콘텐트 t. 코 m/sw 소이에에/2019-응코 v-그럼 팬/마s테 r/다타/레스 l ぃg 하고 싶다 l. CSV


  • config


  • config.py
  • import re
    import os
    
    ### MeCab
    POS_LIST = [10, 11, 31, 32, 34]
    POS_LIST.extend(list(range(36,50)))
    POS_LIST.extend([59, 60, 62, 67])
    STOP_WORDS = ["する", "ない", "なる", "もう", "しよ", "でき", "なっ", "くっ", "やっ", "ある", "しれ", "思う", "今日", "それ", "これ", "あれ", "どれ", "どの", "NULL", "れる", "なり", "あっ", "できる", "私"]
    RE_ALPHABET = re.compile("^[0-9a-zA-Z0-9 .,*<>]+$") # alphabet, number, space, comma or dot
    current_dir = os.getcwd()
    OUTPUT_PNG_FILE = os.path.join(current_dir, "wordcloud.png")
    
  • 전처리

  • (약)

    형태소 분석


    import MeCab
    from os import path
    from wordcloud import WordCloud
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    import re
    
    def create_mecab_list(text_list):
        mecab_list = []
        mecab = MeCab.Tagger("-Ochasen -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd") # MacOS
        mecab.parse("")
        # encoding = text.encode('utf-8')
        for text in text_list:
            node = mecab.parseToNode(text)
            while node:
                # [品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音]
                # 忙しく  形容詞,自立,*,*,形容詞・イ段,連用テ接続,忙しい,イソガシク,イソガシク
                morpheme = node.feature.split(",")[6]
                if RE_ALPHABET.match(morpheme):
                    node = node.next
                    continue
                if morpheme in STOP_WORDS:
                    node = node.next
                    continue
                if len(morpheme) > 1:
                    if node.posid in POS_LIST:
                        mecab_list.append(morpheme)
                node = node.next
        return mecab_list
    

    wordcloud


    import MeCab
    from os import path
    from wordcloud import WordCloud
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    import re
    
    def create_wordcloud(morphemes):
        # fpath = "/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf" # Ubuntu
        fpath = "/System/Library/Fonts/ヒラギノ丸ゴ ProN W4.ttc" # Mac OS X
        wordcloud = WordCloud(
            background_color="whitesmoke",
            collocations=False,
            stopwords=set(STOP_WORDS),
            max_font_size=80,
            relative_scaling=.5,
            width=800,
            height=500,
            font_path=fpath
            ).generate(morphemes)
        plt.figure()
        plt.imshow(wordcloud)
        plt.axis("off")
        wordcloud.to_file(OUTPUT_PNG_FILE)
    

    결과




  • 「여성」보다 「남성」 쪽이 감염자가 많다
  • → 「여성」보다 「남성」 쪽이 문자 사이즈가 크다

  • 「20대」가 이외에 많다
  • 「마스크」소중…

  • 기타 신형 코로나 관련 정보


  • 후생노동성
  • 신형 코로나 바이러스에 관한 Q&A:
  • htps //w w. mhlw. . jp/stf/세이사쿠에 대해/부냐/켄코_이료/덴구에_후에ゔぇr_쿠에_00001. HTML

  • 신형 코로나 바이러스 감염증에 대한 상담·진찰의 기준
  • htps //w w. mhlw. . jp / 혼텐 t / 10900000 / 000596905. pdf


  • 도쿄도
  • 신형 코로나 바이러스 감염증 대책 사이트
  • h tps : // s와 p ゔ d19. 메 t로. 가끔. lg. jp/


  • 세계의 감염자 시각화

  • htps : // 기주 b. 코 m / 그 rx 로 b / 코 ゃ d 3d
  • 지구의 htps : // 코 ゃ d3d.ぃゔぇ

  • 우버 엔지니어가 만든 대시보드
  • PC 버전: htps //w w. 아르기 s. 이 m/아 ps/오 ps다 sh보아 rd/그리고 x. HTML # / b이다 7594740fd40299423467b48에9에cf6
  • Mobile 버전: htps //w w. 아르기 s. 이 m/아 ps/오 ps다 sh보아 rd/그리고 x. HTML # / 85320 에어 5424d 펁 아


  • 좋은 웹페이지 즐겨찾기