python - 将自定义停用词附加到 nltk.corpus 中的默认停用词列表,并使用 lambda 从数据帧中的系列中删除停用词
问题描述
我有 41,000 行 Flickr 标签的多列数据框。我只想从一列中删除所有英语停用词,而其他列保持不变。
这是我从 nltk.corpus 中提取停用词列表的代码:
from nltk.corpus import stopwords
stopWordsListEng = stopwords.words("english")
但我想添加我能想到的其他停用词:
according accordingly across act actually
我还没有弄清楚如何将其添加到现有的停用词列表中。
以及如何应用 lambda 仅删除一列中的停用词。因为我希望我的代码尽可能简单。
这是我的专栏的样子:
column1 column2 column3
some words from this column i don't know actually what across to me accordingly 25,000
在删除所有停用词后,我希望我的专栏看起来像这样(或多或少):
column1 column2 column3
some words from this column don't know what to me 25,000
解决方案
您可以使用列表向现有停用词添加其他停用词extend
_new_stopwords_to_add = ['according', 'accordingly', 'across', 'act', 'actually']
stopWordsListEng.extend(_new_stopwords_to_add)
仅使用pandas.DataFrame.apply从一个 pandas 列中删除停用词
df['column2'] = df['column2'].apply(lambda x: ' '.join([item for item in x.split() if item not in stopWordsListEng]))
推荐阅读
- c# - 使用 ASP.NET Core MVC 从数据库中提取数据并保存为 Excel 文件
- firebase - Flutter web Firebase 身份验证 URL 重定向
- c# - xml 更改后,与 DynamicResource XmlDataProvider 的网格绑定未更新
- java - ECB 模式:我可以在实体中使用打印方法吗?
- swift - 如何使用辅助功能 API 控制应用程序
- java - 如何指定一个 MaskFormatter?
- mysql - Kotlin if 和 else 语句不起作用
- linux - 在 Azure 中执行带有 release 的 git 命令
- elasticsearch - Depricate indexing numeric types in elasticsearch
- python - 打印一个人到目前为止在python中生活了多少天