[PYTHON] 100 langage de traitement knock-20 (à l'aide de pandas): lecture de données JSON

Traitement du langage 100 coups 2015 ["Chapitre 3: Expressions régulières"](http: //www.cl.ecei.tohoku) Il s'agit d'un enregistrement de 20e "Lecture de données JSON" de .ac.jp / nlp100 / # ch3). C'était une revue de ce que j'avais fait il y a plus d'un an, mais je m'en souvenais à peine. J'avais l'habitude de rechercher des expressions régulières sur Google chaque fois que j'en avais besoin, mais je me suis rendu compte que cela n'aurait aucun sens pour moi à moins que je ne les produise au moins dans des articles. Le 20ème est très facile à lire un fichier JSON en préparation pour une tâche d'expression régulière. Je charge en utilisant pandas, mais je me rends compte à nouveau de la commodité des pandas.

Lien de référence

Lien Remarques
020.Lire les données JSON.ipynb Lien GitHub du programme de réponse
100 coups de traitement du langage amateur:20 Copiez et collez la source de nombreuses pièces source
Apprenez les bases et les astuces des expressions canoniques Python à partir de zéro J'ai organisé ce que j'ai appris dans ce coup
Expression régulière HOWTO Expression régulière officielle Python - Comment faire
re ---Opération d'expression régulière Description officielle du paquet Python re

environnement

type version Contenu
OS Ubuntu18.04.01 LTS Il fonctionne virtuellement
pyenv 1.2.15 J'utilise pyenv car j'utilise parfois plusieurs environnements Python
Python 3.6.9 python3 sur pyenv.6.J'utilise 9
3.7 ou 3.Il n'y a aucune raison profonde de ne pas utiliser la série 8
Les packages sont gérés à l'aide de venv

Dans l'environnement ci-dessus, j'utilise les packages Python supplémentaires suivants. Installez simplement avec pip ordinaire.

type version
pandas 0.25.3

Chapitre 3: Expressions régulières

contenu de l'étude

En appliquant des expressions régulières à la description du balisage sur la page Wikipédia, diverses informations et connaissances peuvent être extraites.

Expressions régulières, JSON, Wikipedia, InfoBox, services web

Contenu frappé

Un fichier jawiki-country.json.gz qui exporte les articles Wikipédia au format suivant Il y a.

  • Une information d'article par ligne est stockée au format JSON --Dans chaque ligne, le nom de l'article est stocké dans la clé "titre" et le corps de l'article est stocké dans l'objet dictionnaire avec la clé "texte", et cet objet est écrit au format JSON. --Le fichier entier est compressé au format gzip

Créez un programme qui effectue le traitement suivant.

20. Lecture des données JSON

Lisez le fichier JSON de l'article Wikipedia et affichez le texte de l'article sur "UK". Dans les problèmes 21-29, exécutez sur le texte de l'article extrait ici.

Répondre

Programme de réponse [020.Read JSON data.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/03.%E6%AD%A3%E8%A6%8F%E8%A1%A8% E7% 8F% BE / 020.JSON% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 81% AE% E8% AA% AD% E3% 81% BF% E8% BE% BC% E3% 81% BF.ipynb)

from pprint import pprint

import pandas as pd

df_wiki = pd.read_json('./jawiki-country.json', lines=True)
pprint(df_wiki[(df_wiki['title'] == 'Angleterre')]['text'].values.item())

Répondre au commentaire

Le fichier JSON est lu par la fonction read_json. Vous pouvez charger le format [JSON Lines](JSON Lines) en passant True au paramètre lines.

df_wiki = pd.read_json('./jawiki-country.json', lines=True)

Le DataFrame chargé ressemble à ceci. Le nom du pays est inclus dans "title". image.png

Le résultat est sorti à la fin. J'utilise la fonction pprint parce que je voulais casser une ligne.

pprint(df_wiki[(df_wiki['title'] == 'Angleterre')]['text'].values.item())

Résultat de sortie


('{{redirect|UK}}\n'
 '{{Informations de base Pays\n'
 '|Nom abrégé=Angleterre\n'

Omission

 '[[Category:Pays souverain]]\n'
 '[[Category:Pays insulaire|Kureito Furiten]]\n'
 '[[Category:État / région créé en 1801]]')

Recommended Posts

100 langage de traitement knock-20 (à l'aide de pandas): lecture de données JSON
100 traitement du langage knock-31 (en utilisant des pandas): verbe
100 traitement du langage knock-38 (en utilisant des pandas): histogramme
100 Language Processing Knock-30 (en utilisant des pandas): lecture des résultats de l'analyse morphologique
100 Language Processing Knock-33 (en utilisant des pandas): nom sahen
100 traitement du langage knock-35 (utilisant des pandas): concaténation de nomenclature
100 Language Processing Knock-39 (en utilisant des pandas): la loi de Zipf
100 traitement de langage knock-34 (utilisant des pandas): "B of A"
100 Language Processing Knock-32 (utilisant des pandas): Prototype de verbe
Traitement de 100 langues knock-98 (en utilisant des pandas): Clustering par méthode Ward
100 traitement du langage knock-99 (à l'aide de pandas): visualisation par t-SNE
100 traitement du langage knock-95 (en utilisant des pandas): Note avec WordSimilarity-353
100 langage traitement knock-92 (utilisant Gensim): application aux données d'analogie
100 traitement du langage knock-36 (en utilisant des pandas): fréquence d'occurrence des mots
100 Language Processing Knock: Chapitre 2 Principes de base des commandes UNIX (à l'aide de pandas)
100 Language Processing Knock-83 (en utilisant des pandas): Mesure de la fréquence des mots / contextes
100 traitement du langage knock-76 (en utilisant scicit-learn): étiquetage
100 traitement du langage knock-73 (en utilisant scikit-learn): apprentissage
100 traitement du langage knock-74 (en utilisant scicit-learn): prédiction
100 Language Processing Knock-84 (en utilisant des pandas): Création d'une matrice de contexte de mots
100 langage de traitement knock-70 (en utilisant Stanford NLP): Obtention et formatage des données
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
100 traitement du langage knock-97 (en utilisant scicit-learn): clustering k-means
100 traitement du langage knock-91: Préparation des données d'analogie
100 Language Processing Knock-71 (en utilisant Stanford NLP): Stopword
100 traitements linguistiques Knock 2020 [00 ~ 39 réponse]
100 langues de traitement knock 2020 [00-79 réponse]
100 traitement du langage knock-90 (en utilisant Gensim): apprendre avec word2vec
100 Language Processing Knock 2020 Chapitre 1
100 coups de traitement du langage amateur: 17
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
100 traitement du langage knock-93 (en utilisant des pandas): calcul du taux de précision de la tâche d'analogie
100 Traitement du langage Knock-52: Stemming
100 langage de traitement knock-79 (en utilisant scikit-learn): dessin de graphe avec rappel de précision
100 Traitement du langage Knock Chapitre 1
100 traitement du langage knock-41: lecture du résultat de l'analyse des dépendances (phrase / dépendance)
100 coups de langue amateur: 07
[Pandas] Principes de base du traitement des données de date à l'aide de dt
100 Language Processing Knock 2020 Chapitre 3
100 Language Processing Knock 2020 Chapitre 2
100 traitement du langage knock-75 (en utilisant scicit-learn): poids de l'identité
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
Traitement 100 langues knock-53: Tokenisation
100 coups de traitement du langage amateur: 97
100 traitements linguistiques Knock 2020 [00 ~ 59 réponse]
100 coups de traitement du langage amateur: 67
100 traitement du langage knock-72 (en utilisant Stanford NLP): Extraction d'identité
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
100 traitement de langage knock-94 (en utilisant Gensim): calcul de similarité avec WordSimilarity-353
100 traitements linguistiques knock-37 (utilisant des pandas): Top 10 des mots les plus fréquents
100 coups de traitement du langage avec Python 2015
100 traitement du langage Knock-51: découpage de mots
100 Language Processing Knock-58: Extraction de Taple
100 Language Processing Knock-57: Analyse des dépendances
100 traitement linguistique knock-50: coupure de phrase
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
100 Language Processing Knock-25: Extraction de modèles