本发明专利技术涉及一种基于余弦相似度算法的实时语义相似度匹配设计方法,JavaWeb应用端从应用数据库MySQL中实时同步数据到Kafka消息队列集群,完成对从应用数据库MySQL增量的数据实时抽取及转换;PythonWeb消费者通过客户端消费获取数据,利用余弦相似度算法检索文本的语义相似度。本发明专利技术的优点是:句子嵌入方法生成的文本向量含有词语间的语义关系,可以有效衡量文本间的语义相似度,解决了试题重复校验的问题,设计并实现了一种基于文本语义相似度的组卷系统试题录入和架构,具有较低的计算复杂度;句子相似度采用余弦相似度算法,变更数据动态捕获采用Debezium低延迟流式处理平台,Kafka消息队列集群实现试题的题干流数据信息的提取和存储。信息的提取和存储。信息的提取和存储。
【技术实现步骤摘要】
一种基于余弦相似度算法的实时语义相似度匹配设计方法
[0001]本专利技术涉及机器学习
,尤其涉及一种基于余弦相似度算法的实时语义相似度匹配设计方法。
技术介绍
[0002]CDC(Change Data Capture)是一种变更数据捕获技术,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为CDC。目前通常描述的CDC技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。
[0003]Kafka Connect专注于Kafka之间的数据流,可以更简单地编写连接器插件。每一个部署在Kafka Connect服务中的Connector监控一个上游数据库服务器,将捕获到的数据写入到Kafka消息队列集群中的对应的Topic中。
[0004]语义相似度是衡量两个文本的相似程度,识别两段文本在语义上是否相似。语义相似度是自然语言处理领域的一个重要研究方向,同时在问答系统、文章搜索、新闻推荐领域都发挥重要作用。
[0005]句子嵌入是基于深度学习的自然语言处理(NLP)系统的重要组成部分之一。句子嵌入方法构造的句子向量中包含单词之间的语义关系,可以进行句子词语之间的语义相关度计算,常用的相关度计算方法为余弦相似度。
[0006]题库管理系统的核心问题是试题的编排、试题库录入和重复性校验、智能组卷算法。随着题库中试题量的日益增大,自动识别并去除相似试题成了建立优质题库的关键。但目前国内外对试题相似性识别的研究较少,合理的试题库结构和完备的试题管理系统是建立优质题库和成功组卷的基础。题库管理系统中试题录入模块,关键问题是试题的重复性校验,只有把重复或者相似的试题识别出来,才能达到建立优质题库的目的。
[0007]Elasticsearch(ES)是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据在内的所有类型的数据。Elasticsearch使用的是一种名为倒排索引的数据结构,这一结构的设计可以允许十分快速地进行全文本搜索。使用句子嵌入和Elasticsearch的dense_vector类型,采用余弦相似度算法可以支持文本相似度搜索,即对题库管理系统中相似试题的识别。
[0008]随着机器学习和深度学习的发展,各种预训练模型(Pre
‑
Training Model,PTM)相继问世。预训练模型(pre
‑
training model)是先通过一批语料进行训练模型,然后在这个初步训练好的模型基础上,再继续训练。目前无论在CV领域还是自然语言处理(NLP)领域,预训练都是一个很普遍的方法。Universal Sentence Encoder是Google在2018年提出的将句子编码成嵌入向量的模型,即题库管理系统中试题编码模型,这些嵌入向量专门用于句子相似度研究的NLP任务。
[0009]公布号为CN115344645A,公开了一种基于Debezium同步Oracle数据至GreenPlum的方法及工具,虽然具有实时、快速同步数据的优点,但是相较于其他数据库,尽管Oracle提供了LogMiner接口,只能对主库进行CDC,无法用于ADG备库;由于logMiner设计初衷为对
Redo logs诊断工具而非专门的CDC工具,故并未对持续运行进行任何效率开销优化,直接运行于主库势必会对主库业务正常运行造成影响;抽取性能受限,在每秒钟几百个事务时就会遇到较大的延迟和内存问题。
[0010]公布号为CN115391577A公开了一种基于机器学习算法的电子档案管理方法与系统,该专利技术专利对文本文件的匹配关键词进行加权处理,得到匹配关键词的权值,但是存在维数爆炸问题,文本相似度难以有效计算;此外文本集合中的各词之间是相互独立的,因此计算中缺失单词之间的语义关系,影响文本语义相似度的性能。
技术实现思路
[0011]为克服现有技术的不足,本专利技术的目的是提供一种基于余弦相似度算法的实时语义相似度匹配设计方法,JavaWeb应用端从应用数据库MySQL中实时同步数据到Kafka消息队列,完成对从应用数据库MySQL增量的数据实时抽取及转换;Python Web消费者通过客户端消费获取数据,利用余弦相似度算法检索文本的语义相似度。
[0012]为实现上述目的,本专利技术通过以下技术方案实现:
[0013]一种基于余弦相似度算法的实时语义相似度匹配设计方法,具体包括以下内容:
[0014]1)在JavaWeb应用端上传文本信息到应用数据库MySQL;
[0015]2)基于Debezium低延迟流式处理平台动态捕获CDC实时数据;
[0016]3)基于kafka消息队列集群,通过Kafka Connect消息中间件插件的Connector连接器监控一个上游数据库服务器,捕获Debezium配置的所有的应用数据库MySQL的更改,写入kafka消息队列集群的对应topic主题中;
[0017]4)在Kafka Connect消息中间件插件中配置Kafka Connector transforms过滤器,用于进行轻量级的消息修改和消息过滤;
[0018]5)将捕获到的数据,经过Kafka Connect消息中间件插件轻量过滤后写入到kafka消息队列集群;
[0019]6)通过Python Consumer消费者消费kafka消息队列集群中的数据,经过句子嵌入向量化处理,将句子文本信息以及句子向量写入ElasticSearch全文搜索引擎中;
[0020]7)通过发送HTTP协议的request请求,将成功写入文本信息返回给JavaWeb应用端,更新应用数据库MySQL;
[0021]8)在Browser/Server网络结构模式下,Python Web后端接收用户输入文本,连接ElasticSearch全文搜索引擎,利用余弦相似度算法,进行语义相似度匹配,具体包括以下内容:
[0022]基于text embedding句子嵌入技术的余弦相似度算法和CDC技术,从应用数据库MySQL中将数据实时同步过来,利用Universal Sentence Encoder预训练模型将每一行数据的文本数据转化为向量,保存在ElasticSearch全文搜索引擎中;
[0023]客户端用户输入文本数据,通过Universal Sentence Encoder预训练模型,输出512维的文本嵌入向量,将文本的特征数据转化为向量,将向量放到ElasticSearch全文搜索引擎中的查询语句,通过利用余弦相似度算法,得到ElasticSearch全文搜索引擎中TopN个相似度最高的结果,分值由高到低排序,进行语义相似度匹配。
[0024]余弦相似度算法,具体包括以下内容:
[0025]1)基于Text embedding句子嵌入技术,使用文本语义层的信息对文档进行排名;
[0026]2)基于Universal Sen本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于余弦相似度算法的实时语义相似度匹配设计方法,其特征在于,具体包括以下内容:1)在Java Web应用端上传文本信息到应用数据库MySQL;2)基于Debezium低延迟流式处理平台动态捕获CDC实时数据;3)基于kafka消息队列集群,通过Kafka Connect消息中间件插件的Connector连接器监控一个上游数据库服务器,捕获Debezium配置的所有的应用数据库MySQL的更改,写入kafka消息队列集群的对应topic主题中;4)在Kafka Connect消息中间件插件中配置Kafka Connector transforms过滤器,用于进行轻量级的消息修改和消息过滤;5)将捕获到的数据经过Kafka Connect消息中间件插件轻量过滤后,写入到kafka消息队列集群;6)通过Python Consumer消费者消费kafka消息队列集群中的数据,经过句子嵌入向量化处理,将句子文本信息以及句子向量写入ElasticSearch全文搜索引擎中;7)通过发送HTTP协议的request请求,将成功写入文本信息返回给Java Web应用端,更新应用数据库MySQL;8)在Browser/Server网络结构模式下,Python Web后端接收用户输入文本,连接ElasticSearch全文搜索引擎,利用余弦相似度算法,进行语义相似度匹配,具体包括以下内容:基于text embedding句子嵌入技术的余弦相似度算法和CDC技术,从应用数据库MySQL中将数据实时同步过来,利用Universal Sentence Encoder预训练模型将每一行数据的文本数据转化为向量,保存在ElasticSearch全文搜索引擎中;客户端用户输入文本数据,通过Universal Sentence Encoder预训练模型,输出512维的文本嵌入向量,将文本的特征数据转化为向量,将向量放到ElasticSearch全文搜索引擎中的查询语句,通过利用余弦相似度算法,得到ElasticSearch全文搜索引擎中TopN个相似度最高的结果,分值由高到低排序,进行语义相似度匹配。2.根据权利要求1所述的一种基于余弦相似度算法的实时语义相似度匹配设计方法,其特征在于,所述的余弦相似度算法,具体包括以下内容:1)基于Text embedding句子嵌入技术,使用文本语义层的信息对文档进行排名;2)基于Universal Sentence Encoder预训练模型,利用text embedding句子嵌入技术,输出句子嵌入向量;3)Text embedding句子嵌入技术的向量纬度是512;Text embedding句子嵌入技术将文本编码为低维空间向量;4)余弦相似度通过计算两个向量的夹角的余弦值来度量它们之间的相似性...
【专利技术属性】
技术研发人员:魏铭濡,王里程,熊鑫,韩日东,黄永梁,宋岩峰,王亚杰,
申请(专利权)人:鞍钢集团信息产业有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。