在与Pandas的文本中搜索所有匹配项

2024-04-29 17:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个特定单词的列表(“标记”),需要在纯文本中找到所有这些单词(如果有)。我更喜欢使用Pandas来加载文本并执行搜索。我使用pandas作为我的短文本集合的时间戳,它是相当容易组织这些短文本在一个单一的数据结构熊猫。在

例如:

考虑一下在Pandas中上传的一组twitter:

                                              twitts
0                       today is a great day for BWM
1                    prices of german cars increased
2             Japan introduced a new model of Toyota
3  German car makers, such as BMW, Audi and VW mo...

以及一份汽车制造商名单:

^{pr2}$

理想情况下,我需要获得以下数据帧:

                                              twitts  cars_mentioned
0                       today is a great day for BMW  [BMW]
1                    prices of german cars increased  []
2             Japan introduced a new model of Toyota  [Toyota]
3  German car makers, such as BMW, Audi and VW mo...  [BMW, Audi, VW]

我对NLP和文本挖掘方法非常陌生,我在互联网上阅读/搜索了很多关于这个主题的材料。我的猜测是我可以使用regexre.findall(),但是我需要遍历整个数据帧的令牌(汽车制造商)列表。在

有没有更简洁的方法来完成这个简单的任务,尤其是使用panad?在


Tags: of文本pandas列表todayis单词cars
3条回答

您可以使用熊猫^{} methods,尤其是^{}

df['cars_mentioned'] = df['twitts'].str.findall('|'.join(list_of_car_makers))

您可以使用re.findallfilter。在

list(filter((lambda x: re.findall(x, twitt)), list_of_car_makers))

Python示例

^{pr2}$

使用^{}

df['cars_mentioned'] = df['twitts'].apply(lambda x: [c for c in list_of_car_makers if c in x])

相关问题 更多 >