Python |计算数据框中与预先指定的单词列表匹配的单词

Python | Count words in dataframe that are matching a prespecified list of words

我正在尝试计算由演讲组成的 Dataframe 列中的单词数。我创建了一个列表,其中包含与不同主题相关的单词,例如:

Care = [safe, peace, compassion, empath, care, caring, protect, shield, shelter]

现在我想统计 "Care" 列表中的单词在每次演讲中总共出现了多少次,然后在 df 的末尾添加一个新列,其中包含每行的计数.

我现在正在使用此代码。

df = df.assign(Care=df['speech'].str.count('|'.join(care)))

但我怀疑它也给了我部分匹配项。我只想在单词与列表中的整个单词匹配时才匹配。 有什么想法吗?

假设语音中没有标点符号,这可能有效 -

df['count'] = df['speech'].apply(lambda x: len([val for val in x.split() if val in Care]))