Python - Traitement des données non structurées
Les données qui sont déjà présentes dans un format de ligne et de colonne ou qui peuvent être facilement converties en lignes et en colonnes pour qu'elles puissent ensuite s'intégrer parfaitement dans une base de données sont appelées données structurées. Des exemples sont les fichiers CSV, TXT, XLS, etc. Ces fichiers ont un délimiteur et une largeur fixe ou variable où les valeurs manquantes sont représentées sous forme de blancs entre les délimiteurs. Mais parfois, nous obtenons des données dont les lignes ne sont pas de largeur fixe, ou ce ne sont que des fichiers HTML, image ou pdf. Ces données sont appelées données non structurées. Alors que le fichier HTML peut être manipulé en traitant les balises HTML, un flux de Twitter ou un document en texte brut d'un flux d'actualités peut, sans avoir de délimiteur, ne pas avoir de balises à gérer. Dans un tel scénario, nous utilisons différentes fonctions intégrées de diverses bibliothèques Python pour traiter le fichier.
Lecture des données
Dans l'exemple ci-dessous, nous prenons un fichier texte et lisons le fichier en séparant chacune des lignes qu'il contient. Ensuite, nous pouvons diviser la sortie en lignes et mots supplémentaires. Le fichier d'origine est un fichier texte contenant quelques paragraphes décrivant le langage python.
filename = 'path\input.txt'
with open(filename) as fn:
# Read each line
ln = fn.readline()
# Keep count of lines
lncnt = 1
while ln:
print("Line {}: {}".format(lncnt, ln.strip()))
ln = fn.readline()
lncnt += 1
Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.
Line 1: Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales.
Line 2: Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library.
Line 3: Python interpreters are available for many operating systems. CPython, the reference implementation of Python, is open source software and has a community-based development model, as do nearly all of its variant implementations. CPython is managed by the non-profit Python Software Foundation.
Comptage de la fréquence des mots
Nous pouvons compter la fréquence des mots dans le fichier en utilisant la fonction de compteur comme suit.
from collections import Counter
with open(r'pathinput2.txt') as f:
p = Counter(f.read().split())
print(p)
Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.
Counter({'and': 3, 'Python': 3, 'that': 2, 'a': 2, 'programming': 2, 'code': 1, '1991,': 1, 'is': 1, 'programming.': 1, 'dynamic': 1, 'an': 1, 'design': 1, 'in': 1, 'high-level': 1, 'management.': 1, 'features': 1, 'readability,': 1, 'van': 1, 'both': 1, 'for': 1, 'Rossum': 1, 'system': 1, 'provides': 1, 'memory': 1, 'has': 1, 'type': 1, 'enable': 1, 'Created': 1, 'philosophy': 1, 'constructs': 1, 'emphasizes': 1, 'general-purpose': 1, 'notably': 1, 'released': 1, 'significant': 1, 'Guido': 1, 'using': 1, 'interpreted': 1, 'by': 1, 'on': 1, 'language': 1, 'whitespace.': 1, 'clear': 1, 'It': 1, 'large': 1, 'small': 1, 'automatic': 1, 'scales.': 1, 'first': 1})