Python을 사용한 텍스트 발굴(WordCloud)

개시하다


이 글은 지역 블로그의 최신 보도 200개의 제목을 웹 커튼(beautifulsoup)을 통해 얻어 텍스트 발굴을 진행한다.

컨디션

  • Windows 10 Pro
  • Python 3.6.8 (anaconda)
  • wordcloud 1.5.0
  • beautifulsoup 4.7.1
  • 웹 페이지 장식


    웹 덮어쓰기 (beautifulsoup) 에서 최신 보도 200개의 제목을 표시한 페이지 https://blog.sagafan.jp/allentry 에서 제목을 가져옵니다.
    제목은 h3 라벨로, soup을 표시합니다.find_all ("h3") 에서 모든 제목을 그룹으로 가져옵니다.
    import requests
    from bs4 import BeautifulSoup
    
    ## さがファンブログの新着記事200件の URL
    url = 'https://blog.sagafan.jp/allentry/'
    
    ## Web スクレイピングでタイトルを取得
    response = requests.get(url)
    response.encoding = response.apparent_encoding
    
    soup = BeautifulSoup(response.text, 'html.parser')
    
    title = []
    
    for i in soup.find_all('h3'):
    
        ## タイトルの先頭は HH:MM␣ なので、7行目以降をタイトルとして取得
        ## 改行コードを削除
        title.append(i.getText()[6:].replace('\n', ''))
    

    텍스트 인코딩


    wordcloud의 일본어 표시


    일본어 워드클라우드를 표시하기 위해 IPA 글꼴을 다운로드하여 작업 디렉터리에 저장합니다.
    IPA 글꼴 다운로드

    텍스트 인코딩


    제목에서 명사만 추출하여wordcloud를 만듭니다.
    from janome.tokenizer import Tokenizer
    from wordcloud import WordCloud
    
    ## 除外する単語リスト
    ## 今回は除外なし
    ignore_words = ['']
    
    ## タイトルの名詞のみをスペース区切りのテキストへ変換
    t = Tokenizer()
    
    words = []
    
    for i in title:
        tokens = t.tokenize(i)
    
        for token in tokens:
            ## 品詞を抽出
            pos = token.part_of_speech.split(',')[0]
    
            ## 品詞から名詞だけ抽出
            if pos in ['名詞']:
                ## 必要ない単語を省く
                if token.base_form not in ignore_words:
                    words.append(token.base_form)
    
    text = ' '.join(words)
    
    ## wordcloud の実行
    ## 日本語フォントを指定
    wordcloud = WordCloud(background_color='white', 
                          font_path='./IPAexfont00301/ipaexg.ttf', 
                          width=800, height=400).generate(text)
    
    ## 結果を画像に保存
    wordcloud.to_file('./wordcloud.png')
    

    wordcloud 결과



    금후


    앞으로 텍스트 발굴의 영역은 다음과 같은 내용을 배울 예정이다.
  • 공유 네트워크
  • 바탕 분석
  • word2vec를 사용한 문서의 유사도 계산
  • 좋은 웹페이지 즐겨찾기