Python - Elaborazione di dati non strutturati
I dati che sono già presenti in un formato riga e colonna o che possono essere facilmente convertiti in righe e colonne in modo che in seguito possano adattarsi perfettamente a un database sono noti come dati strutturati. Esempi sono file CSV, TXT, XLS, ecc. Questi file hanno un delimitatore e larghezza fissa o variabile in cui i valori mancanti sono rappresentati come spazi tra i delimitatori. Ma a volte otteniamo dati in cui le linee non hanno una larghezza fissa o sono solo file HTML, immagine o pdf. Tali dati sono noti come dati non strutturati. Mentre il file HTML può essere gestito elaborando i tag HTML, un feed da Twitter o un documento di testo normale da un feed di notizie può non avere tag da gestire senza un delimitatore. In tale scenario utilizziamo diverse funzioni integrate da varie librerie Python per elaborare il file.
Lettura dei dati
Nell'esempio seguente prendiamo un file di testo e leggiamo il file separando ciascuna delle righe in esso. Successivamente possiamo dividere l'output in ulteriori righe e parole. Il file originale è un file di testo contenente alcuni paragrafi che descrivono il linguaggio 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
Quando eseguiamo il codice precedente, produce il seguente risultato.
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.
Conteggio della frequenza delle parole
Possiamo contare la frequenza delle parole nel file utilizzando la funzione contatore come segue.
from collections import Counter
with open(r'pathinput2.txt') as f:
p = Counter(f.read().split())
print(p)
Quando eseguiamo il codice precedente, produce il seguente risultato.
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})