Jump to content

'Google Spell Checker'


ZNez

Recommended Posts

Boas, estou a iniciar o estudo em programação através do programa python.

Estava a tentar perceber/aplicar o programa do Norvig para a google (o spell checker, mas dá-me sempre erro). Alguém sabe o que estou a fazer mal?

Obrigado.

Programa:

import re, collections

def words(text): return re.findall('[a-z]+', text.lower()) 

def train(features):
    model = collections.defaultdict(lambda: 1)
    for f in features:
        model[f] += 1
    return model

NWORDS = train(words(file('big.txt').read()))

alphabet = 'abcdefghijklmnopqrstuvwxyz'

def edits1(word):
    n = len(word)
    return set([word[0:i]+word[i+1:] for i in range(n)] +                     # deletion
               [word[0:i]+word[i+1]+word[i]+word[i+2:] for i in range(n-1)] + # transposition
               [word[0:i]+c+word[i+1:] for i in range(n) for c in alphabet] + # alteration
               [word[0:i]+c+word[i:] for i in range(n+1) for c in alphabet])  # insertion

def known_edits2(word):
    return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in NWORDS)

def known(words): return set(w for w in words if w in NWORDS)

def correct(word):
    candidates = known([word]) or known(edits1(word)) or known_edits2(word) or [word]
    return max(candidates, key=lambda w: NWORDS[w])

Erro:

C:/Python24/pythonw.exe -u  "C:/Documents and Settings/Carlos Afonso/Ambiente de trabalho/pydsc-0.2/pydsc-0.2/pydsc.py"

Traceback (most recent call last):

  File "C:/Documents and Settings/Carlos Afonso/Ambiente de trabalho/pydsc-0.2/pydsc-0.2/pydsc.py", line 75, in ?

    from enchant import checker

ImportError: No module named enchant

Link to comment
Share on other sites

Nesse caso, no traceback aparecia "import modulo". Ora vê:

>>> import dsfsdfsdf
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    import dsfsdfsdf
  File "/home/djthyrax/dsfsdfsdf.py", line 1, in <module>
    lancar_uma_exception_lulz()
NameError: name 'lancar_uma_exception_lulz' is not defined[/quote]
Isto foi no IDLE, mas num .py o resultado era o mesmo. 

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.