[英]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
...
谢谢
您想确定休息说明中是否有任何类别标记。 假设s1
和s2
是您的样本描述,而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.