基于分词索引的开源项目搜索方法技术

技术编号:36967083 阅读:14 留言:0更新日期:2023-03-22 19:27
本发明专利技术公开了基于分词索引的开源项目搜索方法,具体步骤如下:S1、分词模型实现,基于mmseg算法的一个轻量级中文分词器,基于textRank算法实现七种分词模式;S2、检索模型实现,基于BM25模型的改进和优化;S3、排序模型实现,通过对多个量化模型对数据进行更多维度的量化然后参与到BM25模型得出的score的加权中,以提供更好的排序结果。本申请通过针对检索过程复杂的问题,提供一套基于分词模型、检索模型、排序模型相结合实现的一套方法和系统,用于提高检索的准确性。用于提高检索的准确性。用于提高检索的准确性。

【技术实现步骤摘要】
基于分词索引的开源项目搜索方法


[0001]本专利技术属于计算机软件
,具体为基于分词索引的开源项目搜索方法。

技术介绍

[0002]单纯的分词算法和索引模型市场上已经存在一些,例如mmseg分词算法、n

gram分词算法、FMM\BMM分词算法、BM25检索匹配算法,TFIDF检索匹配算法等等,但是基本都是通用分词检索,无法适用于大规模的具有特性规则的检索场景,并且很多不支持自定义词库,其中检索的准确性方面也无法保证,针对上述问题,本申请提出了基于分词索引的开源项目搜索方法。

技术实现思路

[0003]针对现有技术的不足,本专利技术提供了基于分词索引的开源项目搜索方法,具有基于代码仓库信息的某些词汇按照特定的规则进行分词,生成分词索引,针对于生成的索引进行模型算法分析评分综合排序得到相应的检索结果,提高检索的准确性的优点。
[0004]为实现上述目的,本专利技术提供如下技术方案:基于分词索引的开源项目搜索方法,具体步骤如下:
[0005]S1、分词模型实现,基于mmseg算法的一个轻量级中文分词器,基于textRank算法实现七种分词模式;
[0006]S2、检索模型实现,基于BM25模型的改进和优化;
[0007]S3、排序模型实现,通过对多个量化模型对数据进行更多维度的量化然后参与到BM25模型得出的score的加权中,以提供更好的排序结果。
[0008]优选的,所述S1步骤中七种分词模式包括有简易模式、复杂模式、检测模式、最多模式、分隔符模式、NLP模式、n

gram模式。
[0009]优选的,所述S2步骤中基于TFIDF的数据模型为:
[0010][0011]TF(qi)=fi;
[0012][0013]检索仓库时基于仓库名字检索提示,检索模型EFR(Equality From Randomness)模型定义如下:
[0014]其中N文档总数;
[0015]n(qi)包含q词条的文档总数;
[0016]fi词条qi的词频,在d中出现的次数;
[0017]dl文档d的长度(词条数目);
[0018]avgdl文档d集合的平均长度(词条数目);
[0019]k1非线性词频归一化控制因子;
[0020]b控制文档长度规范化的程度。
[0021]优选的,所述S3步骤中排序模型如下:
[0022][0023]其中,_score
j
为BM25检索模型对查询Q和第i个文档计算返回的浮点相似度分数;
[0024]Weight
j
为第i个因子的权重调节系数,取值0~1;
[0025]nom
j
为第i个量化模型,取值因因子不同而异。
[0026]优选的,所述排序模型中的排序因子包括公开分数、活跃分数、仓库更新与惩罚分数。
[0027]优选的,所述S3步骤中排序模型实现步骤具体如下:
[0028]S31、创建项目仓库,根据仓库信息通过分词模型中的不同分词方式进行分词,生成关键词条,进行数据存储;
[0029]S32、用户通过可视化界面进行词条检索,基于BM25检索模型进行数据条目与数据存储介质中的数据进行匹配,同时基于EFR快速检索模型进行提示检索匹配,计算出得分;
[0030]S33、拿到步骤S32得分之后通过排序因子进行数据集合排序;具体计算方式参考S3步骤中排序模型实现。
[0031]与现有技术相比,本专利技术的有益效果如下:
[0032]本申请通过针对检索过程复杂的问题,提供一套基于分词模型、检索模型、排序模型相结合实现的一套方法和系统,用于提高检索的准确性。
附图说明
[0033]图1为创建仓库基于仓库信息通过不同的分词模式进行分词存储图;
[0034]图2为本专利技术检索流程图。
具体实施方式
[0035]基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0036]本专利技术针对检索过程复杂的问题,提供一套基于分词模型、检索模型、排序模型相结合实现的一套方法和系统,用于提高检索的准确性;
[0037]本专利技术是通过以下技术方案实现的:
[0038]项目仓库特点:
[0039]代码仓库的文本特点
[0040]仓库的名字和描述包含很多特殊符号,例如
“‑
_#.+/”等。
[0041]仓库的名字或者描述使用多态性,例如:“jfinal

