CN111859066B - 一种运维工单的查询推荐方法及装置 - Google Patents
一种运维工单的查询推荐方法及装置 Download PDFInfo
- Publication number
- CN111859066B CN111859066B CN202010492719.7A CN202010492719A CN111859066B CN 111859066 B CN111859066 B CN 111859066B CN 202010492719 A CN202010492719 A CN 202010492719A CN 111859066 B CN111859066 B CN 111859066B
- Authority
- CN
- China
- Prior art keywords
- database
- similarity
- text data
- records
- virtual table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种运维工单的查询推荐方法及装置,通过在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表;利用余弦相似度算法来计算查询文本与存储器中文本相似度;根据相似度以决定是读取内存中的虚拟表还是外部存储器中的数据库;能够实现快速的读取高速度内存中预加载的高命中率的记录,而不需要从较慢的外部存储器中读取数据,极大的提高了服务器的搜索响应速度,不需要存储大量的偏好特征数据、历史查询数据以满足未来的搜索需求搜索量,无需额外的数据存储需求,适用于小型的轻量化系统的数据库的快速搜索。减小了搜索查询的时间复杂度。
Description
技术领域
本公开涉及数据搜索技术、数据库查询交互技术领域,具体涉及一种运维工单的查询推荐方法及装置。
背景技术
在用户查询时,用户在搜索的输入框中输入部分查询词字符时,大多数查询系统一般会推荐出符合用户的搜索意图,并自动按照相关度的高低和用户搜索的历史频度进行排序,并弹出用户有可能查询的关键词条以供用户进行选择,从而极大地节约了用户查询的时间。
目前的查询词推荐方法一般是阿里巴巴集团控股有限公司的CN201210548573.9,接收输入的字符,并确定输入所述字符的用户标识信息;获取所述用户标识信息对应的偏好特征向量,所述偏好特征向量包括偏好查询词和偏好查询词对应的权重;通过该权重计算所述候选查询词向量与所述偏好特征向量的相似度;根据所述相似度和所述候选查询词对应的权重对所述候选查询词进行排序得到推荐查询词。另一种是百度在线网络技术(北京)有限公司的申请号为CN201410352570.7的当获取到推荐查询词展现事件之时,根据用户的历史查询词,获取推荐查询词;向所述用户展现所述推荐查询词,根据所述用户的搜索指示进行搜索,并显示搜索结果。
然而以上两种专利的方法应用于一些应用系统的工单搜索方面时,难以得到执行搜索任务的用户的准确推荐列表,而且会存储大量的偏好特征数据、历史查询数据以满足未来的搜索需求搜索量,需要较大的数据存储需求,并不适用于小型的轻量化系统的数据库的快速搜索。
发明内容
本公开提供一种运维工单的查询推荐方法及装置,通过在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表,在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录到内存中的虚拟表中;并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,接收来自于用户从客户端输入的文本数据;利用余弦相似度算法来计算查询文本与存储器中文本相似度;根据相似度以决定是读取内存中的虚拟表还是外部存储器中的数据库。
为了实现上述目的,根据本公开的一方面,提供一种运维工单的查询推荐方法,所述方法包括以下步骤:
所述方法基于CS(Client/Server):客户端----服务器结构;或者,B/S结构(Browser/Server):浏览器端----服务器结构;因为浏览器端只是特殊的一种客户端。客户端用于输入、查询、显示等功能;服务器端用于响应客户端的查询请求,至少包括内存和外部存储器,外部存储器上安装有数据库,并从数据库读取数据返回给客户端。
步骤1,用户登录客户端,在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表:
步骤2,在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录到内存中的虚拟表中;并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中;
步骤3,接收来自于用户从客户端输入的文本数据;
步骤4,对文本数据进行分词,并对文本数据进行特征提取得到特征向量作为第一特征向量;
步骤5,利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度;
步骤6,当发现各个第一相似度大于或等于相似度阈值的文本数据,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示;其中,相似度阈值的设置的范围在[-1,1]之间,默认一般设置为0.8;
步骤7,当所有的第一相似度均小于相似度阈值时,访问外部存储设备中数据库并利用余弦相似度算法来依次计算第一特征向量和数据库中所有记录中的文本数据的第三特征向量之间的各个第二相似度,并从数据库中读取各个第二相似度中的值最大(即相似度最高)的文本数据,将文本数据对应的记录替换掉虚拟表中用户最近一个时间阈值内搜索次数最小的词所对应的记录,并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示。
进一步地,在步骤1中,在服务器的内存中构建高频读取块的方法为:在服务器的内存中构建一个高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表,虚拟表是从外部存储设备中的数据库中读取到内存中用于临时保存数据的数据表,其包含的所有字段与数据库中对应数据表的字段相同;索引映射表包括虚拟表和数据库中对应表的主键或索引,至少包括虚拟表中记录的序号和数据库中对应表的记录的序号,通过索引映射表将虚拟表中的记录和数据库中相同的记录相关联,根据索引映射表中保存的对应的主键或索引可以快速的定位到虚拟表中的记录和数据库中相同的记录;其中,每条记录都存储有一个工单(即工作单据)的文本数据。
进一步地,在步骤1中,数据库中的数据是以表为单位进行组织的;一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个公司中所有工单的记录,注意包括记录的序号、关键词、处理事项等,可以存放在一个表中,表中的每一行对应一个工单,这一行包括工单的学号,姓名及各门课程成绩。数据库将数据存储在磁盘、磁带等外部存储设备上,一般而言,这些设备的访问速度相比内存慢很多。
进一步地,在步骤2中,时间阈值默认取168小时(即最近一周);搜索阈值默认设置为3次;均可人工调整。
进一步地,在步骤4中,对文本数据进行分词的方法为:
S401:通过Jieba,SnowNLP,PkuSeg,THULAC,HanLP中任意一种中文分词工具进行分词并进行词性标注;
词性标注的目标是用一个单独的标签标记每一个词,该标签表示了用法和其句法作用,比如名词、动词、形容词等。
名词n、时间词t、s处所词(在学校、在家里)、方位词f、动词v、形容词a、代词r、数词m、量词q、副词d、介词p、连词c;
例如,采用Jieba中文分词工具下进行词性分类:
seg_lig=jieba.posseg.cut(text)
for w,tag in seg_lig:
print"%s/%s"%(w,tag)
以句子,“搜索耗时长的配电运维工单”为例,词性分类的结果为:
搜索/v、耗时长的/a、配电运维工单/n;
S402:将分类后的各个词的搜索次数递增1;
S403:通过中文近义词工具包Synonyms将同义词、近义词归一处理为默认的词;其中,默认的词为同一组同义词、近义词中搜索次数最多的词,注:每个词每次查询/搜索都会标记并增加该词的搜索次数,或称为词频。
进一步地,在步骤4中,对文本数据进行分词后,将分类后的各个同义词、近义词归一处理为默认的词的搜索次数递增1后,如果有出现搜索次数递增后的词的搜索次数大于或等于虚拟表所有的记录的文本数据分词后的对应词的搜索次数;则将虚拟表中所有的记录的文本数据的词替换为搜索次数递增后的词;并根据索引映射表中保存的对应的主键或索引快速的定位到虚拟表中的记录和数据库中相同的记录,将虚拟表中所有的记录更新到数据库中相同的记录中。
进一步的,在步骤5中,余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
进一步的,在步骤5中,利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度的方法为:
步骤5.1,分词;
步骤5.2,列出所有词;
步骤5.3,分词编码;
步骤5.4,词频向量化得到虚拟表中所有记录中的文本数据的第二特征向量;
步骤5.5,使用余弦函数计量两个文本中句子的相似度作为第一相似度。
得出两个句子的词频向量之后,就变成了计算两个向量之间夹角的余弦值,值越大相似度越高。
本发明还提供了一种运维工单的查询推荐装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:
高频读取块构建单元,用于用户登录客户端,在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表:
读取块加载单元,用于在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录到内存中的虚拟表中;并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中;
文本输入单元,用于接收来自于用户从客户端输入的文本数据;
文本向量化单元,用于对文本数据进行分词,并对文本数据进行特征提取得到特征向量作为第一特征向量;
相似度计算单元,用于利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度;
虚拟表数据推送单元,用于当发现各个第一相似度大于或等于相似度阈值的文本数据,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示;
数据库更新推送单元,用于当所有的第一相似度均小于相似度阈值时,访问外部存储设备中数据库并利用余弦相似度算法来依次计算第一特征向量和数据库中所有记录中的文本数据的第三特征向量之间的各个第二相似度,并从数据库中读取各个第二相似度中的值最大的文本数据,将文本数据对应的记录替换掉虚拟表中用户最近一个时间阈值内搜索次数最小的词所对应的记录,并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示。
本公开的有益效果为:本发明提供一种运维工单的查询推荐方法及装置,能够实现快速的读取高速度内存中预加载的高命中率的记录,而不需要从较慢的外部存储器中读取数据,极大的提高了服务器的搜索响应速度,不需要存储大量的偏好特征数据、历史查询数据以满足未来的搜索需求搜索量,无需额外的数据存储需求,适用于小型的轻量化系统的数据库的快速搜索。减小了搜索查询的时间复杂度。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种运维工单的查询推荐方法的流程图;
图2所示为一种运维工单的查询推荐装置图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种运维工单的查询推荐方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种运维工单的查询推荐方法。
本公开提出一种运维工单的查询推荐方法,具体包括以下步骤:
步骤1,用户登录客户端,在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表:
步骤2,在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录到内存中的虚拟表中;并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中;
步骤3,接收来自于用户从客户端输入的文本数据;
步骤4,对文本数据进行分词,并对文本数据进行特征提取得到特征向量作为第一特征向量;
步骤5,利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度;
步骤6,当发现各个第一相似度大于或等于相似度阈值的文本数据,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示;其中,相似度阈值的设置的范围在[-1,1]之间,默认一般设置为0.8;
步骤7,当所有的第一相似度均小于相似度阈值时,访问外部存储设备中数据库并利用余弦相似度算法来依次计算第一特征向量和数据库中所有记录中的文本数据的第三特征向量之间的各个第二相似度,并从数据库中读取各个第二相似度中的值最大(即相似度最高)的文本数据,将文本数据对应的记录替换掉虚拟表中用户最近一个时间阈值内搜索次数最小的词所对应的记录,并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示。
进一步地,在步骤1中,在服务器的内存中构建高频读取块的方法为:在服务器的内存中构建一个高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表,虚拟表是从外部存储设备中的数据库中读取到内存中用于临时保存数据的数据表,其包含的所有字段与数据库中对应数据表的字段相同;索引映射表包括虚拟表和数据库中对应表的主键或索引,至少包括虚拟表中记录的序号和数据库中对应表的记录的序号,通过索引映射表将虚拟表中的记录和数据库中相同的记录相关联,根据索引映射表中保存的对应的主键或索引可以快速的定位到虚拟表中的记录和数据库中相同的记录;其中,每条记录都存储有一个工单(即工作单据)的文本数据。
进一步地,在步骤1中,数据库中的数据是以表为单位进行组织的;一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个公司中所有工单的记录,注意包括记录的序号、关键词、处理事项等,可以存放在一个表中,表中的每一行对应一个工单,这一行包括工单的学号,姓名及各门课程成绩。数据库将数据存储在磁盘、磁带等外部存储设备上,一般而言,这些设备的访问速度相比内存慢很多。
进一步地,在步骤2中,时间阈值默认取168小时(即最近一周);搜索阈值默认设置为3次;均可人工调整。
进一步地,在步骤4中,对文本数据进行分词的方法为:
S401:通过Jieba,SnowNLP,PkuSeg,THULAC,HanLP中任意一种中文分词工具进行分词并进行词性标注;
词性标注的目标是用一个单独的标签标记每一个词,该标签表示了用法和其句法作用,比如名词、动词、形容词等。
名词n、时间词t、s处所词(在学校、在家里)、方位词f、动词v、形容词a、代词r、数词m、量词q、副词d、介词p、连词c;
例如,采用Jieba中文分词工具下进行词性分类:
seg_lig=jieba.posseg.cut(text)
for w,tag in seg_lig:
print"%s/%s"%(w,tag)
以句子,“搜索耗时长的配电运维工单”为例,词性分类的结果为:
搜索/v、耗时长的/a、配电运维工单/n;
S402:将分类后的各个词的搜索次数递增1;
S403:通过中文近义词工具包Synonyms将同义词、近义词归一处理为默认的词;其中,默认的词为同一组同义词、近义词中搜索次数最多的词,注:每个词每次查询/搜索都会标记并增加该词的搜索次数,或称为词频。
进一步地,在步骤4中,对文本数据进行分词后,将分类后的各个同义词、近义词归一处理为默认的词的搜索次数递增1后,如果有出现搜索次数递增后的词的搜索次数大于或等于虚拟表所有的记录的文本数据分词后的对应词的搜索次数;则将虚拟表中所有的记录的文本数据的词替换为搜索次数递增后的词;并根据索引映射表中保存的对应的主键或索引快速的定位到虚拟表中的记录和数据库中相同的记录,将虚拟表中所有的记录更新到数据库中相同的记录中。
进一步的,在步骤5中,余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
进一步的,在步骤5中,利用余弦相似度来依次计算虚拟表中所有记录中的文本的特征向量的相似度的方法为:
步骤5.1,分词;
输入文本A和文本B:
文本A:电力保修编号工单;
文本B:电子修理编号工单;
使用Jieba中文分词工具对上面两个文本A和文本B中的句子分词后,分别得到两个列表:
list1=[‘电力‘,‘保修‘,‘编号‘,‘工单‘];
list2=[‘电子‘,‘修理‘,‘编号‘,‘工单‘];
步骤5.2,列出所有词;
列出所有词,将list1和list2放在一个set中,得到:
set={‘电力‘,‘保修‘,‘电子‘,‘修理‘,‘编号‘,‘工单‘}
将上述set(集)转换为dict,key为set中的词,value为set中词出现的位置,即‘这’:1这样的形式。
dict1={‘电力’:0,‘保修’:1,‘电子’:2,‘修理’:3,‘编号’:4,‘工单’:5},可以看出“修理”这个词在set中排第4,下标为3。
步骤5.3,分词编码;
将list1和list2进行编码,将每个字转换为出现在set中的位置,转换后为:
list1code=[8,4,5,7,9,1,3,4,7,2];
list2code=[8,4,5,7,0,3,4,6,2];
可以看到8对应的字是“这”,4对应的字是“只”,9对应的字是“大”,就是句子A和句子B转换为用数字来表示。
步骤5.4,词频向量化;
对list1code和list2code进行oneHot编码,就是计算每个分词的搜索次数。oneHot编号后得到的结果如下:
list1codeOneHot=[0,1,1,1,2,1,0,2,1,1];
list2codeOneHot=[1,0,1,1,2,1,1,1,1,0];
步骤5.5,使用余弦函数计量两个文本中句子的相似度;
得出两个句子的词频向量之后,就变成了计算两个向量之间夹角的余弦值,值越大相似度越高。
优选地,利用余弦相似度来计算文本的特征向量的相似度,通过类C语言代码描述如下:
import jieba;
import math;
//对文本数据进行分词
Text1='电力保修编号工单'
Particle1=[i for i in jieba.cut(Text1,cut_all=True)if i!=”];
Text2='电子修理编号工单'
Particle2=[i for i in jieba.cut(Text2,cut_all=True)if i!=”];
word_set=set(Particle1).union(set(Particle2));
word_dict=dict();
//词频向量化,提取特征向量
for(i=0;word in word_set:word_dict[word]=i;i++);
Particle1_code=[word_dict[word]for word in Particle1]
print(Particle1_code)
Particle1_code=[0]*wordRate;
for word in Particle1:
Particle1_code[word_dict[word]]+=1;
Particle2_code=[word_dict[word]for word in Particle2]
Particle2_code=[0]*wordRate;
for word in Particle2:
Particle2_code[word_dict[word]]+=1;
//余弦相似度算法计算文本的特征向量的相似度
sum,Vector1=0,Vector2=0;
for i in range(len(Particle1_code)):
sum+=Particle1_code[i]*Particle2_code[i];
Vector1+=pow(Particle1_code[i],2);
Vector2+=pow(Particle2_code[i],2);
result=round(float(sum)/(math.sqrt(Vector1)*math.sqrt(Vector2)),2)
result=0.0
print(result)。
本公开的实施例提供的一种运维工单的查询推荐装置,如图2所示为本公开的一种运维工单的查询推荐装置图,该实施例的一种运维工单的查询推荐装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种运维工单的查询推荐装置实施例中的步骤。
所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:
高频读取块构建单元,用于用户登录客户端,在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表:
读取块加载单元,用于在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录到内存中的虚拟表中;并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中;
文本输入单元,用于接收来自于用户从客户端输入的文本数据;
文本向量化单元,用于对文本数据进行分词,并对文本数据进行特征提取得到特征向量作为第一特征向量;
相似度计算单元,用于利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度;
虚拟表数据推送单元,用于当发现各个第一相似度大于或等于相似度阈值的文本数据,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示;
数据库更新推送单元,用于当所有的第一相似度均小于相似度阈值时,访问外部存储设备中数据库并利用余弦相似度算法来依次计算第一特征向量和数据库中所有记录中的文本数据的第三特征向量之间的各个第二相似度,并从数据库中读取各个第二相似度中的值最大的文本数据,将文本数据对应的记录替换掉虚拟表中用户最近一个时间阈值内搜索次数最小的词所对应的记录,并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示。
所述一种运维工单的查询推荐装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种运维工单的查询推荐装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种运维工单的查询推荐装置的示例,并不构成对一种运维工单的查询推荐装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种运维工单的查询推荐装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种运维工单的查询推荐装置运行装置的控制中心,利用各种接口和线路连接整个一种运维工单的查询推荐装置可运行装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种运维工单的查询推荐装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。
Claims (8)
1.一种运维工单的查询推荐方法,其特征在于,所述方法包括以下步骤:
步骤1,用户登录客户端,在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表:
步骤2,在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录,将所述记录写入到内存中的虚拟表中;读取相同记录的虚拟表和数据库中对应表的主键或索引,将所述主键或索引写入到索引映射表中;
步骤3,接收来自于用户从客户端输入的文本数据;
步骤4,对文本数据进行分词,并对文本数据进行特征提取得到特征向量作为第一特征向量;
步骤5,利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个相似度,所述相似度定义为第一相似度;
步骤6,当发现各个第一相似度大于或等于相似度阈值的文本数据,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示;
步骤7,当所有的第一相似度均小于相似度阈值时,访问外部存储设备中数据库并利用余弦相似度算法来依次计算第一特征向量和数据库中所有记录中的文本数据的第三特征向量之间的各个相似度,所述相似度定义为第二相似度,并从数据库中读取各个第二相似度中的值最大的文本数据,将文本数据对应的记录替换掉虚拟表中用户最近一个时间阈值内搜索次数最小的词所对应的记录,并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示。
2.根据权利要求1所述的一种运维工单的查询推荐方法,其特征在于,在步骤1中,在服务器的内存中构建高频读取块的方法为:在服务器的内存中构建一个高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表,虚拟表是从外部存储设备中的数据库中读取到内存中用于临时保存数据的数据表,其包含的所有字段与数据库中对应数据表的字段相同;索引映射表包括虚拟表和数据库中对应表的主键或索引,至少包括虚拟表中记录的序号和数据库中对应表的记录的序号,通过索引映射表将虚拟表中的记录和数据库中相同的记录相关联,根据索引映射表中保存的对应的主键或索引可以快速的定位到虚拟表中的记录和数据库中相同的记录;其中,每条记录都存储有一个工单的文本数据。
3.根据权利要求1所述的一种运维工单的查询推荐方法,其特征在于,在步骤1中,数据库中的数据是以表为单位进行组织的;一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息,表实际上是一个二维表格。
4.根据权利要求1所述的一种运维工单的查询推荐方法,其特征在于,在步骤2中,时间阈值默认取168小时;搜索阈值默认设置为3次;均可人工调整。
5.根据权利要求1所述的一种运维工单的查询推荐方法,其特征在于,在步骤4中,对文本数据进行分词的方法为:
S401:通过Jieba,SnowNLP,PkuSeg,THULAC,HanLP中任意一种中文分词工具进行分词并进行词性标注;
S402:将分类后的各个词的搜索次数递增1;
S403:通过中文近义词工具包Synonyms将同义词、近义词归一处理为默认的词;其中,默认的词为同一组同义词、近义词中搜索次数最多的词。
6.根据权利要求1所述的一种运维工单的查询推荐方法,其特征在于,在步骤4中,对文本数据进行分词后,将分类后的各个同义词、近义词归一处理为默认的词的搜索次数递增1后,如果有出现搜索次数递增后的词的搜索次数大于或等于虚拟表所有的记录的文本数据分词后的对应词的搜索次数;则将虚拟表中所有的记录的文本数据的词替换为搜索次数递增后的词;并根据索引映射表中保存的对应的主键或索引快速的定位到虚拟表中的记录和数据库中相同的记录,将虚拟表中所有的记录更新到数据库中相同的记录中。
7.根据权利要求1所述的一种运维工单的查询推荐方法,其特征在于,在步骤5中,利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度的方法为:
步骤5.1,分词;
步骤5.2,列出所有词;
步骤5.3,分词编码;
步骤5.4,词频向量化得到虚拟表中所有记录中的文本数据的第二特征向量;
步骤5.5,使用余弦函数计量两个文本中句子的相似度作为第一相似度。
8.一种运维工单的查询推荐装置,其特征在于,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下装置的单元中:
高频读取块构建单元,用于用户登录客户端,在服务器的内存中构建高频读取块,高频读取块包括一个临时保存数据的虚拟表和一个索引映射表:
读取块加载单元,用于在数据库的数据表中读取用户最近一个时间阈值内搜索次数大于搜索阈值的所有的词所对应的记录到内存中的虚拟表中;并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中;
文本输入单元,用于接收来自于用户从客户端输入的文本数据;
文本向量化单元,用于对文本数据进行分词,并对文本数据进行特征提取得到特征向量作为第一特征向量;
相似度计算单元,用于利用余弦相似度算法来依次计算第一特征向量和虚拟表中所有记录中的文本数据的第二特征向量之间的各个第一相似度;
虚拟表数据推送单元,用于当发现各个第一相似度大于或等于相似度阈值的文本数据,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示;
数据库更新推送单元,用于当所有的第一相似度均小于相似度阈值时,访问外部存储设备中数据库并利用余弦相似度算法来依次计算第一特征向量和数据库中所有记录中的文本数据的第三特征向量之间的各个第二相似度,并从数据库中读取各个第二相似度中的值最大的文本数据,将文本数据对应的记录替换掉虚拟表中用户最近一个时间阈值内搜索次数最小的词所对应的记录,并将相同记录的虚拟表和数据库中对应表的主键或索引,读取到索引映射表中,从虚拟表中读取文本数据对应的记录,并将记录推送到客户端展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492719.7A CN111859066B (zh) | 2020-06-03 | 2020-06-03 | 一种运维工单的查询推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492719.7A CN111859066B (zh) | 2020-06-03 | 2020-06-03 | 一种运维工单的查询推荐方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111859066A CN111859066A (zh) | 2020-10-30 |
CN111859066B true CN111859066B (zh) | 2023-01-20 |
Family
ID=72985834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010492719.7A Active CN111859066B (zh) | 2020-06-03 | 2020-06-03 | 一种运维工单的查询推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111859066B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784119B (zh) * | 2021-01-14 | 2023-04-28 | 内蒙古蒙商消费金融股份有限公司 | 一种数据查询及同步优化方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013164811A (ja) * | 2012-02-13 | 2013-08-22 | Nippon Telegr & Teleph Corp <Ntt> | データ検索装置、データ検索方法、及びデータ検索プログラム |
CN103870505A (zh) * | 2012-12-17 | 2014-06-18 | 阿里巴巴集团控股有限公司 | 一种查询词推荐方法和查询词推荐系统 |
CN108520002A (zh) * | 2018-03-12 | 2018-09-11 | 平安科技(深圳)有限公司 | 数据处理方法、服务器及计算机存储介质 |
-
2020
- 2020-06-03 CN CN202010492719.7A patent/CN111859066B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013164811A (ja) * | 2012-02-13 | 2013-08-22 | Nippon Telegr & Teleph Corp <Ntt> | データ検索装置、データ検索方法、及びデータ検索プログラム |
CN103870505A (zh) * | 2012-12-17 | 2014-06-18 | 阿里巴巴集团控股有限公司 | 一种查询词推荐方法和查询词推荐系统 |
CN108520002A (zh) * | 2018-03-12 | 2018-09-11 | 平安科技(深圳)有限公司 | 数据处理方法、服务器及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111859066A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491433B (zh) | 聊天应答方法、电子装置及存储介质 | |
US11222055B2 (en) | System, computer-implemented method and computer program product for information retrieval | |
US7451124B2 (en) | Method of analyzing documents | |
CN111104794A (zh) | 一种基于主题词的文本相似度匹配方法 | |
US20100185691A1 (en) | Scalable semi-structured named entity detection | |
US20070136280A1 (en) | Factoid-based searching | |
US20130060769A1 (en) | System and method for identifying social media interactions | |
WO2019217096A1 (en) | System and method for automatically responding to user requests | |
US10078629B2 (en) | Tabular data compilation | |
CN108875065B (zh) | 一种基于内容的印尼新闻网页推荐方法 | |
Kılınç | An accurate toponym-matching measure based on approximate string matching | |
CN111753048A (zh) | 文档检索方法、装置、设备及存储介质 | |
CN111325033B (zh) | 实体识别方法、装置、电子设备及计算机可读存储介质 | |
CN114330335A (zh) | 关键词抽取方法、装置、设备及存储介质 | |
US20120059786A1 (en) | Method and an apparatus for matching data network resources | |
CN111859066B (zh) | 一种运维工单的查询推荐方法及装置 | |
CN113988057A (zh) | 基于概念抽取的标题生成方法、装置、设备及介质 | |
CN113591476A (zh) | 一种基于机器学习的数据标签推荐方法 | |
CN116028722B (zh) | 一种基于词向量的岗位推荐方法、装置及计算机设备 | |
US20100205175A1 (en) | Cap-sensitive text search for documents | |
CN115630144B (zh) | 一种文档搜索方法、装置及相关设备 | |
US20120185496A1 (en) | Method of and a system for retrieving information | |
CN113806491B (zh) | 一种信息处理的方法、装置、设备和介质 | |
CN113505196B (zh) | 基于词性的文本检索方法、装置、电子设备及存储介质 | |
CN114462378A (zh) | 科技项目查重方法、系统、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |