CN112883154B - 文本主题挖掘方法、装置、计算机设备及存储介质 - Google Patents

文本主题挖掘方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112883154B
CN112883154B CN202110121076.XA CN202110121076A CN112883154B CN 112883154 B CN112883154 B CN 112883154B CN 202110121076 A CN202110121076 A CN 202110121076A CN 112883154 B CN112883154 B CN 112883154B
Authority
CN
China
Prior art keywords
text
matrix
topic
texts
target
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
Application number
CN202110121076.XA
Other languages
English (en)
Other versions
CN112883154A (zh
Inventor
杨德杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202110121076.XA priority Critical patent/CN112883154B/zh
Publication of CN112883154A publication Critical patent/CN112883154A/zh
Application granted granted Critical
Publication of CN112883154B publication Critical patent/CN112883154B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/258Heading extraction; Automatic titling; Numbering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及人工智能技术领域,提供一种文本主题挖掘方法、装置、计算机设备及存储介质,包括:使用高斯核函数基于多个文本计算得到相似矩阵;基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇;提取每个文本簇的主题关键词;计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数;根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。本发明能够解决主题分散的问题,挖掘出的主题更符合用户的实际需求。

Description

文本主题挖掘方法、装置、计算机设备及存储介质
技术领域
本发明涉及人工智能技术领域,具体涉及一种文本主题挖掘方法、装置、计算机设备及存储介质。
背景技术
在教育培训场景中,用户生产内容(user generated content,UGC)是代理人课程生产的重要手段之一,对增加课程供给、提升培训效果有积极作用。
发明人在实现本发明的过程中发现,目前的UGC创作存在内容分散、质量层次不齐等问题,那么在通过文本关键词提取方法,如TF-IDF、LDA等来提取文本主题或者关键词,会出现提取的主题分散不集中,因而,很难真正形成选题参考,也就无法实际形成业务应用价值。
发明内容
鉴于以上内容,有必要提出一种文本主题挖掘方法、装置、计算机设备及存储介质,能够基于用户生产内容,自动化的挖掘出文本中的关键信息,从而能为业务提供选题参考。
本发明的第一方面提供一种文本主题挖掘方法,所述方法包括:
使用高斯核函数基于多个文本计算得到相似矩阵;
基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇;
提取每个文本簇的主题关键词;
计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数;
根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。
在一个可选的实施例中,所述使用高斯核函数基于多个文本计算得到相似矩阵包括:
对每个文本进行分词,得到每个文本的分词向量;
使用所述多个文本的分词向量训练doc2vec模型;
使用训练完成的doc2vec模型提取所述多个文本的文本向量;
使用高斯核函数基于所述多个文本的文本向量计算得到相似矩阵。
在一个可选的实施例中,所述使用高斯核函数基于所述多个文本的文本向量计算得到相似矩阵包括:
响应于用户输入的文本簇的目标数量,根据所述目标数量调整高斯核函数的宽度参数得到目标宽度参数;
根据所述目标宽度参数得到目标高斯核函数;
使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵。
在一个可选的实施例中,所述基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇包括:
基于所述相似矩阵构造邻接矩阵与度矩阵;
根据所述邻接矩阵和所述度矩阵计算得到拉普拉斯矩阵;
对所述拉普拉斯矩阵进行标准化处理;
计算标准化处理后的拉普拉斯矩阵的多个特征值及每个特征值对应的特征向量;
获取所述多个特征值中的最小K个特征值及所述最小K个特征值对应的特征向量;
采用k-means聚类算法对所述最小K个特征值对应的特征向量进行聚类;
使用混合高斯模型对聚类得到的多个质心点进行聚类,得到多个文本簇。
在一个可选的实施例中,所述度矩阵为对角矩阵,所述对角矩阵主对角线的值代表每个文本的度,所述每个文本的度定义为与所述文本相连的所有边的权重之和,所述拉普拉斯矩阵为所述度矩阵与所述邻接矩阵的差,将所述拉普拉斯矩阵进行标准化处理后得到D^((-1)/2)LD^((-1)/2),其中,D表示所述度矩阵,L表示所述拉普拉斯矩阵。
在一个可选的实施例中,所述提取每个文本簇的主题关键词包括:
使用主题模型提取每个文本簇的多个主题;
根据每个主题的概率对所述多个主题进行倒序排序;
获取倒序排序后的多个主题中前预设数量的目标主题;
将所述目标主题对应的关键词作为对应文本簇的主题关键词。
在一个可选的实施例中,所述基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数包括:
针对每个文本簇,获取包含所述文本簇的每个主题关键词的目标文本;
根据每个主题关键词的目标文本的阅读次数进行加权求和得到所述主题关键词的阅读次数。
本发明的第二方面提供一种文本主题挖掘装置,所述装置包括:
相似计算模块,用于使用高斯核函数基于多个文本计算得到相似矩阵;
文本聚类模块,用于基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇;
主题提取模块,用于提取每个文本簇的主题关键词;
次数计算模块,用于计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数;
主题挖掘模块,用于根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。
本发明的第三方面提供一种计算机设备,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述文本主题挖掘方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述文本主题挖掘方法。
综上所述,本发明所述的文本主题挖掘方法、装置、计算机设备及存储介质,首先使用高斯核函数基于多个文本计算得到相似矩阵,从而基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇,利用谱聚类基于所述相似矩阵对多个文本进行聚类,能够使得每个类别由相似的文本聚合而成,这些聚合的文本所表达的主题也更加相近,得到的文本簇更聚集,一定程度上解决了主题分散的问题;接着,提取每个文本簇的主题关键词,计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数,由于主题关键词融合了阅读次数等信息,综合考量了文本的热门程度以及文本的关注度,从而根据每个文本簇的主题关键词的阅读次数挖掘得到的文本主题,更能反应用户的实际需求。
附图说明
图1是本发明实施例一提供的文本主题挖掘方法的流程图。
图2是本发明实施例二提供的文本主题挖掘装置的结构图。
图3是本发明实施例三提供的计算机设备的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例提供的文本主题挖掘方法由计算机设备执行,相应地,文本主题挖掘装置运行于计算机设备中。
图1是本发明实施例一提供的文本主题挖掘方法的流程图。所述文本主题挖掘方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,使用高斯核函数基于多个文本计算得到相似矩阵。
其中,所述高斯核函数是径向基函数(Radial Basis Function,RBF)中的一种,是某种沿径向对称的标量函数。
计算机设备首先提取每个文本的文本向量,然后使用高斯核函数基于多个文本的文本向量计算得到相似矩阵,所述相似矩阵为对称矩阵,所述相似矩阵中的每一个元素值表示对应的两个文本的文本向量之间的相似度。
在一个可选的实施例中,所述使用高斯核函数基于多个文本计算得到相似矩阵包括:
对每个文本进行分词,得到每个文本的分词向量;
使用所述多个文本的分词向量训练doc2vec模型;
使用训练完成的doc2vec模型提取所述多个文本的文本向量;
使用高斯核函数基于所述多个文本的文本向量计算得到相似矩阵。
首先对多个文本(doc1,doc2,doc3,…)进行分词,得到每个文本的分词向量(word1,word2,word3,word4,…);然后基于多个文本的分词向量对doc2vec模型进行训练得到每个文本的词语向量,将每个文本的词语向量进行拼接得到该文本的文本向量。
对于任意两个文本,基于高斯核函数计算任意两个文本的文本向量之间的相似度,基于多个相似度生成相似矩阵Sij
Sij表示文本i与文本j之间的高斯核距离,高斯核距离越大,表明文本i与文本j之间的相似度越大,高斯核距离越小,表明文本i与文本j之间的相似度越小。
高斯核距离的计算公式如下所示:
Figure BDA0002922305920000061
其中,vecdoci为文本i的文本向量,vecdocj为文本j的文本向量。σ为高斯核函数的宽度参数,是一个自由参数,一般选取接近0的正数,并根据聚类效果进行调节。
该可选的实施例中,由于高斯核函数为空间中任一点到高斯核中心点之间欧氏距离的单调函数,因此,通过高斯核函数计算任意两个文本向量之间的高斯核距离来计算两个文本之间的相似度,能够使得两个越相似的文本,对应的相似度越大,两个越不相似的文本,对应的相似度越小,避免了两个不相似的文本,计算得到的相似度却较大,或者两个较相似的文本,计算得到的相似度却较小的情况发生。如此,能够有利于后续将相似的文本聚为同一个类,将不相似的文本聚为不同的类,文本分类效果好。
在一个可选的实施例中,所述使用高斯核函数基于所述多个文本的文本向量计算得到相似矩阵包括:
响应于用户输入的文本簇的目标数量,根据所述目标数量调整高斯核函数的宽度参数得到目标宽度参数;
根据所述目标宽度参数得到目标高斯核函数;
使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵。
计算机设备上可以显示有界面,供用户输入文本簇的目标数量。所述文本簇的目标数量为用户希望将多个文本聚为类的数量。示例性,假设用户希望将多个文本聚为4类,则输入文本簇的目标数量为4。
计算机设备中可以默认设置有高斯核函数的宽度参数。响应于用户输入的文本簇的目标数量,比较所述目标数量与预设阈值。当所述目标数量大于所述预设阈值时,可以减少高斯核函数的宽度参数;当所述目标数量小于所述预设阈值时,可以增加高斯核函数的宽度参数。
该可选的实施例中,通过提供显示界面供用户输入文本簇的目标数量,从而根据目标数量调整目标高斯核函数的目标宽度参数,实现了根据聚类效果对目标宽度参数的动态调整,即实现了对高斯核函数的动态调整,进而使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵,实现了根据用户期望的结果来进行文本聚类。
S12,基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇。
由于大多数文本没有明确的标签,或者即使文本有标签但也很难获知主题,利用谱聚类算法基于所述相似矩阵对多个文本进行聚类,这样每个类别由相似的文本聚合而成,这些聚合的文本所表达的主题也更加相近。
在一个可选的实施例中,所述基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇包括:
基于所述相似矩阵构造邻接矩阵与度矩阵;
根据所述邻接矩阵和所述度矩阵计算得到拉普拉斯矩阵;
对所述拉普拉斯矩阵进行标准化处理;
计算标准化处理后的拉普拉斯矩阵的多个特征值及每个特征值对应的特征向量;
获取所述多个特征值中的最小K个特征值及所述最小K个特征值对应的特征向量;
采用k-means聚类算法对所述最小K个特征值对应的特征向量进行聚类;
使用混合高斯模型对聚类得到的多个质心点进行聚类,得到多个文本簇。
示例性的,假设基于相似矩阵S构造邻接矩阵W与度矩阵D,其中,wij=wji=Sij,对于任意一个文本vecdoci,该文本vecdoci的度di定义为与它相连的所有边的权重之和,即
Figure BDA0002922305920000081
得到的度矩阵D为对角矩阵,主对角线的值代表第i个文本的度:
Figure BDA0002922305920000082
将所述邻接矩阵和所述度矩阵进行相减计算,得到拉普拉斯矩阵L=D-W,将拉普拉斯矩阵进行标准化处理后得到D-1/2LD-1/2,计算标准化处理后得到的矩阵D-1/2LD-1/2的特征值及每个特征值对应的特征向量,将特征值按照从大到小进行排序,并获取排序在前K个特征值(即,最小的K个特征值,K为大于零的正整数)及排序在前K个特征值所对应的特征向量f1,…,fk
将k个特征向量(f1,…,fk)组成特征矩阵F,F为n×k维矩阵,Fij为文本i在第j个维度上的表征,将F的每一行作为一个样本,通过K-means初始化质心点,基于得到的初始化质心点进行GMM(高斯混合模型)聚类,把多个文本(例如,1万个文本)聚类成K个簇。所述多个文本可以是指阅读次数最多的文本。
该可选的实施例中,在生成K个维度(原始维度是W,从W到K)的特征向量之后,极大的降低了特征的维度,便于减少后续的计算量,从而提高了文本聚类的效率;接着先利用K-means基于K个维度的特征向量进行初始化,确定K个初始点的位置,再利用GMM进行无监督聚类,如此能够尽可能的避免随机指定初始点导致聚类结果陷入局部最优的情况。
S13,提取每个文本簇的主题关键词。
在得到K个文本簇之后,使用主题模型对每个文本簇进行主题关键词提取。
所述主题模型可以包括,但不限于:基于矩阵分解的潜在语义索引算法(LatentSemantic Indexing,LSI)和非负矩阵分解(non-negative matrix factorization,NMF),隐含狄利克雷分布(Latent Dirichlet Allocation,LDA)。
在一个可选的实施例中,所述提取每个文本簇的主题关键词包括:
使用主题模型提取每个文本簇的多个主题;
根据每个主题的概率对所述多个主题进行倒序排序;
获取倒序排序后的多个主题中前预设数量的目标主题;
将所述目标主题对应的关键词作为对应文本簇的主题关键词。
如对某一个文本簇Ki,利用主题模型生成了m个主题,每个主题有一个词分布,假设词分布长度都一样(例如n个词),取概率top30%(通过预设)的主题对应的关键词共M个(即m*30%*n),作为该文本簇的最重要的主题关键词。
S14,计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数。
计算机设备获取每个文本被用户阅读的阅读次数,基于每个文本的阅读次数计算该文本中的主题关键词的阅读次数。
在一个可选的实施例中,所述基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数包括:
针对每个文本簇,获取包含所述文本簇的每个主题关键词的目标文本;
根据每个主题关键词的目标文本的阅读次数进行加权求和得到所述主题关键词的阅读次数。
可以在每个文本中设置埋点,通过埋点获取用户点击该文本的事件,获取到用户点击某个文本的事件,则记录该文本的阅读次数为1,再次获取到用户点击该文本的事件,则记录该文本的阅读次数增加1。
示例性的,假设对某个文本簇Ki,对应P个文本,有主题关键词M个,计算每个主题关键词的得分,即用包含它的文本的阅读次数作为权重,举例如下:
以“增员”主题关键词为例,假设包含“增员”主题关键词的文本有文本doc1,文本doc2,文本doc3,文本doc1的阅读次数为10000,文本doc2的阅读次数为8000,doc3的阅读次数为5000,则“增员”主题关键词的阅读次数为10000*1+8000*1+5000*1=23000。
S15,根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。
用户(例如,代理人)的阅读的文本中包含了大量反映用户实际需求的语义信息,将主题关键词的阅读次数作为得分,按照得分从高到底的顺序,将所有文本簇中的所有主题关键词进行排序,取TOP-N个主题关键词作为文本主题并转化为用户进行培训的选题参考。
本实施例,通过所有文本的阅读次数计算每个主题关键词的阅读次数,进而通过主题关键词的阅读次数可以确定出用户的关注点。对主题关键词的阅读次数进行排序,在排序在前的主题关键词作为用户的关注点,从而可以根据关注点挖掘出用户的培训需求。
本发明所述的文本主题挖掘方法,使用无监督的方式,不需要标注语料,首先使用高斯核函数基于多个文本计算得到相似矩阵,从而基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇,利用谱聚类基于所述相似矩阵对多个文本进行聚类,能够使得每个类别由相似的文本聚合而成,这些聚合的文本所表达的主题也更加相近,得到的文本簇更聚集,一定程度上解决了主题分散的问题;接着,提取每个文本簇的主题关键词,计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数,由于主题关键词融合了阅读次数等信息,综合考量了文本的热门程度以及文本的关注度,从而根据每个文本簇的主题关键词的阅读次数挖掘得到的文本主题,更能反应用户的实际需求。
需要强调的是,为进一步保证上述文本主题的私密性和安全性,上述文本主题可存储于区块链的节点中。
图2是本发明实施例二提供的文本主题挖掘装置的结构图。
在一些实施例中,所述文本主题挖掘装置20可以包括多个由计算机程序段所组成的功能模块。所述文本主题挖掘装置20中的各个程序段的计算机程序可以存储于计算机设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)文本主题挖掘的功能。
本实施例中,所述文本主题挖掘装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:相似计算模块201、文本聚类模块202、主题提取模块203、次数计算模块204及主题挖掘模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述相似计算模块201,用于使用高斯核函数基于多个文本计算得到相似矩阵。
其中,所述高斯核函数是径向基函数(Radial Basis Function,RBF)中的一种,是某种沿径向对称的标量函数。
计算机设备首先提取每个文本的文本向量,然后使用高斯核函数基于多个文本的文本向量计算得到相似矩阵,所述相似矩阵为对称矩阵,所述相似矩阵中的每一个元素值表示对应的两个文本的文本向量之间的相似度。
在一个可选的实施例中,所述相似计算模块201使用高斯核函数基于多个文本计算得到相似矩阵包括:
对每个文本进行分词,得到每个文本的分词向量;
使用所述多个文本的分词向量训练doc2vec模型;
使用训练完成的doc2vec模型提取所述多个文本的文本向量;
使用高斯核函数基于所述多个文本的文本向量计算得到相似矩阵。
首先对多个文本(doc1,doc2,doc3,…)进行分词,得到每个文本的分词向量(word1,word2,word3,word4,…);然后基于多个文本的分词向量对doc2vec模型进行训练得到每个文本的词语向量,将每个文本的词语向量进行拼接得到该文本的文本向量。
对于任意两个文本,基于高斯核函数计算任意两个文本的文本向量之间的相似度,基于多个相似度生成相似矩阵Sij
Sij表示文本i与文本j之间的高斯核距离,高斯核距离越大,表明文本i与文本i之间的相似度越大,高斯核距离越小,表明文本i与文本i之间的相似度越小。
高斯核距离的计算公式如下所示:
Figure BDA0002922305920000121
其中,vecdoci为文本i的文本向量,vecdocj为文本j的文本向量。σ为高斯核函数的宽度参数,是一个自由参数,一般选取接近0的正数,并根据聚类效果进行调节。
该可选的实施例中,由于高斯核函数为空间中任一点到高斯核中心点之间欧氏距离的单调函数,因此,通过高斯核函数计算任意两个文本向量之间的高斯核距离来计算两个文本之间的相似度,能够使得两个越相似的文本,对应的相似度越大,两个越不相似的文本,对应的相似度越小,避免了两个不相似的文本,计算得到的相似度却较大,或者两个较相似的文本,计算得到的相似度却较小的情况发生。如此,能够有利于后续将相似的文本聚为同一个类,将不相似的文本聚为不同的类,文本分类效果好。
在一个可选的实施例中,所述使用高斯核函数基于所述多个文本的文本向量计算得到相似矩阵包括:
响应于用户输入的文本簇的目标数量,根据所述目标数量调整高斯核函数的宽度参数得到目标宽度参数;
根据所述目标宽度参数得到目标高斯核函数;
使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵。
计算机设备上可以显示有界面,供用户输入文本簇的目标数量。所述文本簇的目标数量为用户希望将多个文本聚为类的数量。示例性,假设用户希望将多个文本聚为4类,则输入文本簇的目标数量为4。
计算机设备中可以默认设置有高斯核函数的宽度参数。响应于用户输入的文本簇的目标数量,比较所述目标数量与预设阈值。当所述目标数量大于所述预设阈值时,可以减少高斯核函数的宽度参数;当所述目标数量小于所述预设阈值时,可以增加高斯核函数的宽度参数。
该可选的实施例中,通过提供显示界面供用户输入文本簇的目标数量,从而根据目标数量调整目标高斯核函数的目标宽度参数,实现了根据聚类效果对目标宽度参数的动态调整,即实现了对高斯核函数的动态调整,进而使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵,实现了根据用户期望的结果来进行文本聚类。
所述文本聚类模块202,用于基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇。
由于大多数文本没有明确的标签,或者即使文本有标签但也很难获知主题,利用谱聚类算法基于所述相似矩阵对多个文本进行聚类,这样每个类别由相似的文本聚合而成,这些聚合的文本所表达的主题也更加相近。
在一个可选的实施例中,所述文本聚类模块202基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇包括:
基于所述相似矩阵构造邻接矩阵与度矩阵;
根据所述邻接矩阵和所述度矩阵计算得到拉普拉斯矩阵;
对所述拉普拉斯矩阵进行标准化处理;
计算标准化处理后的拉普拉斯矩阵的多个特征值及每个特征值对应的特征向量;
获取所述多个特征值中的最小K个特征值及所述最小K个特征值对应的特征向量;
采用k-means聚类算法对所述最小K个特征值对应的特征向量进行聚类;
使用混合高斯模型对聚类得到的多个质心点进行聚类,得到多个文本簇。
示例性的,假设基于相似矩阵S构造邻接矩阵W与度矩阵D,其中,wij=wji=Sij,对于任意一个文本vecdoci,该文本vecdoci的度di定义为与它相连的所有边的权重之和,即
Figure BDA0002922305920000141
得到的度矩阵D为对角矩阵,主对角线的值代表第i个文本的度:
Figure BDA0002922305920000142
将所述邻接矩阵和所述度矩阵进行相减计算,得到拉普拉斯矩阵L=D-W,将拉普拉斯矩阵进行标准化处理后得到D-1/2LD-1/2,计算标准化处理后得到的矩阵D-1/2LD-1/2的特征值及每个特征值对应的特征向量,将特征值按照从大到小进行排序,并获取排序在前K个特征值(即,最小的K个特征值,K为大于零的正整数)及排序在前K个特征值所对应的特征向量f1,…,fk
将k个特征向量(f1,…,fk)组成特征矩阵F,F为n×k维矩阵,Fij为文本i在第j个维度上的表征,将F的每一行作为一个样本,通过K-means初始化质心点,基于得到的初始化质心点进行GMM(高斯混合模型)聚类,把多个文本(例如,1万个文本)聚类成K个簇。所述多个文本可以是指阅读次数最多的文本。
该可选的实施例中,在生成K个维度(原始维度是W,从W到K)的特征向量之后,极大的降低了特征的维度,便于减少后续的计算量,从而提高了文本聚类的效率;接着先利用K-means基于K个维度的特征向量进行初始化,确定K个初始点的位置,再利用GMM进行无监督聚类,如此能够尽可能的避免随机指定初始点导致聚类结果陷入局部最优的情况。
所述主题提取模块203,用于提取每个文本簇的主题关键词。
在得到K个文本簇之后,使用主题模型对每个文本簇进行主题关键词提取。
所述主题模型可以包括,但不限于:基于矩阵分解的潜在语义索引算法(LatentSemantic Indexing,LSI)和非负矩阵分解(non-negative matrix factorization,NMF),隐含狄利克雷分布(Latent Dirichlet Allocation,LDA)。
在一个可选的实施例中,所述主题提取模块203提取每个文本簇的主题关键词包括:
使用主题模型提取每个文本簇的多个主题;
根据每个主题的概率对所述多个主题进行倒序排序;
获取倒序排序后的多个主题中前预设数量的目标主题;
将所述目标主题对应的关键词作为对应文本簇的主题关键词。
如对某一个文本簇Ki,利用主题模型生成了m个主题,每个主题有一个词分布,假设词分布长度都一样(例如n个词),取概率top30%(通过预设)的主题对应的关键词共M个(即m*30%*n),作为该文本簇的最重要的主题关键词。
所述次数计算模块204,用于计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数。
计算机设备获取每个文本被用户阅读的阅读次数,基于每个文本的阅读次数计算该文本中的主题关键词的阅读次数。
在一个可选的实施例中,所述次数计算模块204基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数包括:
针对每个文本簇,获取包含所述文本簇的每个主题关键词的目标文本;
根据每个主题关键词的目标文本的阅读次数进行加权求和得到所述主题关键词的阅读次数。
可以在每个文本中设置埋点,通过埋点获取用户点击该文本的事件,获取到用户点击某个文本的事件,则记录该文本的阅读次数为1,再次获取到用户点击该文本的事件,则记录该文本的阅读次数增加1。
示例性的,假设对某个文本簇Ki,对应P个文本,有主题关键词M个,计算每个主题关键词的得分,即用包含它的文本的阅读次数作为权重,举例如下:
以“增员”主题关键词为例,假设包含“增员”主题关键词的文本有文本doc1,文本doc2,文本doc3,文本doc1的阅读次数为10000,文本doc2的阅读次数为8000,doc3的阅读次数为5000,则“增员”主题关键词的阅读次数为10000*1+8000*1+5000*1=23000。
所述主题挖掘模块205,用于根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。
用户(例如,代理人)的阅读的文本中包含了大量反映用户实际需求的语义信息,将主题关键词的阅读次数作为得分,按照得分从高到底的顺序,将所有文本簇中的所有主题关键词进行排序,取TOP-N个主题关键词作为文本主题并转化为用户进行培训的选题参考。
本实施例,通过所有文本的阅读次数计算每个主题关键词的阅读次数,进而通过主题关键词的阅读次数可以确定出用户的关注点。对主题关键词的阅读次数进行排序,在排序在前的主题关键词作为用户的关注点,从而可以根据关注点挖掘出用户的培训需求。
本发明所述的文本主题挖掘装置,使用无监督的方式,不需要标注语料,首先使用高斯核函数基于多个文本计算得到相似矩阵,从而基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇,利用谱聚类基于所述相似矩阵对多个文本进行聚类,能够使得每个类别由相似的文本聚合而成,这些聚合的文本所表达的主题也更加相近,得到的文本簇更聚集,一定程度上解决了主题分散的问题;接着,提取每个文本簇的主题关键词,计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数,由于主题关键词融合了阅读次数等信息,综合考量了文本的热门程度以及文本的关注度,从而根据每个文本簇的主题关键词的阅读次数挖掘得到的文本主题,更能反应用户的实际需求。
需要强调的是,为进一步保证上述文本主题的私密性和安全性,上述文本主题可存储于区块链的节点中。
参阅图3所示,为本发明实施例三提供的计算机设备的结构示意图。在本发明较佳实施例中,所述计算机设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的计算机设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述计算机设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述计算机设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述计算机设备3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述计算机设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31中存储有计算机程序,所述计算机程序被所述至少一个处理器32执行时实现如所述的文本主题挖掘方法中的全部或者部分步骤。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一些实施例中,所述至少一个处理器32是所述计算机设备3的控制核心(Control Unit),利用各种接口和线路连接整个计算机设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行计算机设备3的各种功能和处理数据。例如,所述至少一个处理器32执行所述存储器中存储的计算机程序时实现本发明实施例中所述的文本主题挖掘方法的全部或者部分步骤;或者实现文本主题挖掘装置的全部或者部分功能。所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述计算机设备3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机设备3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。本发明陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (8)

