#この記事について
前回、テキストデータの主成分分析に挑戦したのですが、
もっと別のテキストデータでやってみたいなということで、
株式会社ロンウイット様が公開されているLivedoorニュースコーパスを使って主成分分析に挑戦したいと思います。
その前処理として、1記事毎に分かれているテキストファイルの内容を順次読み込んで、形態素解析した後、1つのcsvファイルにまとめるということをやっていきたいと思います。
形態素解析ライブラリは、janomeを使用しました。
#参考
#Livedoorニュースコーパスのディレクトリ構成
上記のリンクよりファイルをダウンロードし、解凍すると、textフォルダ配下に、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)