【发布时间】:2021-03-14 09:42:18
【问题描述】:
我有一个单词数组,并且我想删除所有包含任何不寻常字符的单词,例如变音符号、重音符号等。(我知道有一些方法可以将它们标准化为常规字符,但我特别想删除他们)。
到目前为止,我的想法是创建一个可接受的字符数组(字母 az),因为这比创建一个考虑所有可能的字母和重音组合的黑名单更容易,然后通过我的单词数组检查单词是否有接受字符以外的任何字符。
我发现this 的文章描述了相反的情况,删除了所有确实包含特定字符的单词:
filtered_tokens = [w for w in tokens if all(ch not in w for ch in accepted_characters)]
不幸的是,一个简单的否定并不能解决我的问题。
我对建议和新方法持开放态度,但理想情况下,除了 nltk 之外,我希望它能够在没有其他包的情况下工作,我用它来从文本中提取我的单词。
【问题讨论】:
-
欢迎来到 Stack Overflow。我建议您考虑this thread、this one 和also this one。
-
@Vlad
str.strip仅删除字符串左侧或右侧的字符,直到无法再删除为止。"Hüllo"在你的情况下会失败。 -
这个问题看起来已经在这里提出并解决了https://stackoverflow.com/a/196392/2681662
-
删除“不寻常”的东西几乎总是对“我不知道我在看什么。我希望它会消失”这个问题的错误答案。