一种区分主题的方法及装置与流程

文档序号:11386532阅读:200来源:国知局
一种区分主题的方法及装置与流程

本发明属于数据处理技术领域,尤其涉及一种区分主题的方法及装置。



背景技术:

用户在使用产品或者服务的时候经常会遇到自己无法处理的问题,或者需要咨询的问题,进而会寻求客服帮助。每天用户的咨询量非常大,咨询的角度也不同,很多用户都在问相同的问题,有些是客服已经知道的老问题,有一些是没有被发现的新问题。

了解用户提出的问题,可以对产品的设计和改进提供帮助。例如如果发现新问题,有可能是产品需要改进的点。如果老问题的咨询量变多或者变少,则可能是某个功能块用户数减少,也是需要引起注意的。因此,如何从大规模的对话中找出问题,并且能区分出新问题和老问题,是非常必要的并且重要的。

lda(latentdirichletallocation)方法是一种文档主题生成模型,非常适合从大量的对话中获取问题,每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。语料库中的每一篇文档与t(通过反复试验等方法事先给定)个主题的一个多项分布相对应,将该多项分布记为θ。每个主题又与词汇表(vocabulary)中的v个单词的一个多项分布相对应,将这个多项分布记为φ。上述词汇表是由语料库中所有文档中的所有互异单词组成,但实际建模的时候要剔除一些停用词(stopword),还要进行一些词干化(stemming)处理等。θ和φ分别有一个带有超参数(hyperparameter)α和β的dirichlet先验分布。对于一篇文档d中的每一个单词,从该文档所对应的多项分布θ中抽取一个主题z,然后再从主题z所对应的多项分布φ中抽取一个单词w。将这个过程重复nd次,就产生了文档d,这里的nd是文档d的单词总数。

lda方法是一种非监督机器学习技术,lda可以用来识别大规模文档集(documentcollection)或语料库(corpus)中潜藏的主题信息,通过聚类发现问题。但是lda方法本身不能区分哪些是新问题哪些是老问题,而且人对问题的理解和机器的理解存在差异,有些老问题可能被打散变成新问题,聚类出来的问题并不一定是想要的问题。



技术实现要素:

本发明的目的是提供一种区分主题的方法及装置,以解决现在技术无法区分聚类得到的主题是新主题还是老主题,或者聚类得到的主题并不一定是想要的主题等技术问题。

为了实现上述目的,本发明技术方案如下:

一种区分主题的方法,用于识别待训练数据属于已知主题还是新主题,所述区分主题的方法包括:

从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集;

对训练数据集进行聚类,聚类得到训练数据所属的主题;

根据标注的数据来区分聚类得到的主题是已知主题还是新主题。

进一步地,所述对训练数据集进行聚类,所采用的聚类方法为lda聚类方法。

进一步地,所述lda聚类方法聚类的主题数目大于已知主题的数目。

进一步地,所述从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集,所标注的标注数据少于待训练数据。

进一步地,所述根据标注的数据来区分聚类得到的主题是已知主题还是新主题,包括:

如果一个已知主题的所有标注数据只出现在一个主题中,那么这个主题是已知主题;

如果一个主题中没有出现已知主题的标注数据,则该主题是新主题。

进一步地,所述对训练数据集进行聚类,聚类得到训练数据所属的主 题,还包括:

聚类出对应到每个主题下每一个关键词的概率。

进一步地,所述根据标注的数据来区分聚类得到的主题是已知主题还是新主题,还包括:

根据每个聚类得到的主题对应的关键词,进一步判断聚类得到的主题是已知主题还是新主题。

本发明还提出了一种区分主题的装置,用于识别待训练数据属于已知主题还是新主题,所述区分主题的装置包括:

数据抽取模块,用于从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集;

聚类模块,用于对训练数据集进行聚类,聚类得到训练数据所属的主题;

主题区分模块,用于根据标注的数据来区分聚类得到的主题是已知主题还是新主题。

优选地,所述聚类模块对训练数据集进行聚类,所采用的聚类方法为lda聚类方法。

