我有从网站解析的文本,我需要在Python中清理它们以供以后的NLP使用。它们是波兰语,而不是英语,所以我有 UTF-8 字符,如ą
、ł
、ó
等。我只需要留下正常的标点符号(.,'"-
等(和字母(包括波兰语字符(,并删除所有"奇怪"的非标准字符,例如•
。我该怎么做?我认为我需要一些正则表达式并将那些非标准字符替换为""
(无字符(,但我不知道如何仅过滤"常规"字符。UTF-8 在这里是一个问题,获取 ASCII 字母很容易。
您可以使用 unidecode 将文本转换为 ASCII :
import unidecode
text = unidecode.unidecode(texte)
然后你可以使用它来过滤一些不需要的Caracters:
for i in ("<",">","!","?","-","$",";","Ã","©","_","-","«","»","*") :
texte = texte.replace(i, " ")
查看decode
中的错误处理选项:https://docs.python.org/3/library/codecs.html#error-handlers
因此,其中content
是包含 UTF8 文本的bytes
对象,如下所示:
content.decode("ascii", "ignore")
应该做你想做的事。