使用自定义词典进行拼写检查

时间:2012-10-17 10:50:32

标签: python spell-checking

需要你的指导! 想要检查一些文本文件是否存在针对自定义词典的任何拼写错误。 这是代码:

Dictionary=set(open("dictionary.txt").read().split())
print Dictionary

SearchFile = open(input("sample.txt"))
WordList = set()     

for line in SearchFile:
    line = line.strip()
    if line not in Dictionary:
        WordList.add(line)
print(WordList)

但是当我打开并检查样本文件时没有任何改变。我做错了什么?

1 个答案:

答案 0 :(得分:1)

你做错了什么并没有明确改变任何文件中的任何内容。

这里有一些代码来展示如何将文件写入文件......

fp = open(somefilepath,'w')

这一行打开一个文件进行写入,'w'告诉python创建文件(如果它不存在),但如果文件确实存在,也会删除该文件的内容。如果要打开文件进行写入并保留当前内容,请改用“a”。 'a'是追加。

fp.write(stuff)

将变量'stuff'中的任何内容写入文件。

希望这会有所帮助。有关您问题的更具体的代码,请告诉我们您要写入文件的确切内容。

此外,这里有一些文档可以帮助您更好地理解文件主题:http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files

编辑:但你没有改变任何东西!

在您的脚本结束时,您已经完成了这项工作:

1. Dictionary is a set containing all acceptable words
2. WordList is a set containing all not acceptable lines 
3. You have read to the end of SearchFile 

如果我正确理解您的问题,您现在要做的是:

4. find out which Disctionary word each line stored in Wordlist should be
5. re-write SearchFile with the offending lines replaced.

如果这是正确的,你打算如何确定哪个WordList条目应该是哪个Dictionary条目?你怎么知道实际的修正?你有没有尝试过这部分剧本(毕竟这是关键所在。它只是礼貌的)。您能否与我们分享您对此部分的尝试。

让我们假设你有这个功能:

def magic(line,dictionary):
    """
    this takes a line to be checked, and a set of acceptable words.
    outputs what line is meant to be.
    PLEASE tell us your approach to this bit

    """
    if line in dictionary:
        return line
    ...do stuff to find out which word is being mis spelt, return that word

Dictionary=set(open("dictionary.txt").read().split())
SearchFile = open("sample.txt",'r')

result_text = ''
for line in SearchFile:   
    result_text += magic(line.strip(),Dictionary)    #add the correct line to the result we want to save
    result_text += '\n'

SearchFile = open("sample.txt",'w')
SearchFile.write(result_text)      # here we actually make some changes

如果您还没有考虑如何找到错误拼写行的实际字典值,请尝试这样做:http://norvig.com/spell-correct.html

如果您需要任何有意义的帮助,重要的是要表明您至少尝试解决问题的关键。