从字符串中的字典中查找单词

Find word from dictionary in string

我正在解决我项目中的一个问题。 我有一个带有列的数据库,其中存储了 "15 mins break""30 min free time" 等类型 我想用类别制作另一列。 我的类别存储在字典中:

{ "short":["10","5","15","10min","5min","15min","shorter"],
"middle":["20","25","30","35","20min","25min","30min","35min"],
"long":["40","45","50","55","60","40min","45min","50min","55min","60min"]}

知道如何使用 python 将类别分配给类型吗? 我的意思是只是找到与字典中单词相似的那部分? 到目前为止我的代码

...calling sql select
for i, index in rows():
    type = index[0]
    if (any of words from dictionary) is in type:
        category = (name of category, for example "short")
        update in sql
        ...

感谢

您想了解任何 类别标记是否在中断描述中。假设 s1s2 是您的样本描述,而 d 是您的字典:

s1 = "15 mins break"
s2 = "30 min free time"
s3 = "something5something"

然后将以下表达式计算为它们的类别(re.findall() 的目的是标记文本;将正则表达式替换为适合您的项目的任何内容。)

[cat for cat in d if any(marker in re.findall(r'[a-z0-9]+',s1) for marker in d[cat])]
#['short']

[cat for cat in d if any(marker in re.findall(r'[a-z0-9]+',s2) for marker in d[cat])]
#['middle']

[cat for cat in d if any(marker in re.findall(r'[a-z0-9]+',s3) for marker in d[cat])]
#[]

这假设所有字符串都是小写。