佚名通过本文主要向大家介绍了python 字符串,python 字符串转数字,python 字符串截取,python 字符串拼接,python 字符串替换等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:python 如何高效的判断一个长字符串是否包含某些关键字?
描述:
解决方案1:
描述:
一个数据库表中含有一系列的关键字,现在传入一字符串,如何高效的判断数据表中哪些关键字在这个字符串中。
只是一个简单的数据表 包括两个字段 关键字 和 关键字的描述
数据表只有几千条数据 字符串是一句话,包含中文和英文字符,为的是提高查询效率
解决方案1:
省事点用 sqlite fts4 全文索引好了,这样可以一条字段存入多条关键字,
查询时给句子拆分下加入 OR 语法,select 用下 snippet 函数得到匹配的关键字。
把数据存到 sqlite fts4 全文索引表(sqlite 有在 python 标准库里不需要其他依赖,可以用内存数据库),fts4 默认会按标点和空格分词,所以处理中文时预先插入空格就没问题(插入 \r 之类也行)。
如果要求判断子字符串而不是按单词判断,存入数据时先用空格把字母和字符逐个隔开,查询时也逐个隔开并加上适当引号和 * 号,
而如果是想分词却担心有黄词漏网的话,存入数据和查询句子都用二元分词就可以了。
解决方案2:跟python无关,你需要的是AC自动机算法(多模式串匹配)。
而如果是要实现搜索,那么实际上应当使用倒排索引,才能达到最优的效果。
您可能想查找下面的文章:
- (python)dateutilparser处理不完整时间字符串
- (python)二维数组中怎么求出被0封闭的1图形的最多角?
- python截取一段字符串中想要得内容
- python爬虫python如何计算出现最多的字符串dict
- (python)对出现字符串的计数,四种方法,第三种不知道怎么不行
- 判断字符串为数字(python)如何判断字符串为企业注册名称
- (python)jsonpcallback的一串数字是如何生成的?
- json字符串python字符串转json出错
- (python)numpymatrix如何进行单个数字的运算?
- (python)如何把152753这个字符串转变成时间格式15:27:53