2017-04-26 65 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

相关问题