CN112287076B - 一种基于用户聊天记录的标签挖掘方法及设备 - Google Patents

一种基于用户聊天记录的标签挖掘方法及设备 Download PDF

Info

Publication number
CN112287076B
CN112287076B CN202011556453.4A CN202011556453A CN112287076B CN 112287076 B CN112287076 B CN 112287076B CN 202011556453 A CN202011556453 A CN 202011556453A CN 112287076 B CN112287076 B CN 112287076B
Authority
CN
China
Prior art keywords
user
word
label
tag
tags
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
CN202011556453.4A
Other languages
English (en)
Other versions
CN112287076A (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.)
Nanjing Yunwen Network Technology Co ltd
Original Assignee
Nanjing Yunwen Network Technology 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 Nanjing Yunwen Network Technology Co ltd filed Critical Nanjing Yunwen Network Technology Co ltd
Priority to CN202011556453.4A priority Critical patent/CN112287076B/zh
Publication of CN112287076A publication Critical patent/CN112287076A/zh
Application granted granted Critical
Publication of CN112287076B publication Critical patent/CN112287076B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • 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/3332Query translation
    • G06F16/3335Syntactic pre-processing, e.g. stopword elimination, stemming
    • 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/3343Query execution using phonetics
    • 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/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Abstract

本发明公开了一种基于用户聊天记录的标签挖掘方法及设备。该方法包括对通过语音助手与用户闲聊生成的聊天数据进行预处理,基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签,基于关系发现模型挖掘相似度在设定阈值以上的所有标签。本发明借助神经网络的机器学习方法,使得模型可根据语义选择合适的标签,标签效果好;当系统运行一段时间后会积累更多的用户聊天数据,可以再次进行标注训练来达到更好的效果,可支持进一步优化;本发明在经过前期人工标注后,后期可以自动化抽取标签,节省了大量的人力,提升效率。

Description

