Agile Data Science - Arricchimento dei dati

L'arricchimento dei dati si riferisce a una serie di processi utilizzati per migliorare, perfezionare e migliorare i dati grezzi. Si riferisce alla trasformazione dei dati utili (dati grezzi a informazioni utili). Il processo di arricchimento dei dati si concentra sul rendere i dati una risorsa di dati preziosa per le aziende o le imprese moderne.

Il processo di arricchimento dei dati più comune include la correzione di errori di ortografia o errori tipografici nel database attraverso l'uso di algoritmi decisionali specifici. Gli strumenti di arricchimento dei dati aggiungono informazioni utili a semplici tabelle di dati.

Considera il seguente codice per la correzione ortografica delle parole:

import re
from collections import Counter
def words(text): return re.findall(r'\w+', text.lower())
WORDS = Counter(words(open('big.txt').read()))

def P(word, N=sum(WORDS.values())):
   "Probabilities of words"
   return WORDS[word] / N
	
def correction(word):
   "Spelling correction of word"
   return max(candidates(word), key=P)
	
def candidates(word):
   "Generate possible spelling corrections for word."
   return (known([word]) or known(edits1(word)) or known(edits2(word)) or [word])
	
def known(words):
   "The subset of `words` that appear in the dictionary of WORDS."
   return set(w for w in words if w in WORDS)
	
def edits1(word):
   "All edits that are one edit away from `word`."
   letters = 'abcdefghijklmnopqrstuvwxyz'
   splits = [(word[:i], word[i:]) for i in range(len(word) + 1)]
   deletes = [L + R[1:] for L, R in splits if R]
   transposes = [L + R[1] + R[0] + R[2:] for L, R in splits if len(R)>1]
   replaces = [L + c + R[1:] for L, R in splits if R for c in letters]
   inserts = [L + c + R for L, R in splits for c in letters]
   return set(deletes + transposes + replaces + inserts)
	
def edits2(word):
   "All edits that are two edits away from `word`."
   return (e2 for e1 in edits1(word) for e2 in edits1(e1))
   print(correction('speling'))
   print(correction('korrectud'))

In questo programma, faremo corrispondere con "big.txt" che include le parole corrette. Le parole corrispondono alle parole incluse nel file di testo e stampano i risultati appropriati di conseguenza.

Produzione

Il codice sopra genererà il seguente output: