繁体   English   中英

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

[英]Find word from dictionary in string

我正在研究项目中的问题。 我有一个带列的数据库,其中存储了“ 15分钟休息时间”“ 30分钟空闲时间”之类的类型,我想再创建一个带类别的列。 我的类别存储在字典中:

{ "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])]
#[]

假定所有字符串都为小写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM