3. Traitement du langage naturel avec Python 1-2. Comment créer un corpus: Aozora Bunko

** 1. Récupérez le fichier et extrayez uniquement le texte **

⑴ Importation de divers modules

import re
import zipfile
import urllib.request
import os.path
import glob

⑵ Obtenir le chemin du fichier

Ici, le matériel est "Galaxy Railroad Night" de Kenji Miyazawa.

URL = 'https://www.aozora.gr.jp/cards/000081/files/43737_ruby_19028.zip'

⑶ Méthode pour obtenir / décompresser le fichier zip

def download(URL):
    zip_file = re.split(r'/', URL)[-1] #➀
    urllib.request.urlretrieve(URL, zip_file) #➁
    dir = os.path.splitext(zip_file)[0] #➂

    with zipfile.ZipFile(zip_file) as zip_object: #➃
        zip_object.extractall(dir) #➄

    os.remove(zip_file) #➅

    path = os.path.join(dir,'*.txt') #➆
    list = glob.glob(path) #➇
    return list[0] #➈

** 1) Téléchargez le fichier zip **

** 2) Décompressez et enregistrez le fichier zip **

** 3) Obtenez le chemin du fichier enregistré **

⑷ Méthode pour lire le fichier et extraire le corps

def convert(download_text):
    data = open(download_text, 'rb').read() #➀
    text = data.decode('shift_jis') #➁

    #Extraction de texte
    text = re.split(r'\-{5,}', text)[2] #➂  
    text = re.split(r'Livre du bas:', text)[0] #➃
    text = re.split(r'[#Nouvelle page]', text)[0] #➄

    #Suppression du bruit
    text = re.sub(r'《.+?》', '', text) #➅
    text = re.sub(r'[#.+?]', '', text) #➆
    text = re.sub(r'|', '', text) #➇
    text = re.sub(r'\r\n', '', text) #➈
    text = re.sub(r'\u3000', '', text) #➉   

    return text

** 1) Lire le fichier **

** 2) Extraire le texte avec re.split () **

** 3) Suppression (remplacement) du bruit par re.sub () **

⑸ Acquisition de fichiers et extraction de texte

download_file = download(URL)
text = convert(download_file)

print(text)

image.png

** 2. «Écriture séparée» par MeCab **

⑹ Installation de MeCab, division

!apt install aptitude
!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
!pip install mecab-python3==0.7
import MeCab
mecab = MeCab.Tagger("-Owakati")
text = mecab.parse(text)

print(text)

image.png

separated_text = text.split()
print(separated_text)

image.png

** 3. Si vous téléchargez sur votre PC local **

⑺ Créez un fichier et transférez-le sur votre PC local

with open('output.txt', 'w') as f:
    f.write(text)
from google.colab import files

files.download('output.txt')

image.png

Recommended Posts

3. Traitement du langage naturel avec Python 1-2. Comment créer un corpus: Aozora Bunko
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
3. Traitement du langage naturel par Python 2-1. Réseau de co-occurrence
3. Traitement du langage naturel par Python 1-1. Word N-gram
Résumez comment prétraiter le texte (traitement du langage naturel) avec l'api tf.data.Dataset
Comment lire un fichier CSV avec Python 2/3
3. Traitement du langage naturel par Python 2-2. Réseau de co-occurrence [mecab-ipadic-NEologd]
Comment faire un traitement parallèle multicœur avec python
Python: traitement du langage naturel
Comment créer un fichier JSON en Python
[Python] J'ai joué avec le traitement du langage naturel ~ transformers ~
Étapes pour créer un bot Twitter avec Python
J'écrirai une explication détaillée à mort en résolvant 100 traitements de langage naturel Knock 2020 avec Python
Procédure de création d'application multi-plateforme avec kivy
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer
Comment convertir / restaurer une chaîne avec [] en python
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Comment créer un sous-menu avec le plug-in [Blender]
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
Créer un environnement pour le traitement du langage naturel avec Python
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
100 coups de traitement du langage avec Python 2015
Créer un répertoire avec python
[Traitement du langage naturel / PNL] Comment effectuer facilement une traduction arrière par traduction automatique avec Python
[Pratique] Créez une application Watson avec Python! # 3 [Classification du langage naturel]
Comment installer NPI + envoyer un message à la ligne avec python
Comment convertir un tableau en dictionnaire avec Python [Application]
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
Comment créer un maillage de flux autour d'un cylindre avec SnappyHexMesh
[Python Kivy] Comment créer une simple fenêtre pop-up
[Python] Essayez de classer les boutiques de ramen par traitement du langage naturel
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Créer un message correspondant à la localisation avec la chaîne de traduction python
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Étudiez le traitement du langage naturel avec Kikagaku
Python: comment utiliser async avec
100 traitements de langage avec Python
[Traitement du langage naturel] Prétraitement avec le japonais
Comment créer un package Conda
Créez un environnement virtuel avec Python!
100 traitements de langage avec Python (chapitre 3)
Comment créer un pont virtuel
Comment démarrer avec Python
Comment créer un Dockerfile (basique)
Comment calculer la date avec python
5 façons de créer un chatbot Python
Se préparer à démarrer le traitement du langage naturel