在python中创建自动更正和单词建议程序

时间:2014-10-20 01:58:46

标签: python-3.x

def autocorrect(word):
    Break_Word   = sorted(word)
    Sorted_Word  = ''.join(Break_Word)
    return Sorted_Word

user_input = ""

while (user_input == ""):
 user_input = input("key in word you wish to enter: ")

user_word = autocorrect(user_input).replace(' ', '')




with open('big.txt') as myFile:
    for word in myFile:

        NewWord       = str(word.replace(' ', ''))
        Break_Word2  = sorted(NewWord.lower())
        Sorted_Word2 = ''.join(Break_Word2)
        if (Sorted_Word2 == user_word):
            print("The word",user_input,"exist in the dictionary")

基本上当我在“big.txt”中有一个正确拼写单词的字典时,如果我从用户输入和字典中得到相似的字样,我会打印出一行

我在排序之后比较两个字符串

但是我无法执行

if (Sorted_Word2 == user_word):
            print("The word",user_input,"exist in the dictionary")

当我尝试使用其他字符串(例如

)的硬编码时
  if ("a" == "a"):
            print("The word",user_input,"exist in the dictionary")

它奏效了。我的代码有什么问题?如何比较文件中的两个字符串?

1 个答案:

答案 0 :(得分:1)

这是什么意思?它会抛出异常吗?然后,如果是这样,发布...

  

但是我无法执行

行      

if(Sorted_Word2 == user_word):               print(“单词”,user_input,“存在于字典中”)

因为我可以运行您的程序版本,结果如​​预期。

def autocorrect(word):
    Break_Word   = sorted(word)
    Sorted_Word  = ''.join(Break_Word)
    return Sorted_Word

user_input = ""

#while (user_input == ""):
user_input = raw_input("key in word you wish to enter: ").lower()

user_word = autocorrect(user_input).replace(' ', '')
print ("user word '{0}'".format(user_word))


for word in ["mike", "matt", "bob", "philanderer"]:

    NewWord       = str(word.replace(' ', ''))
    Break_Word2  = sorted(NewWord.lower())
    Sorted_Word2 = ''.join(Break_Word2)
    if (Sorted_Word2 == user_word):
        print("The word",user_input,"exist in the dictionary")
  

要输入的关键词:druge   用户词'degru'   字典中没有“druge”这个词

     

要输入的关键词:迈克   用户词'eikm'   ('词','迈克','存在于词典中')

此外,我不知道所有这些“自动更正”的东西在做什么。您似乎需要做的就是搜索搜索词实例的单词列表。对搜索词中的字符进行“排序”无效。