1.一种文本主题挖掘方法,其特征在于,所述方法包括:
响应于用户在显示的界面上输入的文本簇的目标数量,所述文本簇的目标数量为用户希望将多个文本聚为类的数量,根据所述目标数量调整高斯核函数的宽度参数得到目标宽度参数,根据所述目标宽度参数得到目标高斯核函数,使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵;
基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇,包括:基于所述相似矩阵S构造邻接矩阵W与度矩阵D;根据所述邻接矩阵和所述度矩阵计算得到拉普拉斯矩阵L=D-W;将所述拉普拉斯矩阵进行标准化处理后得到D-1/2LD-1/2;计算标准化处理后的拉普拉斯矩阵的多个特征值及每个特征值对应的特征向量;获取所述多个特征值中的最小K个特征值及所述最小K个特征值对应的特征向量;采用k-means聚类算法对所述最小K个特征值对应的特征向量进行聚类;使用混合高斯模型对聚类得到的多个质心点进行聚类,得到多个文本簇;
提取每个文本簇的主题关键词;
计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数;
根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。
2.如权利要求1所述的文本主题挖掘方法,其特征在于,所述多个文本的文本向量的计算过程包括:
对每个文本进行分词,得到每个文本的分词向量;
使用所述多个文本的分词向量训练doc2vec模型;
使用训练完成的doc2vec模型提取所述多个文本的文本向量。
3.如权利要求2所述的文本主题挖掘方法,其特征在于,所述度矩阵为对角矩阵,所述对角矩阵主对角线的值代表每个文本的度,所述每个文本的度定义为与所述文本相连的所有边的权重之和。
4.如权利要求3所述的文本主题挖掘方法,其特征在于,所述提取每个文本簇的主题关键词包括:
使用主题模型提取每个文本簇的多个主题;
根据每个主题的概率对所述多个主题进行倒序排序;
获取倒序排序后的多个主题中前预设数量的目标主题;
将所述目标主题对应的关键词作为对应文本簇的主题关键词。
5.如权利要求3所述的文本主题挖掘方法,其特征在于,所述基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数包括:
针对每个文本簇,获取包含所述文本簇的每个主题关键词的目标文本;
根据每个主题关键词的目标文本的阅读次数进行加权求和得到所述主题关键词的阅读次数。
6.一种文本主题挖掘装置,其特征在于,所述装置包括:
相似计算模块,用于响应于用户在显示的界面上输入的文本簇的目标数量,所述文本簇的目标数量为用户希望将多个文本聚为类的数量,根据所述目标数量调整高斯核函数的宽度参数得到目标宽度参数,根据所述目标宽度参数得到目标高斯核函数,使用所述目标高斯核函数基于所述多个文本的文本向量计算得到相似矩阵;
文本聚类模块,用于基于所述相似矩阵对所述多个文本进行谱聚类,得到多个文本簇,包括:基于所述相似矩阵S构造邻接矩阵W与度矩阵D;根据所述邻接矩阵和所述度矩阵计算得到拉普拉斯矩阵L=D-W;将所述拉普拉斯矩阵进行标准化处理后得到D-1/2LD-1/2;计算标准化处理后的拉普拉斯矩阵的多个特征值及每个特征值对应的特征向量;获取所述多个特征值中的最小K个特征值及所述最小K个特征值对应的特征向量;采用k-means聚类算法对所述最小K个特征值对应的特征向量进行聚类;使用混合高斯模型对聚类得到的多个质心点进行聚类,得到多个文本簇;
主题提取模块,用于提取每个文本簇的主题关键词;
次数计算模块,用于计算每个文本簇中每个文本的阅读次数,并基于所述每个文本的阅读次数计算对应的文本簇的主题关键词的阅读次数;
主题挖掘模块,用于根据每个文本簇的主题关键词的阅读次数挖掘得到文本主题。
7.一种计算机设备,其特征在于,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至5中任意一项所述的文本主题挖掘方法。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的文本主题挖掘方法。
CN202110121076.XA 2021-01-28 2021-01-28 文本主题挖掘方法、装置、计算机设备及存储介质 Active CN112883154B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110121076.XA CN112883154B (zh) 2021-01-28 2021-01-28 文本主题挖掘方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110121076.XA CN112883154B (zh) 2021-01-28 2021-01-28 文本主题挖掘方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112883154A CN112883154A (zh) 2021-06-01
CN112883154B true CN112883154B (zh) 2022-02-01