一种基于用户聊天记录的标签挖掘方法及设备
技术领域
本发明涉及语音助手技术领域,具体涉及一种基于用户聊天记录的标签挖掘方法及设备。
背景技术
在智能语音助手场景中,为了更好的为用户提供服务,通常需要对用户构建画像、打标签,然后基于这些标签对用户做推荐服务。
个性化推荐在与用户交互的整个过程中。一方面可以针对用户的岗位特征等推荐一些知识或业务信息,比如与之相关的新政策等等,同时也可以针对用户的个人喜好进行相关话题的讨论,谈论一些喜欢吃什么,爱看什么电影等等。成为一个人性化十足的语音助手,渗透到用户的工作生活中的各个角落,提高用户粘性。
当前情况下,构建用户画像需要用户手工填写信息。或者通过系统平台获取一定的订单行为等信息。
但是在实际使用情况中,大量的信息采集对于用户来说是一种负担,严重降低了用户体验,此外,用户订单、操作等信息等出于隐私保护的原因不易获取,或者因数据的稀疏性做不到良好的推荐服务。
发明内容
本发明的目的是针对现有技术存在的不足,提供一种基于用户聊天记录的标签挖掘方法及设备。
为实现上述目的,在第一方面,本发明提供了一种基于用户聊天记录的标签挖掘方法,包括:
步骤1:对通过语音助手与用户闲聊生成的聊天数据进行预处理;
步骤2:基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签;
所述标签抽取模型通过以下步骤生成:
步骤201:选取一批聊天数据,标注聊天记录中每句话的用户标签;
步骤202:根据标注数据训练神经网络模型;
步骤203:对于步骤202中训练好的模型计算用户标签抽取准确率,计算公式如下:
Figure 100002_DEST_PATH_IMAGE001
当标签抽取准确率大于设定阈值时,即获得标签抽取模型;
步骤3:基于关系发现模型挖掘相似度在设定阈值以上的所有标签;
具体包括以下步骤:
步骤301 :根据标签向量模型获取用户标签的向量;
步骤302 :获取用户标签中的每个字,用于后续相似度计算;
步骤303:根据用户标签向量,计算任意两个用户标签之间的余弦夹角;根据用户标签中的字信息,计算两个用户标签的集合相似度值;
步骤304 :对于两个用户标签的余弦夹角和集合相似度值取平均作为最终相似度值。
进一步的,所述每句话的用户标签包括在该句话中的每个字以及每个字的类别,所述每个字的类别的标注规则如下:
如该字是用户标签的开始,则这个字的类别记为B;
如该字是用户标签的结束,则这个字的类别记为E;
如该字在用户标签的中间,则这个字的类别记为I;
如该字不在用户标签中,则这个字的类别记为O。
进一步的,所述步骤202具体包括:
通过以下公式将标注聊天数据中的每一句话转化为矩阵形式:
Figure 100002_DEST_PATH_IMAGE002
(1)
其中,
Figure 100002_DEST_PATH_IMAGE003
是闲聊语句中的第i个字,
Figure 100002_DEST_PATH_IMAGE004
为向量维度,
Figure 100002_DEST_PATH_IMAGE005
为1行n列的实数矩阵,通过
Figure 100002_DEST_PATH_IMAGE006
函数将闲聊语句中的字映射成字向量,闲聊语句中每个字都会被映射为字向量,神经网络中会提前预存所有字向量,字向量可以从公开数据中获取;
Figure 100002_DEST_PATH_IMAGE007
(2)
其中,m是句子中字的个数,
Figure 100002_DEST_PATH_IMAGE008
为m行n列的实数矩阵,通过公式2可将所有字向量拼接起来;
Figure 100002_DEST_PATH_IMAGE009
(3)
其中,W1,b1是神经网络中的参数,
Figure 100002_DEST_PATH_IMAGE010
为n行n列的实数矩阵,
Figure 100002_DEST_PATH_IMAGE011
为1行n列的实数矩阵;
Figure 100002_DEST_PATH_IMAGE012
(4)
其中,
Figure 100002_DEST_PATH_IMAGE013
是神经网络中的参数,
Figure 100002_DEST_PATH_IMAGE014
为n行4列的实数矩阵,
Figure 100002_DEST_PATH_IMAGE015
为1行2列的实数矩阵,
Figure 100002_DEST_PATH_IMAGE016
是归一化函数,用于把向量中的值映射为0-1之间的小数,
Figure 833738DEST_PATH_IMAGE016
公式如下:
Figure 100002_DEST_PATH_IMAGE017
(5)
其中,
Figure 100002_DEST_PATH_IMAGE018
的意思是向量s中的第i个值,
Figure 100002_DEST_PATH_IMAGE019
是s中所有值的求和,通过公式4获得的
Figure 100002_DEST_PATH_IMAGE020
是一个4维向量,其数值分别代表了每个字属于各个用户标签的概率。
进一步的,所述从预处理后的聊天数据中抽取用户标签包括:
步骤211:基于标签抽取模型抽取用户标签;
步骤212:使用公开的分词工具对聊天记录进行分词,然后选取出现次数在设定阈值以上的名词作为用户标签;
步骤213 :将步骤211和步骤212抽取的用户标签合并,然后计算每个用户标签的得分,最后根据得分排序,选取得分高的若干作为用户标签,计算每个用户标签的得分的方式如下:
Figure 100002_DEST_PATH_IMAGE021
其中,
Figure 100002_DEST_PATH_IMAGE022
是该标签在聊天记录中出现的次数,
Figure 100002_DEST_PATH_IMAGE023
是聊天记录总字数,
Figure 100002_DEST_PATH_IMAGE024
是该标签在通用语料库中出现的次数,
Figure 100002_DEST_PATH_IMAGE025
是通用语料库总字数。
进一步的,所述预处理包括依次进行的统一编码、简繁转换和移除无效字符。
在第二方面,本发明提供了一种基于用户聊天记录的标签挖掘设备,包括:
预处理模块,用以对通过语音助手与用户闲聊生成的聊天数据进行预处理;
标签抽取模块,用以基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签;
所述标签抽取模型通过以下方式生成:
选取一批聊天数据,标注聊天记录中每句话的用户标签;
根据标注数据训练神经网络模型;
对训练好的模型计算用户标签抽取准确率,计算公式如下:
Figure 699145DEST_PATH_IMAGE001
当标签抽取准确率大于设定阈值时,即获得标签抽取模型;
标签挖掘模块,用以基于关系发现模型挖掘相似度在设定阈值以上的所有标签;
具体包括:
根据标签向量模型获取用户标签的向量;
获取用户标签中的每个字,用于后续相似度计算;
根据用户标签向量,计算任意两个用户标签之间的余弦夹角;根据用户标签中的字信息,计算两个用户标签的集合相似度值;
对于两个用户标签的余弦夹角和集合相似度值取平均作为最终相似度值。
进一步的,所述每句话的用户标签包括在该句话中的每个字以及每个字的类别,所述每个字的类别的标注规则如下:
如该字是用户标签的开始,则这个字的类别记为B;
如该字是用户标签的结束,则这个字的类别记为E;
如该字在用户标签的中间,则这个字的类别记为I;
如该字不在用户标签中,则这个字的类别记为O。
进一步的,所述根据标注数据训练神经网络模型具体包括:
通过以下公式将标注聊天数据中的每一句话转化为矩阵形式:
Figure 134281DEST_PATH_IMAGE002
(1)
其中,
Figure 993653DEST_PATH_IMAGE003
是闲聊语句中的第i个字,
Figure 336909DEST_PATH_IMAGE004
为向量维度,
Figure 323451DEST_PATH_IMAGE005
为1行n列的实数矩阵,通过
Figure 130870DEST_PATH_IMAGE006
函数将闲聊语句中的字映射成字向量,闲聊语句中每个字都会被映射为字向量,神经网络中会提前预存所有字向量,字向量可以从公开数据中获取;
Figure 100002_DEST_PATH_IMAGE026
(2)
其中,m是句子中字的个数,
Figure 100002_DEST_PATH_IMAGE027
为m行n列的实数矩阵,通过公式2可将所有字向量拼接起来;
Figure 100002_DEST_PATH_IMAGE028
(3)
其中,W1,b1是神经网络中的参数,
Figure 100002_DEST_PATH_IMAGE029
为n行n列的实数矩阵,
Figure DEST_PATH_IMAGE030
为1行n列的实数矩阵;
Figure DEST_PATH_IMAGE031
(4)
其中,
Figure DEST_PATH_IMAGE032
是神经网络中的参数,
Figure DEST_PATH_IMAGE033
为n行4列的实数矩阵,
Figure 806483DEST_PATH_IMAGE015
为1行2列的实数矩阵,
Figure 964932DEST_PATH_IMAGE016
是归一化函数,用于把向量中的值映射为0-1之间的小数,
Figure 224006DEST_PATH_IMAGE016
公式如下:
Figure DEST_PATH_IMAGE034
(5)
其中,
Figure 305838DEST_PATH_IMAGE018
的意思是向量s中的第i个值,
Figure 257745DEST_PATH_IMAGE019
是s中所有值的求和,通过公式4获得的
Figure DEST_PATH_IMAGE035
是一个4维向量,其数值分别代表了每个字属于各个用户标签的概率。
进一步的,所述从预处理后的聊天数据中抽取用户标签包括:
基于标签抽取模型抽取用户标签;
使用公开的分词工具对聊天记录进行分词,然后选取出现次数在设定阈值以上的名词作为用户标签;
将以上两种方式抽取的用户标签合并,然后计算每个用户标签的得分,最后根据得分排序,选取得分高的若干作为用户标签,计算每个用户标签的得分的方式如下:
Figure 778856DEST_PATH_IMAGE021
其中,
Figure 856269DEST_PATH_IMAGE022
是该标签在聊天记录中出现的次数,
Figure DEST_PATH_IMAGE036
是聊天记录总字数,
Figure 44805DEST_PATH_IMAGE024
是该标签在通用语料库中出现的次数,
Figure 698772DEST_PATH_IMAGE025
是通用语料库总字数。
进一步的,所述预处理包括依次进行的统一编码、简繁转换和移除无效字符。
有益效果:1、本发明借助神经网络的机器学习方法,使得模型可根据语义选择合适的标签,标签效果好。
2、当系统运行一段时间后会积累更多的用户聊天数据,可以再次进行标注训练来达到更好的效果,可支持进一步优化。
3、本发明在经过前期人工标注后,后期可以自动化抽取标签,节省了大量的人力,提升效率。
附图说明
图1是本发明实施例的基于用户聊天记录的标签挖掘方法的示意图;
图2是本发明实施例的基于用户聊天记录的标签挖掘设备的示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,本实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
如图1所示,本发明实施例提供了一种基于用户聊天记录的标签挖掘方法,包括:
步骤1:对通过语音助手与用户闲聊生成的聊天数据进行预处理。预处理可清洗用户问题,避免数据噪音对准确性的影响。预处理具体包括依次进行的统一编码、简繁转换和移除无效字符。统一后的编码优选为UTF8编码。简繁转换后即统一转换为简体。移除无关语义的词,比如汉字“的”,“了”以及无意义符号等,具体做法:首先准备无效词表,无效词表使用网络公开的词表,然后根据使用场景可以选择添加或删除,然后检测用户闲聊记录中是否包含无效字符,凡是用户问题里的词出现在无效字符库中就将该词移除掉,最终会得到不包含停用词的用户闲聊记录。
步骤2:基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签。
标签抽取模型通过以下步骤生成:
步骤201:数据标注。选取一批聊天数据,标注聊天记录中每句话的标签。具体的,每句话的用户标签包括在该句话中的每个字以及每个字的类别,每个字的类别的标注规则如下:
1)如果这个字是用户标签的开始,则这个字的类别记为B。
2)如果这个字是用户标签的结束,则这个字的类别记为E。
3)如果这个字在用户标签的中间,则这个字的类别记为I。
4)如果这个字不在用户标签中,则这个字的类别记为O。
以“我喜欢吃四川菜”这句话为例,“四川菜”是用户标签,则标注结果是“我/O喜/O欢/O吃/O四/B川/I菜/E”。
步骤202:根据标注数据训练神经网络模型。
具体包括:
首先,通过以下公式将标注聊天数据中的每一句话转化为矩阵形式:
Figure DEST_PATH_IMAGE037
(1)
其中,
Figure 379283DEST_PATH_IMAGE003
是闲聊语句中的第i个字,
Figure DEST_PATH_IMAGE038
为向量维度,
Figure DEST_PATH_IMAGE039
为1行n列的实数矩阵,通过
Figure DEST_PATH_IMAGE040
函数将闲聊语句中的字映射成字向量,闲聊语句中每个字都会被映射为字向量,神经网络中会提前预存所有字向量,字向量可以从公开数据中获取;
Figure DEST_PATH_IMAGE041
(2)
其中,m是句子中字的个数,
Figure 790279DEST_PATH_IMAGE027
为m行n列的实数矩阵,通过公式2可将所有字向量拼接起来;
Figure DEST_PATH_IMAGE042
(3)
其中,W1,b1是神经网络中的参数,
Figure 505425DEST_PATH_IMAGE029
为n行n列的实数矩阵,
Figure 517244DEST_PATH_IMAGE030
为1行n列的实数矩阵;
Figure 32188DEST_PATH_IMAGE012
(4)
其中,
Figure 295811DEST_PATH_IMAGE032
是神经网络中的参数,
Figure 131043DEST_PATH_IMAGE033
为n行4列的实数矩阵,
Figure 517025DEST_PATH_IMAGE015
为1行2列的实数矩阵,
Figure 106881DEST_PATH_IMAGE016
是归一化函数,用于把向量中的值映射为0-1之间的小数,
Figure 829987DEST_PATH_IMAGE016
公式如下:
Figure 785304DEST_PATH_IMAGE017
(5)
其中,
Figure 889658DEST_PATH_IMAGE018
的意思是向量s中的第i个值,
Figure 219008DEST_PATH_IMAGE019
是s中所有值的求和,通过公式4获得的
Figure DEST_PATH_IMAGE043
是一个4维向量,其数值分别代表了每个字属于各个用户标签(B、I、O、E)的概率。预测概率最大的类别就会是最终类别。最后可以根据每个字的类别确定用户标签,比如“四川菜”三个字的类别分别是BIE,则四川菜就是用户标签。
通常情况下我们把这一组数字称为向量,数字的个数就是向量的维度。把每个值转化为概率的方法就是用每个值除以这一组数字的总和。假设某个字BIOE标签四个得分分别是 [1, 2, 3, 4],那么把分值"1"转化为概率的公式就是 1/(1+2+3+4)。分值“2”转化为概率的公式就是2/(1+2+3+4) 。
在训练模型时,根据预测概率和真实标签,通过梯度下降方法就可以对模型参数进行更新,从而获取最好的参数(参数即上述公式中的W1,W2和词向量等)。梯度下降方法是更新神经网络参数的常用方法,就不再赘述。
从预处理后的聊天数据中抽取用户标签包括:
步骤211:基于标签抽取模型抽取用户标签;
步骤212:使用公开的分词工具对聊天记录进行分词,然后选取出现次数在设定阈值以上的名词作为用户标签;
步骤213 :将步骤211和步骤212抽取的用户标签合并,然后计算每个用户标签的得分,最后根据得分排序,选取得分高的若干作为用户标签,计算每个用户标签的得分的方式如下:
Figure 90012DEST_PATH_IMAGE021
其中,
Figure DEST_PATH_IMAGE044
是该标签在聊天记录中出现的次数,
Figure DEST_PATH_IMAGE045
是聊天记录总字数,
Figure 189250DEST_PATH_IMAGE024
是该标签在通用语料库中出现的次数,
Figure 55050DEST_PATH_IMAGE025
是通用语料库总字数。
步骤203:对于步骤202中训练好的模型计算用户标签抽取准确率,计算公式如下:
Figure 871696DEST_PATH_IMAGE001
当标签抽取准确率大于设定阈值时,即获得标签抽取模型,就可以投入使用了。一般情况下,此处的设定阈值可设定为85%至90%以上,可以根据应用场景需要进行调整。
步骤3:基于关系发现模型挖掘相似度在设定阈值以上的所有标签。
具体包括以下步骤:
步骤301 :标签向量表征。根据训练好的标签向量模型获取用户标签的向量。
步骤302 :统计特征。获取用户标签中的每个字,用于后续相似度计算。
步骤303:相似度计算。根据用户标签向量,计算任意两个用户标签之间的余弦夹角;根据用户标签中的字信息,计算两个用户标签的集合相似度值。需要说明的是,余弦夹角和集合相似度值为已有指标,这里不再赘述。
步骤304 :相似度合并。对于两个用户标签的余弦夹角和集合相似度值取平均作为最终相似度值。一些用户标签存在一定的关联性,比如“四川菜”和“川菜”,“足球”和“篮球”,计算标签之间的相似度可以为用户推荐更多的标签。
如图2所示,基于以上实施例,本领域技术人员可以理解,本发明还提供了一种基于用户聊天记录的标签挖掘设备,包括预处理模块1、标签抽取模块2和标签挖掘模块3。
其中,预处理模块1用以对通过语音助手与用户闲聊生成的聊天数据进行预处理。预处理可清洗用户问题,避免数据噪音对准确性的影响。预处理具体包括依次进行的统一编码、简繁转换和移除无效字符。统一后的编码优选为UTF8编码。简繁转换后即统一转换为简体。移除无关语义的词,比如汉字“的”,“了”以及无意义符号等,具体做法:首先准备无效词表,无效词表使用网络公开的词表,然后根据使用场景可以选择添加或删除,然后检测用户闲聊记录中是否包含无效字符,凡是用户问题里的词出现在无效字符库中就将该词移除掉,最终会得到不包含停用词的用户闲聊记录。
标签抽取模块2用以基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签。
具体的,标签抽取模型通过以下方式生成:
数据标注,选取一批聊天数据,标注聊天记录中每句话的标签。具体的,每句话的用户标签包括在该句话中的每个字以及每个字的类别,每个字的类别的标注规则如下:
1)如果这个字是用户标签的开始,则这个字的类别记为B。
2)如果这个字是用户标签的结束,则这个字的类别记为E。
3)如果这个字在用户标签的中间,则这个字的类别记为I。
4)如果这个字不在用户标签中,则这个字的类别记为O。
以“我喜欢吃四川菜”这句话为例,“四川菜”是用户标签,则标注结果是“我/O喜/O欢/O吃/O四/B川/I菜/E”。
根据标注数据训练神经网络模型。
具体包括:
首先,通过以下公式将标注聊天数据中的每一句话转化为矩阵形式:
Figure DEST_PATH_IMAGE046
(1)
其中,
Figure 890599DEST_PATH_IMAGE003
是闲聊语句中的第i个字,
Figure 210722DEST_PATH_IMAGE038
为向量维度,
Figure 781512DEST_PATH_IMAGE005
为1行n列的实数矩阵,通过
Figure 305028DEST_PATH_IMAGE040
函数将闲聊语句中的字映射成字向量,闲聊语句中每个字都会被映射为字向量,神经网络中会提前预存所有字向量,字向量可以从公开数据中获取;
Figure DEST_PATH_IMAGE047
(2)
其中,m是句子中字的个数,
Figure 255185DEST_PATH_IMAGE008
为m行n列的实数矩阵,通过公式2可将所有字向量拼接起来;
Figure 242864DEST_PATH_IMAGE009
(3)
其中,W1,b1是神经网络中的参数,
Figure DEST_PATH_IMAGE048
为n行n列的实数矩阵,
Figure 187817DEST_PATH_IMAGE011
为1行n列的实数矩阵;
Figure 385580DEST_PATH_IMAGE012
(4)
其中,
Figure 8935DEST_PATH_IMAGE032
是神经网络中的参数,
Figure DEST_PATH_IMAGE049
为n行4列的实数矩阵,
Figure 647858DEST_PATH_IMAGE015
为1行2列的实数矩阵,
Figure 950663DEST_PATH_IMAGE016
是归一化函数,用于把向量中的值映射为0-1之间的小数,
Figure 979930DEST_PATH_IMAGE016
公式如下:
Figure DEST_PATH_IMAGE050
(5)
其中,
Figure 800119DEST_PATH_IMAGE018
的意思是向量s中的第i个值,
Figure 980301DEST_PATH_IMAGE019
是s中所有值的求和,通过公式4获得的
Figure DEST_PATH_IMAGE051
是一个4维向量,其数值分别代表了每个字属于各个用户标签(B、I、O、E)的概率。预测概率最大的类别就会是最终类别。最后可以根据每个字的类别确定用户标签,比如“四川菜”三个字的类别分别是BIE,则四川菜就是用户标签。
通常情况下我们把这一组数字称为向量,数字的个数就是向量的维度。把每个值转化为概率的方法就是用每个值除以这一组数字的总和。假设某个字BIOE标签四个得分分别是 [1, 2, 3, 4],那么把分值"1"转化为概率的公式就是 1/(1+2+3+4)。分值“2”转化为概率的公式就是2/(1+2+3+4) 。
在训练模型时,根据预测概率和真实标签,通过梯度下降方法就可以对模型参数进行更新,从而获取最好的参数(参数即上述公式中的W1,W2和词向量等)。梯度下降方法是更新神经网络参数的常用方法,就不再赘述。
从预处理后的聊天数据中抽取用户标签包括:
基于标签抽取模型抽取用户标签;
使用公开的分词工具对聊天记录进行分词,然后选取出现次数在设定阈值以上的名词作为用户标签;
将以上两种方式抽取的用户标签合并,然后计算每个用户标签的得分,最后根据得分排序,选取得分高的若干作为用户标签,计算每个用户标签的得分的方式如下:
Figure 594953DEST_PATH_IMAGE021
其中,
Figure DEST_PATH_IMAGE052
是该标签在聊天记录中出现的次数,
Figure 986882DEST_PATH_IMAGE023
是聊天记录总字数,
Figure 735395DEST_PATH_IMAGE024
是该标签在通用语料库中出现的次数,
Figure 18084DEST_PATH_IMAGE025
是通用语料库总字数。
对训练好的模型计算用户标签抽取准确率,计算公式如下:
Figure 928272DEST_PATH_IMAGE001
当标签抽取准确率大于设定阈值时,即获得标签抽取模型,就可以投入使用了。一般情况下,此处的设定阈值可设定为85%至90%以上,可以根据应用场景需要进行调整。
标签挖掘模块3用以基于关系发现模型挖掘相似度在设定阈值以上的所有标签。
具体包括:
标签向量表征。根据训练好的标签向量模型获取用户标签的向量。
统计特征。获取用户标签中的每个字,用于后续相似度计算。
相似度计算。根据用户标签向量,计算任意两个用户标签之间的余弦夹角;根据用户标签中的字信息,计算两个用户标签的集合相似度值。需要说明的是,余弦夹角和集合相似度值为已有指标,这里不再赘述。
相似度合并。对于两个用户标签的余弦夹角和集合相似度值取平均作为最终相似度值。一些用户标签存在一定的关联性,比如“四川菜”和“川菜”,“足球”和“篮球”,计算标签之间的相似度可以为用户推荐更多的标签。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,其它未具体描述的部分,属于现有技术或公知常识。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于用户聊天记录的标签挖掘方法,其特征在于,包括:
步骤1:对通过语音助手与用户闲聊生成的聊天数据进行预处理;
步骤2:基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签;
所述标签抽取模型通过以下步骤生成:
步骤201:选取一批聊天数据,标注聊天记录中每句话的用户标签;
步骤202:根据标注数据训练神经网络模型;
步骤203:对于步骤202中训练好的模型计算用户标签抽取准确率,计算公式如下:
Figure DEST_PATH_IMAGE001
当标签抽取准确率大于设定阈值时,即模型性能符合要求,可以投入使用;
步骤3:基于关系发现模型挖掘相似度在设定阈值以上的所有标签;
具体包括以下步骤:
步骤301 :根据标签向量模型获取用户标签的向量;
步骤302 :获取用户标签中的每个字,用于后续相似度计算;
步骤303:根据用户标签向量,计算任意两个用户标签之间的余弦夹角;根据用户标签中的字信息,计算两个用户标签的集合相似度值;
步骤304 :对于两个用户标签的余弦夹角和集合相似度值取平均作为最终相似度值;
所述步骤202具体包括:
通过以下公式将标注聊天数据中的每一句话转化为矩阵形式:
Figure DEST_PATH_IMAGE002
(1)
其中,
Figure DEST_PATH_IMAGE003
是闲聊语句中的第i个字,
Figure DEST_PATH_IMAGE004
为向量维度,
Figure DEST_PATH_IMAGE005
为1行n列的实数矩阵,通过
Figure DEST_PATH_IMAGE006
函数将闲聊语句中的字映射成字向量,闲聊语句中每个字都会被映射为字向量,神经网络中会提前预存所有字向量,字向量可以从公开数据中获取;
Figure DEST_PATH_IMAGE007
(2)
其中,m是句子中字的个数,
Figure DEST_PATH_IMAGE008
为m行n列的实数矩阵,通过公式2可将所有字向量拼接起来;
Figure DEST_PATH_IMAGE009
(3)
其中,W1,b1是神经网络中的参数,
Figure DEST_PATH_IMAGE010
为n行n列的实数矩阵,
Figure DEST_PATH_IMAGE011
为1行n列的实数矩阵;
Figure DEST_PATH_IMAGE012
(4)
其中,
Figure DEST_PATH_IMAGE013
是神经网络中的参数,
Figure DEST_PATH_IMAGE014
为n行4列的实数矩阵,
Figure DEST_PATH_IMAGE015
为1行2列的实数矩阵,
Figure DEST_PATH_IMAGE016
是归一化函数,用于把向量中的值映射为0-1之间的小数,
Figure 798558DEST_PATH_IMAGE016
公式如下:
Figure DEST_PATH_IMAGE017
(5)
其中,
Figure DEST_PATH_IMAGE018
的意思是向量s中的第i个值,
Figure DEST_PATH_IMAGE019
是s中所有值的求和,通过公式4获得的
Figure DEST_PATH_IMAGE020
是一个4维向量,其数值分别代表了每个字属于各个用户标签的概率。
2.根据权利要求1所述的基于用户聊天记录的标签挖掘方法,其特征在于,所述每句话的用户标签包括在该句话中的每个字以及每个字的类别,所述每个字的类别的标注规则如下:
如该字是用户标签的开始,则这个字的类别记为B;
如该字是用户标签的结束,则这个字的类别记为E;
如该字在用户标签的中间,则这个字的类别记为I;
如该字不在用户标签中,则这个字的类别记为O。
3.根据权利要求1所述的基于用户聊天记录的标签挖掘方法,其特征在于,所述从预处理后的聊天数据中抽取用户标签包括:
步骤211:基于标签抽取模型抽取用户标签;
步骤212:使用公开的分词工具对聊天记录进行分词,然后选取出现次数在设定阈值以上的名词作为用户标签;
步骤213 :将步骤211和步骤212抽取的用户标签合并,然后计算每个用户标签的得分,最后根据得分排序,选取得分高的若干作为用户标签,计算每个用户标签的得分的方式如下:
Figure DEST_PATH_IMAGE021
其中,
Figure DEST_PATH_IMAGE022
是该标签在聊天记录中出现的次数,
Figure DEST_PATH_IMAGE023
是聊天记录总字数,
Figure DEST_PATH_IMAGE024
是该标签在通用语料库中出现的次数,
Figure DEST_PATH_IMAGE025
是通用语料库总字数。
4.根据权利要求1所述的基于用户聊天记录的标签挖掘方法,其特征在于,所述预处理包括依次进行的统一编码、简繁转换和移除无效字符。
5.一种基于用户聊天记录的标签挖掘设备,其特征在于,包括:
预处理模块,用以对通过语音助手与用户闲聊生成的聊天数据进行预处理;
标签抽取模块,用以基于标签抽取模型和统计方法从预处理后的聊天数据中抽取用户标签;
所述标签抽取模型通过以下方式生成:
选取一批聊天数据,标注聊天记录中每句话的用户标签;
根据标注数据训练神经网络模型;
对训练好的模型计算用户标签抽取准确率,计算公式如下:
Figure DEST_PATH_IMAGE026
当标签抽取准确率大于设定阈值时,即获得标签抽取模型;
标签挖掘模块,用以基于关系发现模型挖掘相似度在设定阈值以上的所有标签;
具体包括:
根据标签向量模型获取用户标签的向量;
获取用户标签中的每个字,用于后续相似度计算;
根据用户标签向量,计算任意两个用户标签之间的余弦夹角;根据用户标签中的字信息,计算两个用户标签的集合相似度值;
对于两个用户标签的余弦夹角和集合相似度值取平均作为最终相似度值;
所述根据标注数据训练神经网络模型具体包括:
通过以下公式将标注聊天数据中的每一句话转化为矩阵形式:
Figure 234936DEST_PATH_IMAGE002
(1)
其中,
Figure 475425DEST_PATH_IMAGE003
是闲聊语句中的第i个字,
Figure 222801DEST_PATH_IMAGE004
为向量维度,
Figure 712163DEST_PATH_IMAGE005
为1行n列的实数矩阵,通过
Figure 861385DEST_PATH_IMAGE006
函数将闲聊语句中的字映射成字向量,闲聊语句中每个字都会被映射为字向量,神经网络中会提前预存所有字向量,字向量可以从公开数据中获取;
Figure 616983DEST_PATH_IMAGE007
(2)
其中,m是句子中字的个数,
Figure DEST_PATH_IMAGE027
为m行n列的实数矩阵,通过公式2可将所有字向量拼接起来;
Figure 586076DEST_PATH_IMAGE009
(3)
其中,W1,b1是神经网络中的参数,
Figure DEST_PATH_IMAGE028
为n行n列的实数矩阵,
Figure 226267DEST_PATH_IMAGE011
为1行n列的实数矩阵;
Figure 433257DEST_PATH_IMAGE012
(4)
其中,
Figure 343444DEST_PATH_IMAGE013
是神经网络中的参数,
Figure DEST_PATH_IMAGE029
为n行4列的实数矩阵,
Figure 678129DEST_PATH_IMAGE015
为1行2列的实数矩阵,
Figure 636858DEST_PATH_IMAGE016
是归一化函数,用于把向量中的值映射为0-1之间的小数,
Figure 245825DEST_PATH_IMAGE016
公式如下:
Figure 389230DEST_PATH_IMAGE017
(5)
其中,
Figure 349227DEST_PATH_IMAGE018
的意思是向量s中的第i个值,
Figure 111647DEST_PATH_IMAGE019
是s中所有值的求和,通过公式4获得的
Figure 355546DEST_PATH_IMAGE020
是一个4维向量,其数值分别代表了每个字属于各个用户标签的概率。
6.根据权利要求5所述的基于用户聊天记录的标签挖掘设备,其特征在于,所述每句话的用户标签包括在该句话中的每个字以及每个字的类别,所述每个字的类别的标注规则如下:
如该字是用户标签的开始,则这个字的类别记为B;
如该字是用户标签的结束,则这个字的类别记为E;
如该字在用户标签的中间,则这个字的类别记为I;
如该字不在用户标签中,则这个字的类别记为O。
7.根据权利要求5所述的基于用户聊天记录的标签挖掘设备,其特征在于,所述从预处理后的聊天数据中抽取用户标签包括:
基于标签抽取模型抽取用户标签;
使用公开的分词工具对聊天记录进行分词,然后选取出现次数在设定阈值以上的名词作为用户标签;
将以上两种方式抽取的用户标签合并,然后计算每个用户标签的得分,最后根据得分排序,选取得分高的若干作为用户标签,计算每个用户标签的得分的方式如下:
Figure 889427DEST_PATH_IMAGE021
其中,
Figure 851567DEST_PATH_IMAGE022
是该标签在聊天记录中出现的次数,
Figure 962218DEST_PATH_IMAGE023
是聊天记录总字数,
Figure 732728DEST_PATH_IMAGE024
是该标签在通用语料库中出现的次数,
Figure 155619DEST_PATH_IMAGE025
是通用语料库总字数。
8.根据权利要求5所述的基于用户聊天记录的标签挖掘设备,其特征在于,所述预处理包括依次进行的统一编码、简繁转换和移除无效字符。
CN202011556453.4A 2020-12-25 2020-12-25 一种基于用户聊天记录的标签挖掘方法及设备 Active CN112287076B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011556453.4A CN112287076B (zh) 2020-12-25 2020-12-25 一种基于用户聊天记录的标签挖掘方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011556453.4A CN112287076B (zh) 2020-12-25 2020-12-25 一种基于用户聊天记录的标签挖掘方法及设备

