使用查找比较数据,并使用python仅输出数据中最长的短语?

我有一个csv,其中包含“ KKR”映射到“ MBI”数据。我想从给定数据的用户执行查找,以从KKR中提取最长的匹配短语(如果包含长短语的单词,则忽略小短语)

#os.chdir("kkr_lookup")
data = pd.read_csv("KKR_MBI_MAP.csv")

dfData = pd.DataFrame(data)

dfVerbatim = pd.DataFrame()

dataVerbatim = {'verbatim': ['She experienced skin allergy and hair loss after using it for 2-3 weeks']}
dfVerbatim = pd.DataFrame(dataVerbatim,columns = ['verbatim'])


for index,frame in dfData.iterrows():
    if pd.notnull(frame['KKR']) & dfVerbatim['verbatim'].str.contains(frame['KKR'],case=False).bool() :
        k=(frame['MBI']).lower()
        l=(frame['KKR']).lower()
        print("MBI:",l)
        #print("MBI:",k)

代码给出的输出为:

allergy
hair loss
skin allergy

但是我需要:

skin allergy
hair loss

在这里,我已经编码为从用户输入数据中提取术语。但是它提取了“过敏”和“皮肤过敏”,而我这里只需要“皮肤过敏”。 请帮助我...

lookme123 回答:使用查找比较数据,并使用python仅输出数据中最长的短语?

import re

list_of_strings=["skin allergy","hair loss","allergy","hair","skin"]
sentence="She experienced skin allergy and hair loss after using it for 2-3 weeks"
pattern = re.compile(r"(\b" + "|".join(list_of_strings) + r")\b")

m = pattern.findall(sentence)
print(m)
本文链接:https://www.f2er.com/3110498.html

大家都在问