Livedoor 뉴스 코퍼스에서 주성분 분석 - 이전 준비 -

이 기사에 대하여



지난번 , 텍스트 데이터의 주성분 분석에 도전했는데,
좀 더 다른 텍스트 데이터로 해보고 싶다는 것으로,
주식회사 론위트님이 공개되고 있다 Livedoor 뉴스 코퍼스 를 사용해 주성분 분석에 도전하고 싶습니다.

그 전처리로서, 1기사마다 나뉘어져 있는 텍스트 파일의 내용을 순차적으로 읽어들여, 형태소 해석한 후, 1개의 csv 파일에 정리한다고 하는 것을 해 나가고 싶습니다.

형태소 분석 라이브러리는 janome을 사용했습니다.

참고


  • Livedoor 뉴스 코퍼스

  • Livedoor 뉴스 코퍼스의 디렉토리 구성



    위의 링크에서 파일을 다운로드하고 압축을 풀면 텍스트 폴더 아래에 it-life-hack이라는 분류별로 나뉘어진 9개의 폴더가 있으며, 각 폴더 아래에 해당 분류의 기사가 1기사 1파일 단위로 저장 되었습니다.

    전처리 프로그램


    import pandas as pd
    import numpy as np
    import pathlib
    import glob
    from janome.tokenizer import Tokenizer
    tnz = Tokenizer()
    
    pth = pathlib.Path('c:/temp/text')
    
    l = []
    for p in pth.glob('**/*.txt') :
        # 記事データ以外はスキップ
        if p.name in ['CHANGES.txt','README.txt','LICENSE.txt']:
            continue
    
        # 記事データを開き、janomeで形態素解析⇒1行1単語の形式でリストに保持
        with open(p,'r',encoding='utf-8-sig') as f :
            l.extend([[p.parent.name, p.name, t.surface, t.part_of_speech] for s in f for t in tnz.tokenize(s)])
    
    # リストをデータフレームに変換
    df = pd.DataFrame(np.array(l))
    
    # 列名を付与
    df.columns = ['記事分類','ファイル名','単語','品詞']
    
    # データフレームをcsv出力
    df.to_csv('c:/temp/livedoor_corpus.csv', index=False)
    
    

    출력 결과



    출력 결과는 이런 느낌입니다.

    좋은 웹페이지 즐겨찾기