在Python中删除句子中的非英语单词

2 投票
3 回答
3401 浏览
提问于 2025-04-16 06:09

我写了一段代码,可以向谷歌发送查询并返回结果。我从这些结果中提取出一些摘要(就是简短的总结),然后进行进一步处理。不过,有时候这些摘要里会出现一些我不想要的非英语单词。例如:

/\u02b0w\u025bn w\u025bn unstressed \u02b0w\u0259n w\u0259n/ 

我只想要这个句子里的“unstressed”这个词。 我该怎么做呢? 谢谢!

3 个回答

1

你可以使用PyWordNet。它是一个用Python写的接口,可以和WordNet这个词典对接。你只需要把你的句子按空格分开,然后检查每个单词是否在这个词典里。

1

你可以把收到的单词和一个英语单词的字典进行比较,比如在BSD系统上可以找到的/usr/share/dict/words这个文件。

我猜谷歌的搜索结果大部分是语法正确的,但如果不是,你可能需要研究一下“词干提取”这个技术,以便更好地和你的字典进行匹配。

4

PyEnchant可能是一个简单的选择。我不太清楚它的速度,但你可以做一些这样的事情:

>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check("Hello")
True
>>> d.check("Helo")
False
>>>

你可以在这里找到一个教程,它还提供了返回建议的选项,你可以用这些建议进行其他查询或其他操作。此外,你可以检查你的结果是否是latin-1编码(is_utf8()这个函数是存在的,但我不知道is_latin-1()是否也存在,或许可以使用类似Enca的工具,它可以根据语言知识来检测文本文件的编码)。

撰写回答