首页 > 人工智能 > 使用数据挖掘方法进行自动化聊天分析

使用数据挖掘方法进行自动化聊天分析

 

在线聊天中实时的自适应反馈和学习有助于增强聊天系统的“意识”,07年的文章 “Towards educational data mining: Using data mining methods for automated chat analysis to understand and support inquiry learning processes” 就研究了如何使用数据挖掘方法对在线通信提供一个实时的反馈,并且通过实验验证了可以使用聊天者的交互行为增强聊天学习器的“意识”,从而提升人们的在线聊天体验。

在线聊天中,学习器倾向于更加简洁,而且很容易从一个话题转移到另一个话题。这些是有其优点的(比如头脑风暴),但不利于有些需要专注于某个话题的聊天环境中,这就需要一个工具可以通过整合、组织和评估聊天者输入的信息来帮助学习器。为了给学习器提供合适的反馈和指导,这套工具需识别出聊天信息的内容及其表述的真实含义。因此,在通信模式中的一个通用分析步骤就是为不同类型的消息定义其功能。

研究人员 Gijlers 和 De Jong 为此定义了四种消息功能:regulatory, domain, social, technical. Domain messages concern expressions referring to the domain at hand, as long as these messages are not of a regulative nature. Regulative messages relate to planning or monitoring of the learning process. Technical messages concern the learning environment itself, tools, hardware, and software. The fourth category comprises social messages like greetings, compliments, remarks of a private nature, and so on.把消息功能定义的这么宽泛是个不错的选择,因为定义更多精细的功能会增加识别难度,而且会减少各个功能中聊天消息的样本量,不利用统计分析。本文的研究主要集中在把每条聊天信息分类为上述的四种功能中,同时为了能给学习器提供实时的反馈,这个分类过程需要自动进行。

分类的一般方法是从聊天信息中抽取出特征集训练出一个模型,然后对一组未知分类的特征可以计算出其分类。本文采用以下的方法构建特征:

单个词:一个常用的方法是把一篇文档看作一个词袋(bag of words),把词语的出现与否作为一个特征。

浅层语法:在本文研究的分类中,语法结构对确定聊天信息的分类有很大帮助。比如regulatory类信息(ok, I agree)与domain类信息(the speed increases)不仅使用的词语不同,而且也有着不同的语法结构。词性标签可以概括出信息的语法模式(比如:”ok/uh, I/pp, agree/vb”,”the/at speed/nn is/vb constant/jj”),这也可以作为分类的特征之一。

数据标准化

原始数据采用的是78个session对话(共包括16879条聊天信息),其中大多数是荷兰语,少部分是英语。这些语料有两个很大的问题:噪声很大;单条信息很短。原始数据中共5749个不同的单词,其中3353(58.3%)个词语未收录在常用的荷兰语词典中,8223(48.7%)条信息至少包含一个未知的单词。聊天信息中单词数量的分布如下:0个单词的(仅包含数字、标点等)389条,1个单词的(比如:ok、yes、no等)5502条,3008(2个单词),2857(3个单词),2300(4个单词),1669(5个单词),852(6个单词),256(7个单词),36(8个单词),7(9个单词)。

数据中的噪声主要来自以下几个原因:误拼、复合拼写、聊天专用语言、缩写、前几个字母的简写(比如answer的简写为answ)、重叠(比如heeelllooo)以及感叹词的非正式写法(比如okey)。因为它们只影响了单个词,所以可以一定程度上半自动化的纠正这些噪声。

我们采用两个主要步骤归一化聊天信息。首先,使用噪声纠错方法解决误拼、复合拼写和重叠式拼写;接着,我们人工纠正大约3000个聊天信息中的其它噪声。标准化处理后,聊天数据保护了2323个不同的单词,其中789个(33.9%)不在词典中,大多数的未知词语保持一个较低的词频。

测试数据