进一步地,所述lda聚类方法聚类的主题数目大于已知主题的数目。

进一步地,所述数据抽取模块从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集,所标注的标注数据少于待训练数据。

进一步地,所述主题区分模块根据标注的数据来区分聚类得到的主题是已知主题还是新主题,执行如下操作:

如果一个已知主题的所有标注数据只出现在一个主题中,那么这个主题是已知主题;

如果一个主题中没有出现已知主题的标注数据,则该主题是新主题。

进一步地,所述聚类模块对训练数据集进行聚类,聚类得到训练数据所属的主题,还包括:

聚类出对应到每个主题下每一个关键词的概率。

进一步地,所述主题区分模块根据标注的数据来区分聚类得到的主题 是已知主题还是新主题,还执行如下步骤:

根据每个聚类得到的主题对应的关键词,进一步判断聚类得到的主题是已知主题还是新主题。

本发明提出的一种区分主题的方法及装置,使用半监督的方法,利用少量标注的数据区分lda聚类出来的主题是否是客服已知的问题,并且减少人对问题的理解和机器对问题理解的差异,能够准确地区分客户所提出的问题。

附图说明

图1为本发明区分主题的方法流程图;

图2为本发明区分主题的装置结构示意图。

具体实施方式

下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。

本实施例以客户服务过程中经常遇到的客户咨询为例,一般客服人员需要根据与客户的对话,来判别客户所咨询的问题是什么。而进一步判断用户所咨询的问题属于新问题还是老问题,对产品的改进和发展也是非常重要的。在本实施例中,将客户与客服人员之间的对话作为训练数据,通过lda聚类从大量的对话中获知客户所要咨询的问题,客户所要咨询的问题即通过lda聚类得到的主题,并进一步判断客户所要咨询的问题是新问题还是老问题。

如图1所示,本实施例一种区分主题的方法,包括如下步骤:

步骤s1、从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集。

本实施例根据历史经验数据总结出一些老问题,将这些老问题作为已知主题。客服人员在平时的工作中会积累经验,根据接听到的与客户的对话数据,得到一些已知主题。从这些已知主题对应的对话数据中选取部分数据进行标注,对每个已知主题标注少量数据,一般为3-5条对话数,标 注数据的量级比待训练数据要小很多,不会对训练数据的聚类结果造成影响。

例如:

a.我的资格够了,为什么开通不了。标注:开通不了。

b.我已经实名认证了,怎么还开通不了啊。标注:开通不了。

c.我朋友都开通了,为什么开通不了。标注:开通不了。

d.为什么开通不了啊。标注:开通不了。

将标注的数据a、b、c、d与待训练数据合并成新的训练数据集,用于进行后续的聚类。

步骤s2、对训练数据集进行聚类,聚类得到训练数据所属的主题。

本实施例进行聚类的方法采用lda聚类方法,lda聚类方法是一种非监督机器学习技术,lda可以用来识别大规模文档集(documentcollection)或语料库(corpus)中潜藏的主题信息。

lda聚类简单来说就是为一堆文档进行聚类(所以是非监督学习),一种主题(topic)就是一类,要聚成的主题(topic)数目是事先指定的,topic数目一般是根据经验指定一个值,在本实施例中可以用老问题数目的3倍作为topic数目。聚类的结果是一个概率。以下通过一个例子进行说明,假设有以下几组句子:

1、我喜欢吃西兰花和香蕉;

2、我吃了有香蕉和菠菜汁的早餐;

3、龙猫和小猫很可爱;

4、我妹妹昨天收养了一只小猫;

5、看看这个可爱的仓鼠嚼一块西兰花。

如果对这些句子进行lda聚类,聚类的topic有两个,分别是topica和topicb,那么经过lda聚类后得到:

句子1和2:100%属于topica;

句子3和4:100%属于topicb;

句子5:60%属于topica,40%属于topicb;

topica:30%西兰花,15%香蕉,10%早餐,10%咀嚼,…(对于任 何一个单词,可以得知topica都关系到一个食物的主题);

