我有一个关键字列表(可以是多个单词),可以成对组合(例如“ buy”,“ milk”),并使用它们来查找文本中它们之间的单词数量。
数据框列:
首先,我使用下面的正则表达式掩码从数据框中仅选择包含它们的行。
df = df[(df["description"].str.contains(regex, re.I | re.DOTALL) )]
之后,我将执行以下操作:
keyword1 = "aaaa"
keyword2 = "bbbb"
regex = r"\b({KEYWORD1}\b.*?\b{KEYWORD2}|{KEYWORD2}\b.*?\b{KEYWORD1})\b".format(
KEYWORD1 = re.escape(keyword1),
KEYWORD2 = re.escape(keyword2)
)
df['words_between'] = df['description'].str.extract(regex, flags=re.IGNORECASE)
df['distance'] = df['words_between'].str.count(" ")
df['distance'] = df['distance'] - keyword1.count(" ") - keyword2.count(" ")
这是我当前的解决方案,但我认为它可能会更快。有任何想法吗?