2017-04-26 81 views
0

我想知道是否有任何模塊/庫可用,可以修復解析到它的任何文本的外殼和標點符號。我對語法改錯不感興趣;相反,確保所有句子都以大寫字母開頭,逗號後沒有空格,「我」始終是大寫字母等等。基本上固定寫在聊天中的文字看起來是正確的。我的搜索沒有帶來任何東西,我很高興爲這個基本想法使用更強大的工具。糾正Python中文本的字符外框和標點符號

如果Python模塊/方法不存在,我猜可以用正則表達式和許多if/then語句來完成,但有些東西告訴我這不是最佳實踐?如果沒有任何可用的東西,我很樂意寫任何我需要的東西。如果能夠指導我如何解決這個問題,我將不勝感激。下面是一些例子來澄清任何含糊不清:

wheres當地的魚和薯條店? >>>當地的炸魚薯條店在哪裏?

我找不到我的眼鏡,很常見! >>>我找不到我的眼鏡,常見!

該項目的建設是合理的.. >>>該項目的範圍是完全合理的。

 

我試圖與正在糾正句子結構和寫作的保證冤屈的工作,經常在網上聊天和短信的人之間,所以我會忽略任何預測發現。也許逆轉它可能是一個有趣的挑戰!

回答

0

我想你沒有太多的選擇,然後建立一個小的解析器,並使用正確的替換函數,而不是衆多的if語句。我以此代碼爲例,但可以添加更多「規則」。你也可以創建一個帶有常見錯誤的詞典,如dict [「wheres」] =「where's」,解析句子的單詞,並檢查是否有修復。或者,您可以搜索單詞並將其替換爲對句子的修復。

def parse(s): 
    s = s.lower().replace("0","o").replace("3","e").replace("cant",r"can't").replace("wheres",r"where's").replace(" i "," I ") 
    return str(s[0].upper()) + s[1:] 

print parse("wheres the local Fish and chips shop?") 
print parse("i cant find MY glasses , common!") 
print parse("tHE scoPe of this project i is c0mpl3tely reasonable..") 

輸出:

Where's the local fish and chips shop? 
I can't find my glasses , common! 
The scope of this project is completely reasonable.. 
+0

這個相當不錯的主意,我簡直不敢相信我沒想到的吧! – Nathan

相關問題