topicb:20%龙猫,20%小猫,20%可爱,15%仓鼠,…(对于任何一个单词,可以得知topicb都关系到一个可爱的动物的主题。

上面关于句子5的结果,可以看出来是一个明显的概率类型的聚类结果,在本实施例中会认为句子5属于topica。句子1和2正好都是100%的确定性结果。

再看例子里的结果,除了为每句话得出了一个概率的聚类结果,而且对每个topic,都有代表性的词以及一个比例。以topica为例,就是说所有对应到topica的词里面,有30%的词是西兰花。在lda算法中,会把每一个文档中的每一个词对应到一个topic。

本实施例通过lda聚类方法可以从训练数据集中识别出训练数据所属的主题,以及对应的概率。例如:句子5:60%属于topica,40%属于topicb。还可以进一步聚类出对应到每个主题下每一个关键词的概率,从而可以通过这些关键词来判断主题是已知问题还是新问题。

需要说明的是,本发明不限于所采用的聚类方法,例如可以采用lda聚类方法,也可以采用kmeans聚类方法,优选地采用lda聚类方法,lda聚类方法能够确定训练数据对应的主题,以及主题中各个关键词的概率,有利于进一步对主题进行分析判断。

步骤s3、根据标注的数据来区分聚类得到的主题是已知主题还是新的主题。

在通过lda聚类方法识别出训练数据所属的主题后,可以根据标注的数据来区分聚类得到的主题是已知主题还是新主题。

具体判断方法包括:

1)、如果一个已知主题的所有标注数据只出现在一个主题中,那么这个主题就是个已知主题;

2)、如果一个主题中没有出现已知主题的标注数据,则该主题就是新主题;

3)、如果一个已知主题的标注数据出现在不同的主题里,则出现有标注数据的主题有可能是同一个已知主题的细化,需要进一步进行判断是已 知主题还是新主题。具体的判断可以根据每个主题中出现的关键词来人工判断,即根据关键词所属的主题来进行判断,这里不再赘述。

例如:

如果标注的句子a、b、c、d都属于topic1,那么就认为topic1是已知主题老问题开通不了。

如果a、b属于topic1,c、d属于topic2,那么就认为topic1,topic2都可能是已知主题老问题开通不了,再通过关键词进一步确定。

如果topic3中都没有出现a、b、c、d,则topic3是新主题。

需要说明的是,在根据标注的数据来区分聚类得到的主题是已知主题还是新主题,也可以根据标注数据在主题中出现的多少来进行判断,出现的多则认为是老问题,出现的多少可以根据实际情况来设定,并不一定要求所有标注的数据都出现在主题中才认定为是已知主题。

如图2所示,本实施例还提出了一种区分主题的装置,用于识别待训练数据属于已知主题还是新主题,该区分主题的装置包括:

数据抽取模块,用于从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集;

聚类模块,用于对训练数据集进行聚类,聚类得到训练数据所属的主题;

主题区分模块,用于根据标注的数据来区分聚类得到的主题是已知主题还是新主题。

优选地,聚类模块对训练数据集进行聚类,所采用的聚类方法为lda聚类方法。

本实施例lda聚类方法聚类的主题数目大于已知主题的数目。

本实施例数据抽取模块从已知主题对应的数据中抽取数据进行标注,将标注的数据与待训练数据合并成训练数据集,所标注的标注数据少于待训练数据。

本实施例主题区分模块根据标注的数据来区分聚类得到的主题是已知主题还是新主题,执行如下操作:

如果一个已知主题的所有标注数据只出现在一个主题中,那么这个主 题是已知主题;

如果一个主题中没有出现已知主题的标注数据,则该主题是新主题。

本实施例聚类模块对训练数据集进行聚类,聚类得到训练数据所属的主题,还包括:

聚类出对应到每个主题下每一个关键词的概率。

显然,本实施例主题区分模块根据标注的数据来区分聚类得到的主题是已知主题还是新主题,还执行如下步骤:

根据每个聚类得到的主题对应的关键词,进一步判断聚类得到的主题是已知主题还是新主题。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1