感谢您惊人的快速响应。Stackoverflow 太棒了!
我需要检查一个单词(或者说是数千个)是否与包含关键字的 dict 匹配。
例如,假设我有一个字符串:"The fluffy fox jumped the friggin fence."
我需要根据关键字字典检查字符串的每个单词,如果匹配,则返回所有值。
我创建了一个 dict filters
:(uniqueid
意思是“lk2m3lk4m2”,其余的是“静态”。)
filters:
{ "fox" : [
{ 'subscription' : 'uniqueid', 'link' : 'uniqueid' },
{ 'subscription' : 'uniqueid', 'link' : 'uniqueid' }
]},
{ "fence" : [
{ 'subscription' : 'uniqueid', 'link' : 'uniqueid' }
]}
...并计划为字符串中的每个单词迭代过滤器(我必须以每秒 5000 个单词的速度执行此操作。换句话说,性能是最重要的问题。
过滤关键字的数量可能会增长到数千,而字符串的长度永远不会超过一个正常的句子(即 5-20 个单词)。因此,我将遍历字符串中的每个单词并检查它是否包含在过滤器列表中。但是,以 500 句/秒的速度,我仍在查看大量计算。
例如,是否可以对列表进行排序(即列表中 dict 的键),从而显着提高性能?是否有我应该使用的 C 实现(比如我正在使用 cjson 并获得很大的性能提升)?
抱歉,这个问题有点不稳定——但我应该如何完成这项任务?
编辑:
预期输入:
"The fluffy fox jumped the friggin fence."
预期输出:({ 'subscription' : 'flskdmfslk32232', 'link' : 'sfdksmfls22323' },
{ 'subscription' : '3023940fsdf', 'link' : 'sdflsfm223' }
即每个匹配关键字下列出的订阅。)