python - 从字典中删除停用词
问题描述
下面的列表由词干分析器生成,包括文档中最常见的单词。
list=[('d', 438),
('ricc', 308),
('cas', 256),
('sal', 237),
('nuov', 206),
('cos', 203),
('immunitar', 202),
('prim', 193),
('mineral', 192),
('molt', 172),
('frutt', 167),
('aliment', 164),
('b', 164)]
但是,它包含应使用停用词列表排除的单个字母。我想删除这些词(我使用的是意大利语停用词)。我试过如下:
it_stopwords= set(stopwords.words('italian'))
highest =counts.most_common()[:20]
highest = [w for w in highest if not w in it_stopwords]
但没有从列表中删除任何单词。我想是因为它是一本字典,上面的代码无法应用。
我希望你能帮助我。谢谢
解决方案
首先,不要使用 shadow 内置名称,如list
,它会导致坏事发生。如果您愿意,可以使用_list
which 是有效的替代方法作为调用约定。然后,您仍然可以编写自定义函数并将其用于过滤器调用:
def delete_stopwords(word):
it_stopwords = set(stopwords.words('italian'))
if word in it_stopwords:
return False
return True
filterList = filter(delete_stopwords,_list)
注意我写的函数不是最快的,但它应该可以工作,你可能想编写自己的函数,例如只创建一次集合。我也不知道您用来生成停用词的库,但即使没有显式构建到set
.
推荐阅读
- python - 避免使用 pandas 进行 csv 编辑
- fragment - 在 GeoPandas 中合并和求和重叠多边形的值
- ios - 在 OSX/iOS 上使用 Clang 获取部分的地址
- python - numpy.savetxt - 保存具有不同类型的 np.array
- swift - 如何快速定义特定枚举案例的数组
- python-3.x - 由“except Exception as err”创建的变量无法从“except”块外部访问
- ruby-on-rails - Ruby on Rails:从 url 解码参数
- python-3.x - 使用 mongo-connector 从 MongoDB 和 Apache Solr 导入数据时出现问题
- pthreads - autoconf 检测 pthread 函数的真正位置
- matlab - 在方位角等距投影中显示地球地图