Hej!
Jag har fått komplettering på Kmom05 del 5 i marvin med kommentaren
"'dinah' är ett ord som borde ses som ett felstavat ord eftersom att det inte finns i 'words.txt' och borde varit borttaget vid uppgift 5."
Problemet är att i min fil 'words.txt' så finns 'Dinah' med. Är problemet att jag har .lower() i koden? Är det meningen att man skall skilja på ord som böjar på stor och liten bokstav?
Jag har fått komplettering på Kmom05 del 5 i marvin med kommentaren
"'dinah' är ett ord som borde ses som ett felstavat ord eftersom att det inte finns i 'words.txt' och borde varit borttaget vid uppgift 5."
Problemet är att i min fil 'words.txt' så finns 'Dinah' med. Är problemet att jag har .lower() i koden? Är det meningen att man skall skilja på ord som böjar på stor och liten bokstav?
- Kod: Markera allt
import string
punkter = str.maketrans({key:None for key in string.punctuation})
def alice_main():
"""
1: open file or default file
"""
filename = input("Enter the file name: ")
try:
if filename == (""):
file = open('alice-ch1.txt', 'r')
else:
file = open(filename)
return file
except Exception:
print("Error, try again.")
def common_exclude():
"""
4: display 7 most frequent words, exclude common-words.txt
"""
file = alice_main()
alicewords = dict()
for line in file:
words = line.translate(punkter).lower().split()
for word in words:
if word not in alicewords:
alicewords[word] = 1
else:
alicewords[word] += 1
# exclude common-words
commonfile = open('common-words.txt')
commonwords = dict()
for line2 in commonfile:
words2 = line2.translate(punkter).lower().split()
for word2 in words2:
if word2 not in commonwords:
commonwords[word2] = 1
else:
commonwords[word2] += 1
# sort words by value
lst = list()
for key, val in list(alicewords.items()):
if not key in commonwords:
lst.append((val, key))
lst.sort(reverse=True)
for key, val in lst[:7]:
print(key, val)
def misspelled_exclude():
"""
#5: display 7 most frequent words, exclude common words(common-words)
and exclude misspelled words(words)
"""
file = alice_main()
alicewords = dict()
for line in file:
words = line.translate(punkter).lower().split()
for word in words:
if word not in alicewords:
alicewords[word] = 1
else:
alicewords[word] += 1
# exclude common-words
commonfile = open('common-words.txt')
commonwords = dict()
for line2 in commonfile:
words2 = line2.translate(punkter).lower().split()
for word2 in words2:
if word2 not in commonwords:
commonwords[word2] = 1
else:
commonwords[word2] += 1
# only include correct spelled
spellfile = open('words.txt')
spellwords = dict()
for line3 in spellfile:
words3 = line3.translate(punkter).lower().split()
for word3 in words3:
if word3 not in spellwords:
spellwords[word3] = 1
else:
spellwords[word3] += 1
# sort words by value
lst = list()
for key, val in list(alicewords.items()):
if not key in commonwords:
if key in spellwords:
lst.append((val, key))
lst.sort(reverse=True)
for key, val in lst[:7]:
print(key, val)
Senast redigerad av elinhb16 02 nov 2016, 14:12, redigerad totalt 1 gång.