Publications (2)

Publication Number Publication Date
CN112287076A CN112287076A (zh) 2021-01-29
CN112287076B true CN112287076B (zh) 2021-04-02

Family

ID=74426199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011556453.4A Active CN112287076B (zh) 2020-12-25 2020-12-25 一种基于用户聊天记录的标签挖掘方法及设备

Country Status (1)

Country Link
CN (1) CN112287076B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062630B (zh) * 2022-07-25 2023-01-06 北京云迹科技股份有限公司 机器人昵称的确认方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156003A (zh) * 2016-06-30 2016-11-23 北京大学 一种问答系统中的问句理解方法
CN110674319A (zh) * 2019-08-15 2020-01-10 中国平安财产保险股份有限公司 标签确定方法、装置、计算机设备及存储介质
CN111767386A (zh) * 2020-07-31 2020-10-13 腾讯科技(深圳)有限公司 对话处理方法、装置、电子设备及计算机可读存储介质
CN111914076A (zh) * 2020-08-06 2020-11-10 平安科技(深圳)有限公司 一种基于人机对话的用户画像构建方法、系统、终端及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156003A (zh) * 2016-06-30 2016-11-23 北京大学 一种问答系统中的问句理解方法
CN110674319A (zh) * 2019-08-15 2020-01-10 中国平安财产保险股份有限公司 标签确定方法、装置、计算机设备及存储介质
CN111767386A (zh) * 2020-07-31 2020-10-13 腾讯科技(深圳)有限公司 对话处理方法、装置、电子设备及计算机可读存储介质
CN111914076A (zh) * 2020-08-06 2020-11-10 平安科技(深圳)有限公司 一种基于人机对话的用户画像构建方法、系统、终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NLP技术在宜信业务中的实践【构建用户画像篇】;宜信技术学院;《https://aijishu.com/a/1060000000007972》;20190902;第1-3页 *

