关键词匹配优化(第0篇)——问题和思路(代码片段)

hewish hewish     2023-04-04     215

关键词:

工作中遇到一个需求,规范人为输入的特定词汇,大概有100多个词汇。类似下面的情况(关键词比地名复杂一些)

技术图片

之前是用if else处理的,伪代码如下:

string TempStr;
if(TempStr.Contains("海淀") && TempStr.Contains("北京") )

    return "北京市海淀区";

else if(TempStr.Contains("山东") && TempStr.Contains("威海") )

    return "山东省威海市";

……//等等一共两百多个else,内容也比较复杂,甚至还有正则匹配之类的
else

    return "匹配失败";

因为我的工作是写Excel插件的,这一百多个 else if 太影响运行效率了,而且维护起来也很不方便,增加词汇也困难。

这两天找了一些相关的知识,打算对这部分进行优化,用nlp中的tf-idf方法进行关键词相似度的计算。

整个流程大致是:在数据库中建立关键词映射表,在插件启动时读取为字典,在使用时如果查询不到,就计算相似度并上传到映射表。

括号匹配_进阶篇(7-2符号配对)(代码片段)

括号匹配_进阶篇(/.../)之前有个简单的括号匹配,令这三对括号进行匹配:(),[],点击跳转:简单的括号匹配问题之所以说他们简单,是因为每个括号都只占一个字符。而进阶篇,虽然说起来很酷,其实就是再多一个对/**/的... 查看详情

剑指offer——第二十九天(动态规划“困难”)(代码片段)

...十九天——动态规划第一题:剑指Offer19.正则表达式匹配问题描述思路代码时间空间复杂度代码(皮一下)时间空间复杂度第二题:剑指Offer49.丑数问题描述思路代码时间空间复杂度第三题:剑指Offer60.n个骰子... 查看详情

浅析android启动优化(代码片段)

...#xff0c;第一部分内容是启动基础,第二部分内容是启动优化价值,第三部分内容是启动优化业务痛点,第四部分内容是总结与展望。启动优化业务痛点主要分为五个方面,第一个方面是业务问题背景,第二个方... 查看详情

第03次作业-栈和队列(代码片段)

...bsp;一、学习总结1.我认为的本周学习中比较重要的知识点关键词逻辑结构、栈、队列、存储结构2.思维导图(1)绪论(2)顺序表(3)栈和队列二、PTA实验作业题目一、7-2 符号配对1.题目要求 2.设计思路定义字符串c存放... 查看详情

centossshd无法启动(解决问题篇,附问题排查思路和解决方法)(代码片段)

前言美好的一天,从帮人运维开始问题朋友报过来的问题如下:[root@VM-0-16-centos/]#systemctlstartsshdErrorgettingauthority:Errorinitializingauthority:Couldnotconnect:Nosuchfileordirectory(g-io-error-q 查看详情

centossshd无法启动(解决问题篇,附问题排查思路和解决方法)(代码片段)

前言美好的一天,从帮人运维开始问题朋友报过来的问题如下:[root@VM-0-16-centos/]#systemctlstartsshdErrorgettingauthority:Errorinitializingauthority:Couldnotconnect:Nosuchfileordirectory(g-io-error-q 查看详情

华为od机试-统计匹配的二元组个数(javascript)|机试题+算法思路+考点+代码解析2023(代码片段)

统计匹配的二元组个数题目给定两个数组A和B,若数组A的某个元素A[i]与数组B中的某个元素B[j]满足A[i]==B[j],则寻找到一个匹配的二元组(i,j),请统计再这两个数组A和B中,一共存在多少个这样的二元组。输入第一行输入数组A的长... 查看详情

《mysql高级篇》十数据库其他调优策略(代码片段)

...问题1.3调优的维度和步骤第1步:选择适合的DBMS第2步:优化表设计第3步:优化逻辑查询第4步:优化物理查询第5步:使用Redis或Memcached作为缓存第6步:库级优化2.优化MySQL服务器2.1优化服务器硬件2.2优化MySQL的参数3.优化数据库... 查看详情

庖丁解牛-图解mysql8.0优化器查询转换篇(代码片段)

简介: 在《庖丁解牛-图解MySQL8.0优化器查询解析篇》一文中我们重点介绍了MySQL最新版本8.0.25关于SQL基本元素表、列、函数、聚合、分组、排序等元素的解析、设置和转换过程,本篇我们继续来介绍更为复杂的子查询、... 查看详情

mysqlsql优化篇-关键字与索引(代码片段)

sql优化篇-关键字与索引使用explain查看sql性能使用索引提高查询效率普通索引主键索引唯一索引复合索引前缀索引sql关键字对索引的影响in不会使索引失效like部分情况会使索引失效and不会使索引失效,or会使索引失效使用explai... 查看详情

大数据篇:这些年大数据组件的一些踩坑和优化总结(代码片段)

这些年除了做算法,大数据也搞得水生火热,下面是这些年的一些踩到的坑和一些经验的总结.写入hbase提示closingsocket问题Session0x0forserverip-10-0-10-55.ec2.internal/10.0.10.55:2181,unexpectederror,closingsocketconnectionandattemptingreconnect问题:s 查看详情

第126篇:异步函数(async和await)(代码片段)

...笔记 ES8的async/await旨在解决利用异步结构组织代码的问题。为为此增加了两个新关键字:async和await。 1.async关键字1.1.使用说明async关键字用于声明异步函数。函数声明、函数表达式、箭头函数和方法都可以使用使用async关... 查看详情

秒杀多线程第六篇经典线程同步事件event(代码片段)

...以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线... 查看详情

庖丁解牛|图解mysql8.0优化器查询转换篇(代码片段)

...N的复杂转换过程一 背景和架构在《庖丁解牛-图解MySQL8.0优化器查询解析篇》一文中我们重点介绍了MySQL最新版本8.0.25关于SQL基本元素表、列、函数、聚合、分组、排序等元素的解析、设置和转换过程,本篇我们继续来介绍... 查看详情

第85篇笔记-用合约创建合约(代码片段)

...键字 new 可以创建一个新合约。待创建合约的完整代码必须事先知道,因此递归的创建依赖是不可能的。版本0.4.24:pragmasolidity 查看详情

python怎么实现模式匹配?(代码片段)

python通过BF算法实现关键词匹配,BF算法,即暴风(BruteForce)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相... 查看详情

2813:画家问题(代码片段)

...的方法来解决,主要思想是枚举第一行,然后让第二行去匹配第一行,以此类推,一直到第n行,然后判断第n行的情况,如果符合条件,那就是合适的解。下面是一些关键的思想的详细解释:  首先,对于每一行是否涂画的操... 查看详情

算法题:判断正则表达式的.和*的模式匹配(代码片段)

题目描述请实现一个函数用来匹配包括‘.‘和‘*‘的正则表达式。模式中的字符‘.‘表示任意一个字符,而‘*‘表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字... 查看详情