Family

ID=76053273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110121076.XA Active CN112883154B (zh) 2021-01-28 2021-01-28 文本主题挖掘方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112883154B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113283229B (zh) * 2021-06-24 2024-04-02 中国平安人寿保险股份有限公司 文本相似度计算方法、装置、电子设备及存储介质
CN113435184B (zh) * 2021-07-05 2022-07-12 平安科技(深圳)有限公司 文本主题抽取方法、系统、设备及存储介质
CN114444499A (zh) * 2021-12-21 2022-05-06 奇安信科技集团股份有限公司 文章画像提取方法、装置、电子设备及存储介质
CN116720523B (zh) * 2023-04-19 2024-02-06 贵州轻工职业技术学院 一种基于多核的深度文本聚类方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451065B2 (en) * 2002-03-11 2008-11-11 International Business Machines Corporation Method for constructing segmentation-based predictive models
JP4828091B2 (ja) * 2003-03-05 2011-11-30 ヒューレット・パッカード・カンパニー クラスタリング方法プログラム及び装置
US7685199B2 (en) * 2006-07-31 2010-03-23 Microsoft Corporation Presenting information related to topics extracted from event classes
AU2011253732B2 (en) * 2006-07-31 2012-09-20 Microsoft Corporation Temporal ranking of search results
US20160161425A1 (en) * 2013-05-03 2016-06-09 Goji Limited Apparatus and method for determining a value of a property of a material using microwave
CN103324665B (zh) * 2013-05-14 2017-05-03 亿赞普(北京)科技有限公司 一种基于微博的热点信息提取的方法和装置
CN103902674B (zh) * 2014-03-19 2017-10-27 百度在线网络技术(北京)有限公司 特定主题的评论数据的采集方法和装置
CN106202480B (zh) * 2016-07-19 2019-06-11 淮阴工学院 一种基于K-means和LDA双向验证的网络行为习惯聚类方法
CN107729521B (zh) * 2017-10-27 2020-06-26 北京工业大学 一种获取网络话题原型的方法及装置
CN108595706B (zh) * 2018-05-10 2022-05-24 中国科学院信息工程研究所 一种基于主题词类相似性的文档语义表示方法、文本分类方法和装置
CN111401468B (zh) * 2020-03-26 2023-03-24 上海海事大学 一种基于共享近邻的权重自更新多视角谱聚类方法
CN112231485B (zh) * 2020-12-14 2021-03-26 平安科技(深圳)有限公司 文本推荐方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN112883154A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN112883154B (zh) 文本主题挖掘方法、装置、计算机设备及存储介质
CN108182279B (zh) 基于文本特征的对象分类方法、装置和计算机设备
US7406452B2 (en) Machine learning
CN112231485B (zh) 文本推荐方法、装置、计算机设备及存储介质
JP7076483B2 (ja) データモデルを構築する方法、装置、デバイス及び媒体
CN102999635A (zh) 语义可视搜索引擎
US10366108B2 (en) Distributional alignment of sets
CN113722438B (zh) 基于句向量模型的句向量生成方法、装置及计算机设备
CN112860989B (zh) 课程推荐方法、装置、计算机设备及存储介质
CN111966886A (zh) 对象推荐方法、对象推荐装置、电子设备及存储介质
CN109582967B (zh) 舆情摘要提取方法、装置、设备及计算机可读存储介质
US9104946B2 (en) Systems and methods for comparing images
CN113157739B (zh) 跨模态检索方法、装置、电子设备及存储介质
US11275893B1 (en) Reference document generation using a federated learning system
CN112395432B (zh) 课程推送方法、装置、计算机设备及存储介质
Hao et al. Automatic image annotation based on particle swarm optimization and support vector clustering
CN113570286B (zh) 基于人工智能的资源分配方法、装置、电子设备及介质
CN113010759B (zh) 聚类集合的处理方法、装置、计算机可读介质及电子设备
CN114528378A (zh) 文本分类方法、装置、电子设备及存储介质
CN112328752B (zh) 基于搜索内容的课程推荐方法、装置、计算机设备及介质
CN111597453B (zh) 用户画像方法、装置、计算机设备及计算机可读存储介质
US11762896B2 (en) Relationship discovery and quantification
CN114492446A (zh) 法律文书处理方法、装置、电子设备及存储介质
US11487964B2 (en) Comprehensive data science solution for segmentation analysis
CN112507170A (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