Python - przetwarzanie nieustrukturyzowanych danych
Dane, które są już obecne w formacie wierszy i kolumn lub które można łatwo przekonwertować na wiersze i kolumny, aby później dobrze pasowały do bazy danych, są nazywane danymi strukturalnymi. Przykładami są pliki CSV, TXT, XLS itp. Pliki te mają separator i stałą lub zmienną szerokość, gdzie brakujące wartości są reprezentowane jako spacje między separatorami. Ale czasami otrzymujemy dane, w których linie nie mają stałej szerokości lub są to tylko pliki HTML, obrazy lub pliki PDF. Takie dane nazywane są danymi nieustrukturyzowanymi. Podczas gdy plik HTML może być obsługiwany przez przetwarzanie znaczników HTML, kanał z Twittera lub zwykły dokument tekstowy ze źródła wiadomości może bez separatora nie mieć tagów do obsługi. W takim scenariuszu używamy różnych wbudowanych funkcji z różnych bibliotek Pythona do przetwarzania pliku.
Czytanie danych
W poniższym przykładzie bierzemy plik tekstowy i czytamy plik oddzielający każdą z zawartych w nim linii. Następnie możemy podzielić wynik na dalsze wiersze i słowa. Oryginalny plik jest plikiem tekstowym zawierającym kilka akapitów opisujących język 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
Kiedy wykonujemy powyższy kod, daje on następujący wynik.
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.
Liczenie częstotliwości słów
Możemy policzyć częstotliwość słów w pliku za pomocą funkcji licznika w następujący sposób.
from collections import Counter
with open(r'pathinput2.txt') as f:
p = Counter(f.read().split())
print(p)
Kiedy wykonujemy powyższy kod, daje on następujący wynik.
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})