CN109101479B - 一种用于中文语句的聚类方法及装置 - Google Patents
一种用于中文语句的聚类方法及装置 Download PDFInfo
- Publication number
- CN109101479B CN109101479B CN201810579083.2A CN201810579083A CN109101479B CN 109101479 B CN109101479 B CN 109101479B CN 201810579083 A CN201810579083 A CN 201810579083A CN 109101479 B CN109101479 B CN 109101479B
- Authority
- CN
- China
- Prior art keywords
- similarity
- question
- sentence
- word
- training set
- 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
Classifications
-
- 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/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种用于中文语句的聚类方法及装置,涉及互联网技术领域,能够缓减针对汉语句子的分析结果不佳的问题。本发明包括:建立训练集,所述训练集包括了用于进行聚类处理的候选语句;利用由词向量模型计算得到的词向量,获取所述训练集中各个候选语句的相似度;根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理。本发明适用于针对中文语句的聚类处理。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种用于中文语句的聚类方法及装置。
背景技术
有关机器人自动问答系统中所应用的数学方法,其实很早就开始了理论研究,之后又由硅谷的几家网络技术公司,比如谷歌,开始实际的市场应用,目前国内的互联网公司也在加大投入,并不断推出新的方案。
问句相似度计算方法,是机器人自动问答系统中的关键部分,而目前针对汉语句子的句法分析技术仍然有待提高。其中,问句相似度计算结果的准确率,将直接影响查询结果。目前常用的方案是,从已有的问题库中搜索相似问句,供用户自己选择。但是基于关键词搜索结果仅仅只是文字匹配,在语义相关性,发散性和多样性方面都有所欠缺。
在问句相似度计算过程中,实现聚类的方法,一般是采用Lucene/Solr、FastText和Word2Vec等技术实现句子聚类。但是,采用Lucene/Solr作为搜索引擎技术基于文本匹配计算句子相似度来进行聚类,难以做到基于语义等更深层次的相关度匹配。而采用FastText和word2vec虽然能在词语聚类分类上效果显著,但是平均化成句向量doc2vec之后,受到噪音词影响很不稳定,聚类结果不准确。从而导致针对汉语句子的分析结果不佳。
发明内容
本发明的实施例提供一种用于中文语句的聚类方法及装置,能够缓减针对汉语句子的分析结果不佳的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
建立训练集,包括:读取前端服务器的问答日志,并从所述问答日志中提取历史数据,其中,所述前端服务器用于通过聊天界面与用户设备进行信息交互,从而形成对话场景;所述问答日志中包括了指定数量的对话场景,每个对话场景包括至少一个提问语句和至少一个回答语句;根据所述历史数据生成训练集,其中,所述训练集包括了用于进行聚类处理的候选语句。所述训练集包括了用于进行聚类处理的候选语句;
利用由词向量模型计算得到的词向量,获取所述训练集中各个候选语句的相似度;
根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理。
在传统的聊天机器人应用方面,常用的聚类工具往往采用Lucene/Solr作为搜索引擎技术基于文本匹配计算句子相似度来进行聚类,不能做到基于语义等更深层次的相关度匹配。本发明基于深度学习技术实现,具体通过FastText和Word2Vec训练出的词向量,结合文本匹配的相似度、以及进一步的关键词权重等多方面考量,对语句进行聚类,从而得到更加准确的聚类结果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种可能的系统架构示意图;
图2为本发明实施例提供的方法流程示意图;
图3为本发明实施例提供的装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例中的方法流程,具体可以在一种如图1所示的系统上执行,该系统包括:前端服务器、后台服务器和数据库。其中,前端服务器主要用于:具体用于接收用户设备发送的搜索词,在实际应用中,用户设备发送的提问语句和回答语句,主要由用户通过用户设备的输入设备比如:键盘、触摸屏、鼠标等输入用户设备。
后台服务器主要用于:执行本实施例中的主要流程,从而实现语句的聚类处理和聚类处理之前的预处理工作(比如本实施例中的步骤S1-S3)。
本实施例中所揭示的前端服务器以及后台服务器,具体可以是服务器、工作站、超级计算机等设备,或者是由多个服务器组成的一种用于数据处理的服务器集群系统。需要说明的是,在实际应用中,前端服务器和后台服务器通常可以集成在同一个服务器集群中,即通过同一个服务器集群同时承担前端服务器和后台服务器的功能,并用于执行本实施例所提供的流程。
数据库主要用于:用于存储存储产品信息、电子商务平台、在线购物平台等在日常运行中生成的每日高频搜索词、用户的搜索日志等,以及用于存储前端服务器与用户设备进行信息交互中所产生的问答日志,其中,问答日志具体包括了客服与顾客之间通过聊天界面输入的提问语句和回答语句,在本实施例中,“语句”可以理解为由多个字符或者词组所组成的文本信息。
本实施例中所揭示的数据库,具体可以是一种Redis数据库或者其他类型的分布式数据库、关系型数据库等,具体可以是包括存储设备的数据服务器以及与数据服务器相连的存储设备,或者是由多个数据服务器和存储服务器组成的一种用于数据库的服务器集群系统。
客服人员具体可以通过员工终端,经由前端服务器与用户设备进行信息交互,客服人员与顾客的问答语句可以显示在聊天界面中,本实施例中的两个设备之间实现问答、聊天的具体方式,可以采用目前已有的在线聊天技术。
本实施例中所揭示的用户设备具体可以实做成单独一台装置,或整合于各种不同的媒体数据播放装置中,诸如机顶盒、移动电话、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)、多媒体播放器、数字摄影机、个人数字助理(personaldigital assistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等。
本发明实施例提供一种用于中文语句的聚类方法,如图2所示,包括:
S1、建立训练集。
其中,所述训练集包括了用于进行聚类处理的候选语句。
在本实施例中,建立训练集所需的数据,依照具体的业务场景获取,这些数据的来源,可以是预先已经准备好的样本库,例如,建立训练集的具体方式,包括:提取样本库中的样本数据,所述样本数据中包括了指定数量的对话场景,每个对话场景包括至少一个提问语句和至少一个回答语句。
也可以是,在实际应用中,前端服务器与用户终端进行数据交互过程中产生的日志,例如,建立训练集的具体方式,包括:
读取前端服务器的问答日志,并从所述问答日志中提取历史数据。并根据所述历史数据生成训练集。
其中,所述前端服务器用于通过聊天界面与用户设备进行信息交互,从而形成对话场景。所述问答日志中包括了指定数量的对话场景,每个对话场景包括至少一个提问语句和至少一个回答语句。所述训练集包括了用于进行聚类处理的候选语句。
从所述问答日志中提取历史数据,具体可以理解为:从当前时间开始算,在之前的某一时间段内问答日志中所记录的提问语句和回答语句,通常的在之前的某一时间段内的提问语句和回答语句,属于一段连续的对话语境,在本实施例中可以将这种连续的对话语境称为“对话场景”,至于多条语句之间如何判定为“连续”,可以参考目前常见的划分方式,比如在很多聊天工具中,会通过在聊天界面中显示时间戳来划分不同阶段的对话,比如qq中通过日期时间来分割对话内容。比如:
训练集采集自采用在线购物平台的客服中心,以百万条或千万条网上问答的历史问题集做为文本。经过语义分析工具进行分词处理。将分词后的文本再采用归一化处理、特殊符号处理、基于Zipf’s定律去噪等常用的数据清理手段,将清理后的数据作为训练集来使用。需要说明的是,在本领域中,“分词”往往也被称为“切词”,即按照一定的规则对语句中的字符进行划分,从而得到具有实际语义的词组。
S2、利用由词向量模型计算得到的词向量,获取所述训练集中各个候选语句的相似度。
具体的,本实施例中可以采用Word2Vec或者FastText的向量模型,来对训练集中各个语句的词组进行处理,生成相应的词向量,并基于所生成的词向量来计算句子相似度。
其中,利用机器学习开源库Gensim的CBoW和Skim-gram算法分别建模。同时分别使用了Hierrarchical Softmax与Negative Sampling两种算法对Skim-gram建模,且对模型中的预测窗口大小,低频词处理的参数均作了参数调节训练模型。通过使用每个词向量模型训练出的词向量进行相关句子分类,给不同参数的词向量模型打分,最终得到最适的word2vec词向量模型,例如:模型删除了出现少于5次的低频词后,剩余的每一个词组都有一个属于自己的300维向量的结算结果,以代表他们在空间中的向量状态。
对不同的词向量模型打分并筛选最适模型的具体方式,可以依据具体的应用场景和业务需求人工设定或者人工筛选,本实施例不再赘述。
由于Word2Vec使用Skip-gram模型在优化计算效率的同时存在一个缺陷,没有考虑到语序,因为句向量是通过简单的线性求和取平均值求得的。然而传统的n-gram模型因为随着n的增大,计算复杂度成指数倍增长而无法使用在大数据中。而且n-gram的数量比uni-gram的词数量大很多,想完全储存下所有的n-gram很不现实。因此在本实施例的优选方案中,可以采用Facebook推出的FastText开源包计算词向量解决这一问题,FastText计算出的词向量比原版的word2vec优势在于FastText可以自己设置n-gram(大词汇连续语音识别中常用的一种语言模型,对中文而言,称之为汉语语言模型(CLM,Chinese LanguageModel))的特征。FastText使用Flower-Noll-Vo hashing function将n-gram都map到哈希桶中,使得同一个桶中的n-gram可以共享一个词向量以实现词向量的n-gram。这样训练出的词向量在很多情况下比uni-gram训练出的word2vec向量语义上更加准确。
S3、根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理。
在传统的聊天机器人应用方面,常用的聚类工具往往采用Lucene/Solr作为搜索引擎技术基于文本匹配计算句子相似度来进行聚类,不能做到基于语义等更深层次的相关度匹配。本发明基于深度学习技术实现,具体通过FastText和Word2Vec训练出的词向量,结合文本匹配的相似度、以及进一步的关键词权重等多方面考量,对语句进行聚类,从而得到更加准确的聚类结果。
在本实施例中,在步骤S2:获取所述训练集中各个候选语句的相似度之前,还包括:
对所述历史数据中的各个语句进行分词处理得到语词集合。通过对所述词语集合进行词频计算得到词频列表。
其中,所述词频列表中记录了各个语句中的词组的出现频率。例如:本实施例中实现步骤S3中的聚类处理时,可以采用TF-IDF(Term Frequency-Inverse DocumentFrequency,词频-逆文件频率)模型来实现其中的相似度计算,而TF-IDF模型的建立依赖于外部文本库,并且需要基于外部文本库来做TF(Term Frequency)和IDF(Inverse DocumentFrequency)值的预计算。因此,在本实施例中,使用清理后的数据集对每一条语句都进行预计算,生成可以应用于TF-IDF的词频列表,从而为后续的TF-IDF相似度计算提供数据,减少计算时间。
进一步的,在本实施例中,可以采用solr技术来提高查询效率。Solr方法具备了搜索效率高,搜索范围广的特点,基于Zipf定律的TF-IDF聚类方法通过统计学的方法计算两个句子或者文档的相似度进一步保证了文字层面的准确性并提供了相似度排序的基础。
具体的,通过把清理过后的训练集中各个语句进行分词后,导入在数据库或者后台服务器上搭建的Solr(搜索应用服务器),实现直接以分词进行搜索。从而可以为后续的聚类处理提供初步的候选问题。候选问题数量从128–4096的区间进行动态调节。其中,Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。但Solr对Lucene进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。
在本实施例中,步骤S2:获取所述训练集中各个候选语句的相似度的具体方式,可以包括:
对所得到的词向量进行平均化计算,之后根据平均化计算的结果,确定各个候选语句中词组的欧氏距离。再根据各个候选语句中词组的欧氏距离,确定各个候选语句之间的相似度,并统计得到其中的每个候选语句的平均相似度分值。
本实施例中的聚类处理逻辑:即使用训练出的词向量与TF-IDF等多种方法相结合进行聚类,其中:
以TF-IDF方法实现聚类效果十分显著,但也存在缺少差异性的缺点,会导致语义接近但是用词不同的句子排名靠后,尤其不适合中文语境下的聚类处理。
本实施例中,采用FastText或Word2Vec训练出的词向量实现的语句的聚类,使得聚类过程中的匹配动作考虑到词语语义的特性,这就正好弥补了TF-IDF聚类方法的缺点。例如:根据对训练集中各语句的分词结果,对Solr库进行快速搜索,取得1024个备选相似问题。并记录下每个问题的Solr相似度分值。再使用由word2vec或fastText得到的词向量平均化计算出doc2vec,再通过计算欧氏距离来算出句子之间的相似度。由此得到输入问题(标准问)和每一个备选问题(相似问)的word2vec平均相似度分值。
本实施例中,步骤S3:根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理的具体方式,可以包括:
提取各个提问语句的平均相似度分值。并根据所述各个提问语句的平均相似度分值,确定各个提问语句的相似问语句。
具体的,每一个提问语句作为标准问,且与至少一个相似问对应,对于每一个标准问,进行如下处理:
基于标准问中的每个词组的词向量,计算所对应的相似问中所有词组的欧氏距离,并得到所述标准问中的所有的词组的最大相似度分值。根据所述标准问中的所有的词组最大相似度分值,确定所述标准问与各个相似问之间的最大相似度分值。再将各个相似问按照最大相似度分值由高至低的顺序排列。例如:对标准问中的每个词的word2vec或fastText词向量都计算其对相似问中所有词的word2vec或fastText词向量的欧氏距离,每次只取最大相似值。最后将所有最大值相加再除以标准问的长度,以计算两个句子之间的相似度。由此得到输入问题和每一个备选问题的word2vec最大相似度分值。
其中,标准问与相似问之间的相似度分值的计算方式,包括:把标准问和相似问之一进行TF-IDF值计算,对每个相同分词的TF-IDF值计算余弦相似度。由此得到标准问和每一个相似问的TF-IDF相似度分值。
在实际应用中,需要针对每一个语句进行多次计算。通过多次计算求平均,或者对多次计算的结果进行进一步的加权计算,求取最终的相似度分值并作为所述平均相似度分值。从而在保证聚类准确性的情况下加强相似问的发散性。但是,对于一些长度较短的标准问语句的聚类,多个相似问的相似度可能是一样的,即可能会出现:与标准问对应的多个相似问的最大相似度分值相同,的情况。
针对这种情况,本实施例中,对于最大相似度分值相同的相似问,可以进行如下处理:
根据预设关键词和所述预设关键词的权重值,计算最大相似度分值相同的各个相似问的权重分值。
按照所得权重分值由高至低的顺序,排列所述最大相似度分值相同的相似问。具体的,可以在后台服务器中存储预先设置的词典,词典中包括了关键词,以及各个关键词对应的权重值,具体可以关键词/权重值的表格形式存储。预先设置的词典中的这些关键词,可以称为预设关键词,例如:词典中的关键词,可以包括品牌、地区、专有名词等,加以权重,同时对候选问和输入问计算Jaccard相似度们也加以权重。这样就进一步区分了相似度相同的语句,使得结果更加合理、有序。
而一个语句往往是由多个词组组成的,当一个语句中的词组能够匹配到词典中的关键词,则根据所匹配的关键词的权重值,对语句进行打分,具体的打分规则和算法可以根据具体应用场景和业务类型,由技术人员灵活设定。
目前,采用Lucene/Solr等开源软件,目的在于以文字匹配现有数据中关键词实现的搜索算法进行聚类。TF-IDF是基于统计学原理理解文档中词语权重来实现句子相似度比较的技术进行句子聚类。FastText和Word2Vec是利用深度学习理解上下文语义,使用自然语言处理(NLP)技术将每个词语的语义映射成一个多维向量以方便计算的技术。三者各有各自的优缺点,现有技术中多为单一使用其中一种。本实施例中,实质上是在经过大量研究和实验后将三者结合,从而提高了聚类效果,同时兼顾了匹配的效率和速度。
例如:现有技术中,采用Lucene/Solr作为搜索引擎技术,并基于文本匹配计算句子相似度来进行聚类的方案,不能做到基于语义等更深层次的相关度匹配。
而本实施例中,使用深度学习技术计算出FastText和Word2Vec训练出的词向量,结合文本匹配技术和关键词权重多方面考量进行句子聚类,从文本匹配,语义向量的多维向量空间以及赋予合理的关键词权重进行句子聚类,能够得到更加准确的聚类结果。
再例如:由于在自然语言中,每个词在句子中的重要程度都不同。因此在现有技术中,使用句子中Word2Vec平均化得到的Doc2Vec无法捕捉句子的重点,也就导致了难以做出能代表句向量(语义向量)的Doc2Vec。
本实施例中,将语句词组与词典中关键词进行匹配,并且设计出对Word2Vec设置合理的权重的算法来计算句子之间的相似度,在TF-IDF和Solr计算出的句子相关性结果综合考量的基础上,运用FastText和Gensim计算出的word2vec词向量,关键词权重算法和Jaccard算法重新计算语句的排名,使得句子相似度聚类结果更加有序,兼顾文字准确性和语义相关性。即,本发明在现有的字符检索技术上,进一步增加了句向量(语义向量)这个维度的分析,从而克服现有技术中检索不考虑语义的问题。
在本实施例中,应用更先进的fastText来训练词向量,比Gensim和Google的word2vec工具包训练出的词向量在语义上更加准确。数据量和数据的准确度对机器学习建模至关重要。fastText拥有超高的计算速度,确保可以随时更新优质数据。自然语言处理中语句的准确意思不全部来源于原句,n-gram的分割窗口大小也对准确表达语义有很大影响,但是单纯的扩大窗口长度n会让计算复杂度呈指数倍增长。fastText利用hashing算法大大的优化了这一问题,将word2vec只考虑uni-gram优化到可以考虑2-gram,3-gram甚至更大,大大的提高了语义的理解程度。成功将关键词权重,Jaccard距离加入算法,解决了所有词都对句子贡献一样信息的缺点,很大程度上降低了语义理解的噪声(noise)。将传统的基于词频统计的方法和词向量关于语义理解的方法相结合,得到一种高效且高准确度的聚类匹配工具。
本发明实施例还提供一种用于中文语句的聚类装置,如图3所示的,包括:
第一预处理模块,用于建立训练集,所述训练集包括了用于进行聚类处理的候选语句;
第二预处理模块,用于利用由词向量模型计算得到的词向量,获取所述训练集中各个候选语句的相似度;
处理模块,用于根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理。
在传统的聊天机器人应用方面,常用的聚类工具往往采用Lucene/Solr作为搜索引擎技术基于文本匹配计算句子相似度来进行聚类,不能做到基于语义等更深层次的相关度匹配。本发明基于深度学习技术实现,具体通过FastText和Word2Vec训练出的词向量,结合文本匹配的相似度、以及进一步的关键词权重等多方面考量,对语句进行聚类,从而得到更加准确的聚类结果。
其中,所述第一预处理模块,具体用于读取前端服务器的问答日志,并从所述问答日志中提取历史数据,其中,所述前端服务器用于通过聊天界面与用户设备进行信息交互,从而形成对话场景;所述问答日志中包括了指定数量的对话场景,每个对话场景包括至少一个提问语句和至少一个回答语句;并根据所述历史数据生成训练集,其中,所述训练集包括了用于进行聚类处理的候选语句;
所述第一预处理模块,还用于在获取所述训练集中各个候选语句的相似度之前,对所述历史数据中的各个语句进行分词处理得到语词集合;并通过对所述词语集合进行词频计算得到词频列表,所述词频列表中记录了各个语句中的词组的出现频率;
所述第二预处理模块,具体用于对所得到的词向量进行平均化计算,之后根据平均化计算的结果,确定各个候选语句中词组的欧氏距离;并根据各个候选语句中词组的欧氏距离,确定各个候选语句之间的相似度,并统计得到其中的每个候选语句的平均相似度分值。
具体的,所述处理模块,具体用于:
提取各个提问语句的平均相似度分值;并根据所述各个提问语句的平均相似度分值,确定各个提问语句的相似问语句;
其中:每一个提问语句作为标准问,且与至少一个相似问对应,对于每一个标准问,进行如下处理:基于标准问中的每个词组的词向量,计算所对应的相似问中所有词组的欧氏距离,并得到所述标准问中的所有的词组的最大相似度分值;之后,根据所述标准问中的所有的词组最大相似度分值,确定所述标准问与各个相似问之间的最大相似度分值;并将各个相似问按照最大相似度分值由高至低的顺序排列;
对于最大相似度分值相同的相似问,进行如下处理:根据预设关键词和所述预设关键词的权重值,计算最大相似度分值相同的各个相似问的权重分值;并按照所得权重分值由高至低的顺序,排列所述最大相似度分值相同的相似问。
目前,采用Lucene/Solr等开源软件,目的在于以文字匹配现有数据中关键词实现的搜索算法进行聚类。TF-IDF是基于统计学原理理解文档中词语权重来实现句子相似度比较的技术进行句子聚类。FastText和Word2Vec是利用深度学习理解上下文语义,使用自然语言处理(NLP)技术将每个词语的语义映射成一个多维向量以方便计算的技术。三者各有各自的优缺点,现有技术中多为单一使用其中一种。本实施例中,实质上是在经过大量研究和实验后将三者结合,从而提高了聚类效果,同时兼顾了匹配的效率和速度。
例如:现有技术中,采用Lucene/Solr作为搜索引擎技术,并基于文本匹配计算句子相似度来进行聚类的方案,不能做到基于语义等更深层次的相关度匹配。
而本实施例中,使用深度学习技术计算出FastText和Word2Vec训练出的词向量,结合文本匹配技术和关键词权重多方面考量进行句子聚类,从文本匹配,语义向量的多维向量空间以及赋予合理的关键词权重进行句子聚类,能够得到更加准确的聚类结果。
再例如:由于在自然语言中,每个词在句子中的重要程度都不同。因此在现有技术中,使用句子中Word2Vec平均化得到的Doc2Vec无法捕捉句子的重点,也就导致了难以做出能代表句向量(语义向量)的Doc2Vec。
本实施例中,将语句词组与词典中关键词进行匹配,并且设计出对Word2Vec设置合理的权重的算法来计算句子之间的相似度,在TF-IDF和Solr计算出的句子相关性结果综合考量的基础上,运用FastText和Gensim计算出的word2vec词向量,关键词权重算法和Jaccard算法重新计算语句的排名,使得句子相似度聚类结果更加有序,兼顾文字准确性和语义相关性。即,本发明在现有的字符检索技术上,进一步增加了句向量(语义向量)这个维度的分析,从而克服现有技术中检索不考虑语义的问题。
在本实施例中,应用更先进的fastText来训练词向量,比Gensim和Google的word2vec工具包训练出的词向量在语义上更加准确。数据量和数据的准确度对机器学习建模至关重要。fastText拥有超高的计算速度,确保可以随时更新优质数据。自然语言处理中语句的准确意思不全部来源于原句,n-gram的分割窗口大小也对准确表达语义有很大影响,但是单纯的扩大窗口长度n会让计算复杂度呈指数倍增长。fastText利用hashing算法大大的优化了这一问题,将word2vec只考虑uni-gram优化到可以考虑2-gram,3-gram甚至更大,大大的提高了语义的理解程度。成功将关键词权重,Jaccard距离加入算法,解决了所有词都对句子贡献一样信息的缺点,很大程度上降低了语义理解的噪声(noise)。将传统的基于词频统计的方法和词向量关于语义理解的方法相结合,得到一种高效且高准确度的聚类匹配工具。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (2)
1.一种用于中文语句的聚类方法,其特征在于,包括:
建立训练集,所述训练集包括了用于进行聚类处理的候选语句;
利用由词向量模型计算得到的词向量,获取所述训练集中各个候选语句的相似度;
其中,采用Word2Vec或者FastText的向量模型,来对训练集中各个语句的词组进行处理,生成相应的词向量,并基于所生成的词向量来计算句子相似度,包括:利用机器学习开源库Gensim的CBoW和Skim-gram算法分别建模,同时分别使用了Hierrarchical Softmax与Negative Sampling两种算法对Skim-gram建模,且对模型中的预测窗口大小,低频词处理的参数均作了参数调节训练模型,通过使用每个词向量模型训练出的词向量进行相关句子分类,给不同参数的词向量模型打分,最终得到最适的word2vec词向量模型;
根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理;
还包括:在获取所述训练集中各个候选语句的相似度之前,对历史数据中的各个语句进行分词处理得到词语集合;通过对所述词语集合进行词频计算得到词频列表,所述词频列表中记录了各个语句中的词组的出现频率;
所述获取所述训练集中各个候选语句的相似度,包括:对所得到的词向量进行平均化计算,之后根据平均化计算的结果,确定各个候选语句中词组的欧氏距离;根据各个候选语句中词组的欧氏距离,确定各个候选语句之间的相似度,并统计得到其中的每个候选语句的平均相似度分值;
所述根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理,包括:提取各个提问语句的平均相似度分值;根据所述各个提问语句的平均相似度分值,确定各个提问语句的相似问语句;
还包括:每一个提问语句作为标准问,且与至少一个相似问对应,对于每一个标准问,进行如下处理:基于标准问中的每个词组的词向量,计算所对应的相似问中所有词组的欧氏距离,并得到所述标准问中的所有的词组的最大相似度分值;根据所述标准问中的所有的词组最大相似度分值,确定所述标准问与各个相似问之间的最大相似度分值;将各个相似问按照最大相似度分值由高至低的顺序排列;
其中,标准问与相似问之间的相似度分值的计算方式,包括:把标准问和相似问之一进行TF-IDF值计算,对每个相同分词的TF-IDF值计算余弦相似度,由此得到标准问和每一个相似问的TF-IDF相似度分值;
对于最大相似度分值相同的相似问,进行如下处理:根据预设关键词和所述预设关键词的权重值,计算最大相似度分值相同的各个相似问的权重分值;按照所得权重分值由高至低的顺序,排列所述最大相似度分值相同的相似问;
所述建立训练集,包括:
读取前端服务器的问答日志,并从所述问答日志中提取历史数据,其中,所述前端服务器用于通过聊天界面与用户设备进行信息交互,从而形成对话场景;所述问答日志中包括了指定数量的对话场景,每个对话场景包括至少一个提问语句和至少一个回答语句;
根据所述历史数据生成训练集,其中,所述训练集包括了用于进行聚类处理的候选语句。
2.一种用于中文语句的聚类装置,其特征在于,包括:
第一预处理模块,用于建立训练集,所述训练集包括了用于进行聚类处理的候选语句;
第二预处理模块,用于利用由词向量模型计算得到的词向量,获取所述训练集中各个候选语句的相似度;其中,采用Word2Vec或者FastText的向量模型,来对训练集中各个语句的词组进行处理,生成相应的词向量,并基于所生成的词向量来计算句子相似度,包括:利用机器学习开源库Gensim的CBoW和Skim-gram算法分别建模,同时分别使用了Hierrarchical Softmax与Negative Sampling两种算法对Skim-gram建模,且对模型中的预测窗口大小,低频词处理的参数均作了参数调节训练模型,通过使用每个词向量模型训练出的词向量进行相关句子分类,给不同参数的词向量模型打分,最终得到最适的word2vec词向量模型;
处理模块,用于根据所得到的词向量和所述各个候选语句的相似度,对所述训练集中的候选语句进行聚类处理;
所述第一预处理模块,具体用于读取前端服务器的问答日志,并从所述问答日志中提取历史数据,其中,所述前端服务器用于通过聊天界面与用户设备进行信息交互,从而形成对话场景;所述问答日志中包括了指定数量的对话场景,每个对话场景包括至少一个提问语句和至少一个回答语句;并根据所述历史数据生成训练集,其中,所述训练集包括了用于进行聚类处理的候选语句;
所述第一预处理模块,还用于在获取所述训练集中各个候选语句的相似度之前,对所述历史数据中的各个语句进行分词处理得到词语集合;并通过对所述词语集合进行词频计算得到词频列表,所述词频列表中记录了各个语句中的词组的出现频率;
所述第二预处理模块,具体用于对所得到的词向量进行平均化计算,之后根据平均化计算的结果,确定各个候选语句中词组的欧氏距离;并根据各个候选语句中词组的欧氏距离,确定各个候选语句之间的相似度,并统计得到其中的每个候选语句的平均相似度分值;
其中,标准问与相似问之间的相似度分值的计算方式,包括:把标准问和相似问之一进行TF-IDF值计算,对每个相同分词的TF-IDF值计算余弦相似度,由此得到标准问和每一个相似问的TF-IDF相似度分值;所述处理模块,具体用于:
提取各个提问语句的平均相似度分值;并根据所述各个提问语句的平均相似度分值,确定各个提问语句的相似问语句;
其中:每一个提问语句作为标准问,且与至少一个相似问对应,对于每一个标准问,进行如下处理:基于标准问中的每个词组的词向量,计算所对应的相似问中所有词组的欧氏距离,并得到所述标准问中的所有的词组的最大相似度分值;之后,根据所述标准问中的所有的词组最大相似度分值,确定所述标准问与各个相似问之间的最大相似度分值;并将各个相似问按照最大相似度分值由高至低的顺序排列;
对于最大相似度分值相同的相似问,进行如下处理:根据预设关键词和所述预设关键词的权重值,计算最大相似度分值相同的各个相似问的权重分值;并按照所得权重分值由高至低的顺序,排列所述最大相似度分值相同的相似问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810579083.2A CN109101479B (zh) | 2018-06-07 | 2018-06-07 | 一种用于中文语句的聚类方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810579083.2A CN109101479B (zh) | 2018-06-07 | 2018-06-07 | 一种用于中文语句的聚类方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101479A CN109101479A (zh) | 2018-12-28 |
CN109101479B true CN109101479B (zh) | 2023-12-05 |
Family
ID=64796697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810579083.2A Active CN109101479B (zh) | 2018-06-07 | 2018-06-07 | 一种用于中文语句的聚类方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101479B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111489743B (zh) * | 2019-01-28 | 2024-06-25 | 国家电网有限公司客户服务中心 | 一种基于智能语音技术的运营管理分析系统 |
CN109766429A (zh) * | 2019-02-19 | 2019-05-17 | 北京奇艺世纪科技有限公司 | 一种语句检索方法及装置 |
CN110083828A (zh) * | 2019-03-29 | 2019-08-02 | 珠海远光移动互联科技有限公司 | 一种文本聚类方法及装置 |
CN110413986B (zh) * | 2019-04-12 | 2023-08-29 | 上海晏鼠计算机技术股份有限公司 | 一种改进词向量模型的文本聚类多文档自动摘要方法及系统 |
CN112002313B (zh) * | 2019-05-09 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 交互方法及装置、音箱、电子设备和存储介质 |
CN110362343A (zh) * | 2019-07-19 | 2019-10-22 | 上海交通大学 | N-Gram的检测字节码相似度的方法 |
CN110362685A (zh) * | 2019-07-22 | 2019-10-22 | 腾讯科技(武汉)有限公司 | 聚类方法和聚类设备 |
CN110442718B (zh) * | 2019-08-08 | 2023-12-08 | 腾讯科技(深圳)有限公司 | 语句处理方法、装置及服务器和存储介质 |
CN112445910B (zh) * | 2019-09-02 | 2022-12-27 | 上海哔哩哔哩科技有限公司 | 一种信息分类方法及系统 |
CN112528630B (zh) * | 2019-09-19 | 2024-09-20 | 北京国双科技有限公司 | 文本相似度确定方法、装置、存储介质和电子设备 |
CN110750994A (zh) * | 2019-10-23 | 2020-02-04 | 北京字节跳动网络技术有限公司 | 一种实体关系抽取方法、装置、电子设备及存储介质 |
CN110909139A (zh) * | 2019-11-08 | 2020-03-24 | 出门问问信息科技有限公司 | 一种问答方法、装置及电子设备 |
CN110990451B (zh) * | 2019-11-15 | 2023-05-12 | 浙江大华技术股份有限公司 | 基于句子嵌入的数据挖掘方法、装置、设备及存储装置 |
CN111177379B (zh) * | 2019-12-20 | 2023-05-23 | 深圳市优必选科技股份有限公司 | 低精度问题的归类方法、智能终端及计算机可读存储介质 |
CN111259649A (zh) * | 2020-01-19 | 2020-06-09 | 深圳壹账通智能科技有限公司 | 信息交互平台的交互数据分类方法、装置及存储介质 |
CN111309905A (zh) * | 2020-02-06 | 2020-06-19 | 北京明略软件系统有限公司 | 一种对话语句的聚类方法、装置、电子设备及存储介质 |
CN111488429A (zh) * | 2020-03-19 | 2020-08-04 | 杭州叙简科技股份有限公司 | 一种基于搜索引擎的短文本聚类系统及其短文本聚类方法 |
CN112632965B (zh) * | 2020-12-25 | 2024-05-03 | 上海德拓信息技术股份有限公司 | 一种针对政府服务热线领域的工单自动分类方法 |
CN112988977A (zh) * | 2021-04-25 | 2021-06-18 | 成都索贝数码科技股份有限公司 | 基于近似词的模糊匹配媒资内容库检索方法 |
CN114266255B (zh) * | 2022-03-01 | 2022-05-17 | 深圳壹账通科技服务有限公司 | 基于聚类模型的语料分类方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955965A (zh) * | 2016-06-21 | 2016-09-21 | 上海智臻智能网络科技股份有限公司 | 问句信息处理方法及装置 |
CN106776713A (zh) * | 2016-11-03 | 2017-05-31 | 中山大学 | 一种基于词向量语义分析的海量短文本聚类方法 |
CN107679144B (zh) * | 2017-09-25 | 2021-07-16 | 平安科技(深圳)有限公司 | 基于语义相似度的新闻语句聚类方法、装置及存储介质 |
-
2018
- 2018-06-07 CN CN201810579083.2A patent/CN109101479B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109101479A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101479B (zh) | 一种用于中文语句的聚类方法及装置 | |
TWI732271B (zh) | 人機對話方法、裝置、電子設備及電腦可讀媒體 | |
CN112035730B (zh) | 一种语义检索方法、装置及电子设备 | |
Kutuzov et al. | Texts in, meaning out: neural language models in semantic similarity task for Russian | |
US8073877B2 (en) | Scalable semi-structured named entity detection | |
CN111797214A (zh) | 基于faq数据库的问题筛选方法、装置、计算机设备及介质 | |
CN105183833B (zh) | 一种基于用户模型的微博文本推荐方法及其推荐装置 | |
CN112667794A (zh) | 一种基于孪生网络bert模型的智能问答匹配方法及系统 | |
CN110096567A (zh) | 基于qa知识库推理的多轮对话回复选择方法、系统 | |
CN106250526A (zh) | 一种基于内容及用户行为的文本类推荐方法和装置 | |
CN112905768A (zh) | 一种数据交互方法、装置及存储介质 | |
CN110362678A (zh) | 一种自动提取中文文本关键词的方法与装置 | |
CN108763529A (zh) | 一种智能检索方法、装置和计算机可读存储介质 | |
CN114880447A (zh) | 信息检索方法、装置、设备及存储介质 | |
Zhang et al. | Research on keyword extraction of Word2vec model in Chinese corpus | |
CN117076636A (zh) | 一种智能客服的信息查询方法、系统和设备 | |
CN113505196A (zh) | 基于词性的文本检索方法、装置、电子设备及存储介质 | |
CN110727769A (zh) | 语料库生成方法及装置、人机交互处理方法及装置 | |
WO2022116324A1 (zh) | 搜索模型训练方法、装置、终端设备及存储介质 | |
CN107239455B (zh) | 核心词识别方法及装置 | |
Gupta et al. | Songs recommendation using context-based semantic similarity between lyrics | |
CN113761125A (zh) | 动态摘要确定方法和装置、计算设备以及计算机存储介质 | |
CN113761104A (zh) | 知识图谱中实体关系的检测方法、装置和电子设备 | |
CN117421404A (zh) | 多路文本召回方法、系统、电子设备和存储介质 | |
JP6173958B2 (ja) | 複数のハッシュテーブルを用いて検索するプログラム、装置及び方法 |
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 |