Agile Data Science - Data Enrichment

O enriquecimento de dados se refere a uma gama de processos usados ​​para aprimorar, refinar e melhorar os dados brutos. Refere-se à transformação de dados úteis (dados brutos em informações úteis). O processo de enriquecimento de dados se concentra em tornar os dados um ativo de dados valioso para os negócios ou empresas modernas.

O processo de enriquecimento de dados mais comum inclui a correção de erros ortográficos ou tipográficos no banco de dados por meio do uso de algoritmos de decisão específicos. As ferramentas de enriquecimento de dados adicionam informações úteis a tabelas de dados simples.

Considere o seguinte código para correção ortográfica de palavras -

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'))

Neste programa, iremos corresponder com “big.txt” que inclui palavras corrigidas. As palavras correspondem às palavras incluídas no arquivo de texto e imprimem os resultados apropriados de acordo.

Resultado

O código acima irá gerar a seguinte saída -