1

我有一个看起来像的python dict:

defaultdict(<type 'int'>, {u'RT': 1, u'be': 1, u'uniforms': 1, u'@ProFootballWkly:': 1, u'in': 1, u'Nike': 1, u'Brooklyn.': 1, u'ET': 1, u"NFL's": 1, u'will': 1, u'a.m.': 1, u'at': 1, u'unveiled': 1, u'Jimmy': 3, u'11': 1, u'new': 1, u'The': 2, u'today': 1})

我正在处理它:

freq_distribution = nltk.FreqDist(filtered_words)               
top_words = freq_distribution.keys()[:4]     
print top_words                 

这会输出前 4 个单词,其中包括单词“The”我试图在此过程发生之前合并删除 Dolch“常用”单词:

filtered_words = [w for w in word_count \
              if not w in stopwords.words('english')]

问题是我仍然以“The”这个词结尾,因为 NLTK 中的所有(停用词)都是小写的。我需要一种方法来输入 word_count 并将其切换为小写。我尝试在各个领域添加 lower(),例如:

freq_distribution = nltk.FreqDist(word_count.lower())

但是没有任何成功,因为我反复收到以下错误:

AttributeError: 'list' object has no attribute 'lower'
4

1 回答 1

4
filtered_words = [w for w in word_count \
          if w.lower() not in stopwords.words('english')]

在检查它是否在停用词列表中w 之前,它会小写。所以如果w是“The”,它将the在检查之前转换为。由于“the”在列表中,它将被过滤掉。

于 2012-04-20T01:48:48.193 回答