Python:用读入文件替换字符错误

标签 python spam bayesian

目标:我只想去掉逗号,因为这是唯一一个会搞砸我的(类(class)必需的)文件解析的贝叶斯分析(即单词,2,4)而不是说(即单词,,2)的字符,4)

因此,我目前正在尝试从安然在线公共(public)语料库中读取文本文件形式的电子邮件,并构建贝叶斯垃圾邮件过滤器。

我注意到,在尝试操作存在的字符串时,读取某些文件会引发错误。我完全知道其中一些文件包含病毒,因此某些字符的编码可能无效。但是,我尝试简单地替换字符串中的逗号,但收到以下错误:

UnicodeDecodeError:“ascii”编解码器无法解码位置 1169 中的字节 0xc1:序号不在范围内(128)

我已经尝试了该论坛提供的所有内容,并且到处搜索解决方案,例如:

with open(file+file_path_stings[i],'r') as filehandle:
        words = str(filehandle.read())
        words = words.replace(',','')
        words = words.split()

我也尝试了很多正则表达式...这是其中一个版本:

with open(file+file_path_stings[i],'r') as filehandle:
        words = str(filehandle.read())
        words = re.sub(',','',words)
        words = words.split()

现在,我可以简单地正则表达式一个只允许 A-Za-z 通过的版本,但我注意到垃圾邮件的准确性受到许多垃圾邮件文件具有此类特殊字符这一事实的严重影响。

如有任何建议,我们将不胜感激。谢谢。

-罗伯特

最佳答案

如果您只是想删除多余的逗号,并且正如您所说,没有任何效果,您可以使用简单的拆分和连接(假设逗号是这里唯一的分隔符)

','.join([s for s in 'word,,2,4'.split(',') if s])

关于Python:用读入文件替换字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39481870/

相关文章:

machine-learning - 用于实现通用垃圾邮件检测的集群或其他机制

垃圾邮件中的 javascript;它想做什么?

Python Orange分布式计算

python - 混淆矩阵-Sklearn 0.22 数字格式错误

python - 如何正确创建具有 isinstance 自定义行为的新类型?

python - 使用 Selenium 从中间事件中捕获 JSON 数据

smtp - 从 Sendgrid 向 Outlook 或 Hotmail 用户发送电子邮件的问题

python - CVXPY : give a hint of the solution 中的初始猜测/热启动

r - 使用 rjags 定义条件线性高斯网络

python - BUGS模型和PyMC的区别?