从语料中随机选出四组测试数据,每组包含400条聊天信息。选择过程中倾向于选较长的信息,这样可以得到关于四个分类的合理的分布。大多数的信息都比较短(短信息倾向属于regulatory类别)。测试集中的每条信息都用人工进行标注:四个类别中的某一类,其它(other),一些比较模糊的信息被标注为多个分类。

特征抽取

对于单个词的特征,特征包括:单词本身、数字、笑容符号(:-))、问题标记和感叹号标记。对于在一条消息中出现多次的单词,只记一次。比如:”the answer is 4! :-)” 包含在特征集(answer,is,the,#,!,”-))中,其中,#表示任何数字。

对于浅层语法的特征,先使用TreeTagger对全部语料进行词性标注,然后对标注词性序列使用Apriori算法得到至少出现20次的最长的词性序列,这样共得到546个词性序列作为语法特征。

模型构建和分类

本研究采用朴素贝叶斯法进行建模,每条信息由一组特征表示:使用数据挖掘方法进行自动化聊天分析 - 第1张  | 新闻中心,其中,如果某个特征在信息中出现了,使用数据挖掘方法进行自动化聊天分析 - 第2张  | 新闻中心为1,否则为0使用数据挖掘方法进行自动化聊天分析 - 第3张  | 新闻中心属于类别使用数据挖掘方法进行自动化聊天分析 - 第4张  | 新闻中心的条件概率:使用数据挖掘方法进行自动化聊天分析 - 第5张  | 新闻中心,其中,使用数据挖掘方法进行自动化聊天分析 - 第6张  | 新闻中心为属于类别使用数据挖掘方法进行自动化聊天分析 - 第7张  | 新闻中心且编码后包含特征使用数据挖掘方法进行自动化聊天分析 - 第8张  | 新闻中心的信息数量,使用数据挖掘方法进行自动化聊天分析 - 第9张  | 新闻中心为属于类别使用数据挖掘方法进行自动化聊天分析 - 第10张  | 新闻中心的总信息数量。某条信息所属的类别通过计算其属于哪个类别的概率最大得到:

使用数据挖掘方法进行自动化聊天分析 - 第11张  | 新闻中心 由于有些情况下(详见李航的《统计学习方法》第四章),条件概率会为0,采用以下方法进行拉普拉斯平滑:

使用数据挖掘方法进行自动化聊天分析 - 第12张  | 新闻中心实验结果

使用数据挖掘方法进行自动化聊天分析 - 第13张  | 新闻中心

上图中,行表示的是人工标注的信息分类情况,列表示的是采用模型进行分类的情况,对角线上的数字表示人工标注和模型分类结果的一致性情况;其中,左图中模型的特征采用的是词语,右图中模型的特征采用的是语法。为了更加定量直观的给出人工标注和模型分类结果的一致性程度,可采用下式进行计算,其中,A表示两者分类结果一致的语料数量(表中对角线的数字之和),D表示的是两者分类结果不一致的语料数量,N表示总语料数量。通过计算,对于采用词语作为特征的分类模型k=0.88,而采用语法作为特征的分类模型k=0.79。

使用数据挖掘方法进行自动化聊天分析 - 第14张  | 新闻中心应用

通过上述的分类方法,可以实时构造出聊天环境中各类信息的比例情况,把这些情况反馈给学习器,可以据此对某些类别的分类或处理做出一些调整,使之更有意识。构造出的各分类比例情况可以用下图的可视化形象表示,其中,身体是regulatory类别,头部是domain类别,胳膊是social类别,腿是technical类别。左边的画像可以看出,聊天信息中domain类别的信息很少(头部很小),而右边的画像中,domain和regulatory的信息数量是相当的。两个画像中,social和technical信息都是及其少量的。

使用数据挖掘方法进行自动化聊天分析 - 第15张  | 新闻中心

 

 

 

最后编辑:
作者:兴明
这个作者貌似有点懒,什么都没有留下。

评论墙

  1. Jayce 说:

    Thanks for your thshguto. It’s helped me a lot.

留下评论

你的email不会被公开。