gpt4 book ai didi

python - 如果字符串包含停用词,则从字符串中删除元素

转载 作者:行者123 更新时间:2023-12-01 01:19:15 25 4
gpt4 key购买 nike

我有一个列表如下:

lst = ['for Sam', 'Just in', 'Mark Rich']

我正在尝试从字符串列表中删除一个元素(字符串包含一个或多个单词),其中包含 stopwords .

列表中的第一个和第二个元素包含 forin分别是stopwords ,它将返回

new_lst = ['Mark Rich'] 

我尝试过的

from nltk.corpus import stopwords

stop_words = set(stopwords.words('english'))

lst = ['for Sam', 'Just in', 'Mark Rich']
new_lst = [i.split(" ") for i in lst]
new_lst = [" ".join(i) for i in new_lst for j in i if j not in stop_words]

这给我的输出为:

['for Sam', 'Just in', 'Mark Rich', 'Mark Rich']

最佳答案

您需要一个 if 语句,而不是额外的嵌套:

new_lst = [' '.join(i) for i in new_lst if not any(j in i for j in stop_words)]

如果您想使用set,您可以使用set.isdisjoint :

new_lst = [' '.join(i) for i in new_lst if stop_words.isdisjoint(i)]
<小时/>

这是一个演示:

stop_words = {'for', 'in'}

lst = ['for Sam', 'Just in', 'Mark Rich']
new_lst = [i.split() for i in lst]
new_lst = [' '.join(i) for i in new_lst if stop_words.isdisjoint(i)]

print(new_lst)

# ['Mark Rich']

关于python - 如果字符串包含停用词,则从字符串中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54005455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com