La dernière fois, j'ai essayé d'analyser les principaux composants des données textuelles. Je veux l'essayer avec différentes données textuelles, Je voudrais contester l'analyse des composants principaux à l'aide de Livedoor News Corpus publié par Ronwitt Co., Ltd.
En tant que prétraitement, je voudrais lire le contenu du fichier texte divisé pour chaque article dans l'ordre, effectuer une analyse morphologique, puis les combiner en un seul fichier csv.
La bibliothèque d'analyse morphologique a utilisé janome.
Si vous téléchargez le fichier à partir du lien ci-dessus et le décompressez, il y a 9 dossiers sous chaque catégorie, comme it-life-hack sous le dossier texte, et les articles de cette catégorie sont stockés dans 1 unité de fichier article 1 sous chaque dossier. Ça a été.
python
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') :
#Ignorer sauf les données d'article
if p.name in ['CHANGES.txt','README.txt','LICENSE.txt']:
continue
#Ouvrez les données de l'article et analysez la morphologie avec janome ⇒ Conserver dans la liste sous forme de 1 mot par ligne
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)])
#Convertir la liste en bloc de données
df = pd.DataFrame(np.array(l))
#Donnez le nom de la colonne
df.columns = ['Classification des articles','nom de fichier','mot','Partie']
#Trame de données de sortie CSV
df.to_csv('c:/temp/livedoor_corpus.csv', index=False)
Le résultat de sortie ressemble à ceci.