提取非内容英语单词string - python

时间:2014-04-07 06:04:21

标签: python python-2.7 nltk wordnet

我正在研究Python脚本,其中我想删除常见的英语单词,如""," an","",&#34 ;对于"还有很多来自String。目前我所做的是我已经制作了所有这些单词的本地列表,我只需要调用remove()将其从字符串中删除。但我想在这里实现一些诡计多端的方法。已阅读有关nltk和wordnet的内容,但完全不知道我应该使用什么以及如何使用它。

修改

嗯,我不明白为什么标记为重复,因为我的问题并不意味着我知道停止词语,现在我只想知道如何使用它......问题是关于我可以在我的场景中使用什么,并回答这个问题就是停止的话......但是当我发布这个问题时,我对停止词语一无所知。

3 个答案:

答案 0 :(得分:2)

这样做。

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

尽可能简单有效。如果您不需要独特单词的位置,请将它们set制作出来!运算符in在集合上非常快(在列表和其他容器上运行缓慢)

答案 1 :(得分: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 :(得分:0)

我发现我所寻找的是:

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

现在我可以删除或替换我的列表/字符串中的单词,我在my_stop_words中找到匹配的列表。

为了实现这个目的,我不得不下载用于python的NLTK,并使用我的下载器下载了stopwords包。

它还包含许多其他包,可用于NLP的不同情况,如words,brown,wordnet etc.