使用正则表达式从 Pandas 列中的集合中搜索关键字/短语

问题描述

我有一组关键字和短语,其中包括 unigrams、bigrams、trigrams、4-grams 和 5-grams。我想在 Pandas DataFrame 中搜索该集合的词汇表,并在 Pandas 单元格中识别这些关键字/短语的匹配项。

关键字和短语集的示例如下(总长度 = 420):

ccv_set = [['solar','energy'],['solar','cell'],['emission','certificate','credit,'Trading']...]

所以,我想找到这些表达 在熊猫专栏中,彼此之间的距离为 50,即如果术语“太阳能”与术语“能源”相距 50 个词,则搜索将其选中。此外,出现的顺序无关紧要。为此,我使用了以下代码

代码似乎工作不正常,即没有以任何顺序或彼此之间的距离返回 ccv_set 匹配的关键字。

我应该使用什么正则表达式,以便代码以任意顺序在 50 个关键字内的任何位置搜索表达式 ['solar','energy'] 的文本?

ccv_set_lem = [[lmtzer.lemmatize(token) for token in sentence.split(" "),for sentence in ccv_set]]
nested_tuples_ccv_set_lem = [tuple(l) for l in ccv_set_lem]
pat_lem = '/'.join("\W+(?:\w+\W+).{0.50}?".join(x) for x in nested_tuples_ccv_set_lem
df['KW'] = df.specification_preprocess.str.findall(pat_lem)```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)