gpt4 book ai didi

Python Pandas - Lambda 应用保持初始格式

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

我想改造这个系列

from nltk import word_tokenize, pos_tag
from nltk.corpus import stopwords
stop_words = set(stopwords.words("english"))
df = pd.Series([["comic of book", "horror of movie"], ["dark", "dark french"]])
>> 0 [comic of book, horror of movie]
>> 1 [dark, dark french]

通过删除停用词并仅保留名词(nltk中的NN)。我认为 apply 函数是最好的解决方案,但是将其直接应用于这些文本会导致信息丢失。我明白了

df.apply(lambda x: [wrd for ing in x for wrd in word_tokenize(ing) if wrd not in stop_words])
0 [comic, book, horror, movie]
1 [dark, dark, french]

而不是

0    [comic book, horror movie]
1 [dark, dark french]

我错过了for循环中的一些内容,它用唯一的单词分隔了每个词袋(也许apply > 这里不好)

最佳答案

def rmsw(y):
return ' '.join(set(y.split()) - stop_words)

pd.Series([[rmsw(y) for y in x] for x in df], df.index)

0 [comic book, horror movie]
1 [dark, dark french]
dtype: object
<小时/>

维持秩序和频率

def rmsw(y):
return ' '.join([w for w in y.split() if w not in stop_words])

pd.Series([[rmsw(y) for y in x] for x in df], df.index)

关于Python Pandas - Lambda 应用保持初始格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51062770/

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