weixin,wechat

php

sdk,WxJava等,微信会被随机写成:weixin,wechat,wx”等
[0042]很多特殊的中文、英文、标点的组合词条,例如:“c++,c#,c语言,d语言,卡拉ok,w信”等。
[0043]不规则、不标准的英文组合,例如:“j2cache,layuimini,anycmd,hutool,JeeSpringCloud,mpsdk4j”等。
[0044]仓库数据维度很多,包含:名字,名字命名空间,路径,路径命名空间,作者/企业/组织的名字,仓库描述,仓库标签和众多其他的属性等。不同属性集合需要的文本处理方式不一样。
[0045]本专利技术提供一种技术方案:基于分词索引的开源项目搜索方法,具体步骤如下:
[0046]S1、分词模型实现,基于mmseg算法的一个轻量级中文分词器,基于textRank算法实现七种分词模式;
[0047]S2、检索模型实现,基于BM25模型的改进和优化;
[0048]S3、排序模型实现,通过对多个量化模型对数据进行更多维度的量化然后参与到BM25模型得出的score的加权中,以提供更好的排序结果。
[0049]其中,所述S1步骤中七种分词模式包括有简易模式、复杂模式、检测模式、最多模式、分隔符模式、NLP模式、n

gram模式;
[0050]简易模式:FMM算法,适合速度要求场合;
[0051]复杂模式:MMSEG四种过滤算法,具有较高的歧义去除,分词准确率达到了98.41%;
[0052]检测模式:只返回词库中已有的词条,很适合某些应用场合;
[0053]最多模式:细粒度切分,专为检索而生,除了中文处理外(不具备中文的人名,数字识别等智能功能)其他与复杂模式一致(英文,组合词等);
[0054]分隔符模式:按照给定的字符切分词条,默认是空格,特定场合的应用;
[0055]NLP模式:继承自复杂模式,更改了数字,单位等词条的组合方式,增加电子邮件,大陆手机号码,网址,人名,地名,货币等以及无限种自定义实体的识别与返回;
[0056]n

gram模式:CJK和拉丁系字符的通用n...

【技术保护点】

【技术特征摘要】
1.基于分词索引的开源项目搜索方法,其特征在于,具体步骤如下:S1、分词模型实现,基于mmseg算法的一个轻量级中文分词器,基于textRank算法实现七种分词模式;S2、检索模型实现,基于BM25模型的改进和优化;S3、排序模型实现,通过对多个量化模型对数据进行更多维度的量化然后参与到BM25模型得出的score的加权中,以提供更好的排序结果。2.根据权利要求1所述的基于分词索引的开源项目搜索方法,其特征在于:所述S1步骤中七种分词模式包括有简易模式、复杂模式、检测模式、最多模式、分隔符模式、NLP模式、n

gram模式。3.根据权利要求1所述的基于分词索引的开源项目搜索方法,其特征在于:所述S2步骤中基于TFIDF的数据模型为:TF(qi)=fi;检索仓库时基于仓库名字检索提示,检索模型EFR(Equality From Randomness)模型定义如下:其中N文档总数;n(qi)包含q词条的文档总数;fi词条qi的词频,在d中出现的次数;dl文档d的长度(词条数目);avgdl文档d集合的平均长度(词条数目);k1非线性词频归一化控制因子;b控制文档长度规范...

【专利技术属性】
技术研发人员:刘冬
申请(专利权)人:深圳市奥思网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1