提取非内容的英文单词字符串 - python

2 投票
3 回答
1568 浏览
提问于 2025-04-18 01:40

我正在写一个Python脚本,想要从一个字符串中去掉一些常见的英语单词,比如“the”、“an”、“and”、“for”等等。目前我做的是自己列了一个包含这些单词的本地列表,然后用remove()方法把它们从字符串中去掉。但我想找一种更“Python风格”的方法来实现这个功能。我听说过nltk和wordnet,但对它们该怎么用完全没有头绪。

编辑

我不明白为什么我的问题被标记为重复,因为我的问题并不意味着我了解停用词,我只是想知道怎么使用它……我的问题是我在这种情况下可以用什么,而答案是停用词……但当我发这个问题的时候,我对停用词一无所知。

3 个回答

0

这个方法也可以用:

yourString = "an elevator is made for five people and it's fast"
wordsToRemove = ["the ", "an ", "and ", "for "]

for word in wordsToRemove:
    yourString = yourString .replace(word, "")
2

这样做。

vocabular = set (english_dictionary)
unique_words = [word for word in source_text.split() if word not in vocabular]

这非常简单而且高效。如果你不需要独特单词的位置,也可以把它们做成 set!在集合(set)上使用 in 操作符非常快,而在列表和其他容器上则比较慢。

0

我发现我想要的东西就是这个:

from nltk.corpus import stopwords
my_stop_words = stopwords.words('english')

现在我可以从我的列表或字符串中删除或替换那些在我的停用词列表(my_stop_words)中找到的单词。

为了让这个功能正常工作,我需要下载Python的NLTK库,然后通过它的下载器下载了停用词包。

这个库还包含了许多其他的包,可以在不同的自然语言处理(NLP)场景中使用,比如 words, brown, wordnet 等等。

撰写回答