The dictionary need to add every word in SpellingMistakes and the line number but it only adds the l

Posted by Will Boomsight on Stack Overflow See other posts from Stack Overflow or by Will Boomsight
Published on 2010-05-24T02:58:24Z Indexed on 2010/05/24 3:00 UTC
Read the original article Hit count: 292

Filed under:

modules

import sys

import string

Importing and reading the files form the Command Prompt

Document = open(sys.argv[1],"r")

Document = open('Wc.txt', 'r')

Document = Document.read().lower()

Dictionary = open(sys.argv[2],"r")

Dictionary = open('Dict.txt', 'r')

Dictionary = Dictionary.read()

def Format(Infile):

for ch in string.punctuation:

   Infile = Infile.replace(ch, "")

for no in string.digits:

    Infile = Infile.replace(no, " ")

Infile = Infile.lower()

return(Infile)

def Corrections(Infile, DictWords):

Misspelled = set([])

Infile = Infile.split()

DictWords = DictWords.splitlines()

for word in Infile:

    if word not in DictWords:

        Misspelled.add(word)

Misspelled = sorted(Misspelled)

return (Misspelled)   

def Linecheck(Infile,ErrorWords):

Infile = Infile.split()

lineno = 0

Noset = list()

for line in Infile:

    lineno += 1

    line = line.split()

    for word in line:

        if word == ErrorWords:

            Noset.append(lineno)

sorted(Noset)

return(Noset)

def addkey(error,linenum):

Nodict = {}

for line in linenum:

    Nodict.setdefault(error,[]).append(linenum)

    return Nodict

FormatDoc = Format(Document)

SpellingMistakes = Corrections(FormatDoc,Dictionary)

alp = str(SpellingMistakes)

for word in SpellingMistakes:

    nSet = str(Linecheck(FormatDoc,word))

    nSet = nSet.split()

    linelist = addkey(word, nSet)

print(linelist)

#

#    for word in Nodict.keys():

#             Nodict[word].append(line)

Prints each incorrect word on a new line

© Stack Overflow or respective owner

Related posts about python