如何去除“垃圾”字符而不丢失有效但“奇怪”的字符?

4
我有一堆输入数据,有时会出现一些垃圾字符,例如:

âDots Baby Shower Invitationsâ

显然,在过去的某个时候它是“Dots Baby Shower Invitations”。但是现在变成了乱码。我很高兴能够仅在这种情况下删除垃圾字符â
但是我的数据集非常大,仅仅删除所有非英语字符可能有点天真,比如单词"naïve"中的字母ï,我当然不希望将其删除。
所以,是否存在潜在的自动化解决方案来解决这个问题?有人之前遇到过这个问题吗?这是“计算机不如人类聪明”的情况吗?

1
你肯定不能在解码之前将任何文本传递给程序。你如何确信你在自己的端上正确地解码了它呢? - Esailija
你只需要查看输入的原始字节,尽管我非常确定它是UTF-8编码。你需要展示你的代码,这样我们才能在需要指定编码的地方帮助你。如果你认为可以不使用任何解码方式将文本传递给程序,那么你实际上是隐式地使用了平台默认编码,这种方法有时会成功,有时会失败。 - Esailija
2
显然,如果您没有对什么算作垃圾有明确的定义,那么没有计算机算法可以为您解决这个问题。在这种情况下,您能得到的最好结果是超级复杂、接近人工智能的,但仍有缺陷的启发式方法。 - Marko Topolnik
看起来有人正在从 Word 粘贴内容。 - Dave Newton
我说错了,实际上我的代码没有处理文件的工作,是 Apache Hadoop 在处理,所以我认为它知道该做什么。但无论如何,我已经验证了原始文件格式错误,并正在尝试让源代码来解决这个问题。 - David Parks
显示剩余7条评论
1个回答

1

您可以使用英语词典,例如WordNet,仅修改其中找不到的单词。 例如,naïve包含一个“奇怪”的字符,但是在字典中,因此不会被更改。另一方面,âDots也包含一个奇怪的字符,但希望不会出现在字典中,因此它将被修改并删除â

这可能需要太多的努力,但正如您所说,您需要快速的解决方案,也许值得一试...而且它可能比快速破解的启发式方法更有效!


不错的想法,从目前为止我所看到的一切来看,这是一个难以解决的问题。 - David Parks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接