2012-10-17 65 views
-1

需要您的指導! 想要檢查一些文本文件是否存在針對自定義詞典的拼寫錯誤。 下面是代碼:使用自定義詞典進行拼寫檢查

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) 

但是當我打開查看後面的示例文件沒有什麼改變。我做什麼錯了?

+0

你從來沒有更新過你的'搜索文件'..什麼是使用'WordList'的? –

+0

另外,你想在你的'SearchFile'中改變什麼?你需要更具體.. –

回答

1

你在做什麼錯誤沒有明確地改變任何文件中的任何東西。

這裏的代碼一點點展示如何寫東西的文件...

fp = open(somefilepath,'w') 

這一行打開一個文件進行寫操作時,「W」告訴蟒蛇如果它創建的文件不存在,但也刪除文件的內容,如果它存在。如果您想要打開文件進行寫入並保留當前內容,請使用'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條目應該是哪個字典條目?你怎麼知道實際的更正?你有沒有嘗試過這部分劇本(畢竟它是關鍵所在,它只會禮貌)。您可以請與我們分享您在這部分的嘗試。

讓我們假設你有這樣的功能:

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

重新說明以前的觀點,如果您需要任何有意義的幫助,至少表明您至少試圖解決問題的關鍵點非常重要。

+0

Thx for comments ...想要檢查示例文本反對字典,如果有一些拼寫錯誤的單詞用字典中的單詞糾正它...這就是我想要的 – Aikin

+0

@Aikin:我更新了我的答案 – Sheena