【发布时间】:2021-03-13 12:49:53
【问题描述】:
我有一个复杂的文本,我在其中对存储在字典中的不同关键字进行分类:
text = 'data-ls-static="1">Making Bio Implants, Drug Delivery and 3D Printing in Medicine,MEDICINE</h3>'
sector = {"med tech": ['Drug Delivery' '3D printing', 'medicine', 'medical technology', 'bio cell']}
这可以成功找到我的关键字并对其进行分类,但有一些限制:
pattern = r'[a-zA-Z0-9]+'
[cat for cat in sector if any(x in re.findall(pattern,text) for x in sector[cat])]
我无法解决的限制是:
-
例如,以空格分隔的“Drug Delivery”等关键字无法识别,因此无法分类。
-
我无法使模式不区分大小写,因为像 MEDICINE 这样的词无法识别。我尝试将 (?i) 添加到模式中,但它不起作用。
-
分类的关键字进入 pandas df,但它们被打印到 [] 中。我试图再次循环脚本以将它们取出,但它们仍然存在。
数据到 pandas df:
ind_list = []
for site in url_list:
ind = [cat for cat in indication if any(x in re.findall(pattern,soup_string) for x in indication[cat])]
ind_list.append(ind)
websites['Indication'] = ind_list
当前输出:
Website Sector Sub-sector Therapeutical Area Focus URL status
0 url3.com [med tech] [] [] [] []
1 www.url1.com [med tech, services] [] [oncology, gastroenterology] [] []
2 www.url2.com [med tech, services] [] [orthopedy] [] []
在输出中我得到了我想避免的 []。
你能帮我解决这些问题吗?
谢谢!
【问题讨论】:
-
关于第 3 点,您能否提供示例代码如何将关键字设置为 pandas df ?
-
查看我的分析结果(一些提示)如下。
标签: python regex pandas keyword keyword-search