Also Published As

Publication number Publication date
CN112287076A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN109657054B (zh) 摘要生成方法、装置、服务器及存储介质
US8744839B2 (en) Recognition of target words using designated characteristic values
CN109255027B (zh) 一种电商评论情感分析降噪的方法和装置
CN111274804A (zh) 基于命名实体识别的案件信息提取方法
CN112559684A (zh) 一种关键词提取及信息检索方法
CN110096572B (zh) 一种样本生成方法、装置及计算机可读介质
CN108804577B (zh) 一种资讯标签兴趣度的预估方法
CN112989208B (zh) 一种信息推荐方法、装置、电子设备及存储介质
CN111783428A (zh) 基于深度学习的应急管理类客观题自动生成系统
CN110110218B (zh) 一种身份关联方法及终端
CN112287076B (zh) 一种基于用户聊天记录的标签挖掘方法及设备
CN112541095A (zh) 视频标题生成方法、装置、电子设备及存储介质
CN115062621A (zh) 标签提取方法、装置、电子设备和存储介质
CN113076391B (zh) 一种基于多层注意力机制的远程监督关系抽取方法
CN110659392A (zh) 检索方法及装置、存储介质
CN111797247B (zh) 基于人工智能的案件推送方法、装置、电子设备及介质
CN113590810A (zh) 摘要生成模型训练方法、摘要生成方法、装置及电子设备
CN114943549A (zh) 一种广告投放方法及装置
CN108427769B (zh) 一种基于社交网络的人物兴趣标签提取方法
CN112015871A (zh) 基于事件集远程监督的人物关系自动标注方法
CN113722460B (zh) 指标数据入库方法、装置、设备及存储介质
CN114943285A (zh) 互联网新闻内容数据智能审核系统
CN113934910A (zh) 一种自动优化、更新的主题库构建方法,及热点事件实时更新方法
CN114338058A (zh) 一种信息处理方法、装置和存储介质
WO2024011933A1 (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