项目简介

     如今,社交网络上有着各种各样的言论,清晰直观地了解到这些言论所表达的情感不仅可以更好地促进交流沟通,如果采取正确的行为还可以减少网络暴力事件的发生、缓解人们的负面情绪和提升人们的幸福感。本文通过爬虫技术从中文社交网络平台获取大量的言论数据,进行人工标注和预处理,然后结合中文维基百科训练word2vec词向量,对词向量融合情感词典扩展向量维度使之成为情感词向量,再利用LSTM长短时记忆神经网络训练情感分析模型。该模型能识别“高兴”、“愤怒”、“悲伤”、“恐惧”四种情感,对测试集评估效果准确率达到73%,“悲伤”的情感识别率相对较低,且容易错误地识别成“愤怒”,这可能和一些言论所包含的情感比较复杂有关。最后,本文构建一个简单的展示系统,用户可以自定义颜色-形状基准表,然后系统通过上述建立的模型识别输入文本的情感,并将不同的情感用不同的颜色结合不同的形状展示在界面上。

研究背景

      人在进行社会交往的过程中,为了更好地进行交流沟通,我们需要清晰直观地了解到对方所要表达的情感——人们对于事物的感情是喜欢还是厌恶,对所发生的事件、自己的经历等是悲伤还是高兴。在互联网高速发展的今天,各个社交网络上都充斥着人们对朋友诉说的话、发表的言论,这些话语都表达了一定的情感,如果我们能更好地识别这些情感,交流和沟通将会更加的高效,如果我们再做出正确的行为,将会减少一些暴力事件的发生、缓解负面情绪、促进人们之间有温度的交流并提升人们的幸福感。

      英国哥斯拉大学的研究人员发表在《当代生物学》杂志上的研究认为,人类的基本情绪有四种——快乐、悲伤、恐惧、愤怒。所以本文对社交文本进行“快乐”、“悲伤”、“恐惧”、“愤怒”四种情感的识别。目前,情感词典、机器学习、深度学习皆可用来进行情感分析。情感词典的质量影响着分析的结果,因为现在网络用语和各种领域术语较多,而人类的语言又是一个很复杂的东西,运用情感词典计算得到的加权分值可能不能很好地体现句子真正的情感;基于传统机器学习的方法需要你能够很好地提取文本的特征向量;基于深度学习方法能从大量文本中自动学习到语言的深层特征,使得到的模型适应性强。因此,本文选择基于深度学习的分析方法。

      根据研究表明,几何图形和色彩都蕴含一定的情感,当我们看到某些图形和颜色时,会自然地触发内在的感受,这和我们的成长环境以及习得的文化有关。为了使情感可视化,本文构建了一个界面系统,通过形成用户个体的颜色-形状基准表,让情感以色彩-形状组合的新形式出现在界面上,使不同的用户在试图理解对方的情感时更加容易,从而使用户之间的交流更加高效和清晰。

国内外研究现状

      最初,情感词典和机器学习常用于文本情感分析中,在机器学习中,常见有基于语料库单个词频和基于N-gram模型构建文本特征向量。Kim、Hovy[1]借助于情感词典,通过计算文本中词汇的情感得分来判断新闻媒体文本的情感。Pang、Lee等人[2]最早将机器学习算法应用至文本情感分类任务中,通过提取二元特征并利用不同的机器学习模型对英文电影评论进行情感分析,并证实了使用机器学习比情感词典效果好。

      随着深度学习地蓬勃发展,深度学习运用在自然语言处理中也越来越广泛,特别是循环神经网络,它能记住历史输入信息。Li、Liu等人[3]在机器翻译领域运用循环神经网络取得了很好的效果。但是循环神经网络存在反向传播梯度消失的问题,使得最基本的循环神经网络无法满足实际需求。在1997年,Hochreiter和Schmidhuber[4]提出的一种RNN的进化形式——长短时记忆神经网络(LSTM)则能很好地改善这个弊端。后来被众多学者推广,比如现在出现的BiLSTM——它是由双向LSTM组合而成,它既能捕捉记忆前面的内容也能捕捉记忆后面的内容,改善了LSTM无法编码从后到前的信息,LSTM及其改进形式因为性能出色被广泛运用于自然语言处理中。

      自然语言作为输入数据进行深度学习时,需要将这些句子转换为机器能理解的形式,在传统的机器学习中,主要将语料库中大于一定频数的词语,对其进行编号,然后对每个句子提取特征向量,也即独热表示法,该方法虽然简便,但造成文本向量维度过高,增加了计算的复杂度,同时每个词语的语义关系也不能体现。于是Bengio等人[5]提出用神经网络来训练语言模型(word embedding)。Mikolov等人[6]提出基于神经网络的word2vec框架。

      基于word2vec模型的词向量包含语义的相似性,然而并未考虑情感上的相似性。何炎祥等人[7]将微博表情所涵盖的情感信息考虑进词向量,通过词向量表示的方法,构建表情的情感特征矩阵,再与词向量相乘使向量既融合了情感又融合了语义,增强了模型感知情感和语义的能力。杜慧、徐学可等人[8]提出对CBOW模型(word2vec的一种训练模型)训练出的词向量进行情感微调,避免了原始词向量只考虑语义而欠缺了情感信息,并在结果证实了使用该情感词向量比利用词袋模型表示文本特征要好和比使用原始word2vec词向量进行文本分类效果要好。

      目前,很多的证据表明,视觉图像的基本几何结构是传达情感含义的有效机制。Aronoff、Barclay等人[9]从面具中的研究表明,角和对角构型这类非代表特征能对观察者产生威胁感,与曲线图案相比,更具角度和对角形的图案能有效地使观察者产生更加消极的主观反应。Aronoff、Woike等人[10]研究表明,尖锐的角传达了威胁,而圆形则传达了温暖,人在表达愤怒和快乐时会在面部展现一些几何特征,所以也就赋予了几何图形的情感含义。Larson等人[11]研究到参与者能够快速地将向下指向的三角形归类于不愉快的情感,证实了在不需要明确的判断下人们能感知简单几何形状所传达的情感,他们提出对形状的理解可能基于我们幼年时对周围世界的观察和学习,进化和文化习得皆会影响这些形状的内涵。

      心理学家认为,色彩对视觉有着重要影响,从而直接影响人们的心理活动、情绪等。颜色源于大自然和我们周围的世界,看到这些色彩就会使我们自然地联想到与这些色彩相关的物体,从而直接影响我们的感受。比如红色给人感觉幸福、热情等,蓝色使人感到宁静、寒冷、忧伤等。

      王海旋提到通讯软件中的图形和图标能传达更加丰富的含义(相比文字),它的传递是视觉信号转换为思想,并产生情感的过程。图形的交流往往能使用户印象深刻,如果图片设计得很贴合观众的心理或符合观众的审美,那么用户在使用软件时会产生感官上的共鸣和视觉上的享受,当然就会愿意继续使用这些图形和图标。游凯等人[13]在阐述产品的设计时,提到产品应该给人一种直接的感官体验,比如注重产品的形态、色彩等,也提到产品应在功能上具有易懂性和可用性,如果产品外在吸引人且好用、方便,那么人们便愿意使用该产品。本文将情感可视化,通过图形和色彩交流,不仅直观而且安抚人对纯文字的疲惫感。

数据获取

       由于目前公开的中文情感数据集大多都是只有正、负两种情感标注,且一些语料的符合度和标注的情况不是很理想,因此需要自己获取和整理数据。本文在微信、QQ群中搜集了部分聊天语料,由于在一些情况下(如年轻人发信息)人们喜欢将一句话分成几个部分进行发送,比如“我选个角色,选了十几分钟都没选好”会分成这样几句话“我选个角色”“选了十几分钟”“都没选好”发送给接收方,所以对于这样的情况,为了更好地完成情感分析,会拼接成一句话进行处理和分析,同时搜集了微博上来自工作、学习、生活、影视、游戏等多个方面的评论数据,选取的句子都是符合日常情感表达中所使用的语料。数据获取主要使用的技术是爬虫技术。

       可以编写爬虫程序,使之按照一定的规则,自动抓取、采集万维网中数据。爬虫的工作步骤如图所示。

 

       数据获取是通过Requests请求,并遵循HTTP协议,获取相关网页的数据。服务器返回HTML文档或JSON格式的文件,数据解析可以使用XPath、正则表达式和Beautiful Soup等方法,但XPath和正则表达式效率较高,所以本文选择XPath和正则表达式。

       爬取回来的数据可以存储在文档或数据库中,但本文数据结构简单且无复杂实体关系,所以存储为本地CSV文档。在使用网络爬虫技术时,也要科学合理地使用,避免对服务器造成较大的影响。

词向量模型

       由于中文文本是非结构化的数据形式,无法作为模型的输入,因此需要将文本进行向量化。将文本每个词通过Embedding操作变成低维度的向量表示,且词的语义相似性可以映射为空间中向量的距离相似性。

       Google的word2vec是优秀的开源词向量工具,它通过神经网络,使意义相近的词语在空间上具有相似性。word2vec模型根据提供语料库中的每个句子进行训练,并且以一个固定窗口在句子上进行滑动,根据句子的上下文来预测固定窗口中间那个词(CBOW模型),或者根据当前词预测它的上下文词(Skip-gram模型)。本文选用基于负采样的CBOW神经网络模型训练得到词向量,模型结构如图所示。

 

融合情感的词向量模型

       基于word2vec的词向量具有语义上的相近性,但并没有考虑到情感因素,有些词语在语义上相近,比如“喜欢”和“讨厌”都可以形容人对事物的看法,但是它们在情感表达上却是相反的,为了更好地识别文本情感倾向,本文结合情感字典对基于word2vec的词向量进行改进。

情感词典

       本文使用知网Hownet词典,该词典包含中英文正面评价词、中英文负面评价词、中英文正面情感词、中英文负面情感词、程度级别词等,虽然本文含有“高兴”、“愤怒”、“悲伤”、“恐惧”四种情感,但这四种情感也都体现了情感的正负向,如这两句话:

       “我喜欢这种做法!”

       “我讨厌这种做法!”

       这两句话中,“喜欢”和“讨厌”的上下文一样,它们在基于word2vec训练后的词向量相似,但其实这两个词的却是正负向情感倾向的词语,这两个句子再细分情感,第一句应为“高兴”情感倾向,第二句应为“愤怒”情感倾向。

       本文将利用知网Hownet词典中的中文负面情感词、中文负面评价词、中文正面情感词、中文正面评价词,并结合网上搜集到的否定词,最终形成了集合正向情感词、正向评价词、负向情感词、负向评价词、否定词的词典。对该词典进行部分词语展示如表所示。

 

情感词向量

       对语料库中的每一个词语的词向量(基于word2vec训练得的60维向量)尾部再添加一个长度为5的向量,向量中每个维度代表上述情感词典中的一种词类,如“爱慕”用表示,“鄙弃”用表示,如果某个词属于某一类,则相应维度上的值为1。

LSTM长短时记忆神经网络

       前馈神经网络由三部分组成——输入层、隐藏层、输出层。而循环神经网络(RNN)与前馈神经网络的主要区别是RNN考虑了时间信息。每一个输入文本是时间序列数据,每个词语的出现都依赖于它前一个词语和后一个词语,由于这种依赖的存在,循环神经网络(RNN)更有利于处理文本这种时间序列数据。循环神经网络结构如图所示。

 

       在RNN中,文本句子中的每个词语都被考虑上了时间步骤,实际上,时间步长的数量等于最大序列长度,如图所示。

 

       循环神经网络理论上可以接受任意长度的序列,在处理文本信息时,每一个输入对应文本中的一个词语,在网络中每个词语对应一个输出,称为隐藏状态向量,这个向量记忆了之前输入和此刻输入的信息,是当前词语向量和前一步的隐藏状态向量的函数,再通过激活函数激活。处理过程如图所示。

 

       但是实际情况下,循环过多会出现梯度消失的现象,使得最基本的循环神经网络无法满足实际需求。由Hochreiter和Schmidhuber提出的一种特殊形式的RNN——长短时记忆神经网络(LSTM)则能很好地改善这个弊端。LSTM通过三种门结构遗忘一些信息和保留一些信息,LSTM结构如图所示。

 

实验步骤

本文总体实验步骤如下: 步骤一:利用爬虫技术获取相关情感数据,对数据进行人工标注和数据清洗等。 步骤二:下载中文版维基百科,对维基百科数据进行格式转换、繁简转换等预处理。 步骤三:将情感数据和维基百科数据相结合,进行中文分词,然后训练word2vec词向量模型。 步骤四:将预处理后的情感数据分为训练集和测试集。 步骤五:将词向量融合情感词典构造情感词向量模型。 步骤六:将中文训练集根据情感词向量转换为词向量矩阵输入LSTM长短时记忆神经网络进行训练。 步骤七:将测试集输入训练好的模型,评估模型的效果。 总体实验流程如图所示。

first service

 

社交文本获取

由于微信、QQ上的数据隐私性较强、获取难度大,所以采用三名志愿者提供的聊天数据,使用最基本的复制粘贴的方法。数据部分展示如表。

本文也搜集了微博上来自工作、学习、生活、影视、游戏等多个方面的评论数据,这些评论数据表达了自己的感受、情绪以及针对某一话题自己的经历。对于微博上的数据采取爬虫技术,主要分为“数据获取”、“数据解析”、“数据存储”三个部分。

first service

 

数据获取

对于微博中的评论,每条微博所含的评论数不一样,且每一页的评论是通过Ajax技术动态加载在页面上的。通过火狐浏览器的开发者工具,如图所示。

找到请求获取评论的URL和相关的规律,使用头信息验证和传入每一页相应的参数,并限制请求频率,每爬取一页,设置time.sleep(3),停顿三秒,使之爬取的速度尽可能接近人们使用的速度。

first service

 

数据解析

获取到的响应数据是JSON格式,如图所示

first service

 

使用lxml库的XPath解析出相应的评论数据,首先打开网页HTML,在HTML中,所有的内容都可以看作节点,整个HTML文档是一个文档节点,每个HTML元素是元素节点,此次获取评论数据的HTML DOM节点树如图所示

first service

 

XPath解析评论数据代码如图所示

first service

 

由于获取每一页所要提交的参数不一样,于是利用正则表达式获取下一页相关的参数,整个解析过程函数parse_res(self,response)如图所示

图中阴影地方pat2即为正则表达式解析数据的模式字符串。在这里,先把每个评论数据结点用XPath解析出来,然后去掉冒号、换行和空格等,把评论数据转换为DataFrame格式,每一条数据附在上一条数据后面。DataFrame两个列属性“content”和“type”,“content”表示评论,“type”是情感(首先设置为0,方便后面进行标注)。

first service

 

数据存储

将数据以CSV格式存储在本地文件中。部分数据展示如图所示

first service

 

文本预处理

数据的预处理包括文本的情感倾向标注(分为高兴、愤怒、悲伤、恐惧)、文本清洗、中文分词。文本预处理是在集成开发环境Anaconda Jupyter notebook 上运行。

由于原始的文本中存在一些特殊字符和很多不规范的表达,且含有和评论无关的信息,因此需要对文本进行预处理,从而得到规范化的文本数据。主要流程如图所示。

first service

 

情感倾向标注

将人们在社交网络上表达的情感分为4类——高兴、愤怒、悲伤、恐惧,采用细致的人工标注法对这些获取的数据进行筛选和标注,如图所示。

first service

 

文本清洗

使用正则表达式将文本中的空格、特殊字符等去掉,还有微博评论数据中,“#...#”表示某一主题、“@...”表示指定某人等等,将这些都利用正则表达式去掉,将有的错别字进行改正,如果出现空行,则直接清除掉,部分代码和清洗好的数据如图所示。

first service

 

first service

 

文本分词

使用的分词器为jieba分词器,选择jieba分词器是因为要分析的句子是中文的,同时jieba是一款免费的分词器工具包,对不是过于复杂的句子和特定领域的句子都具有很好的分词效果,适合对日常人们社交所表达的内容进行分词,同时也可以再自己加入特定的词汇,而NLTK工具包也有分词器,但是更适用于英文分词。分词效果如下:

'全国', '首趟', '春运', '高铁', '务工', '专列', '发车', '广大', '务工者', '登上', '幸福', '回家', '路'

本文没有去除停用词,因为有些停用词含有情感信息,比如“难道你这样做没错”和“你这样做没错”表达的情感是不同。

构造情感词向量

Word2vec词向量构造主要的数据来源于中文维基百科,同时再附加爬取所得的中文情感数据。首先将官网上下载的维基百科数据包(.bz2格式),在PyCharm集成开发环境上利用Python代码将其转换为.txt格式,用记事本展示如图所示。

first service

 

利用OpenCC软件将繁体转换为简体,然后结合经过预处理后的情感文本,利用jieba分词器对其进行分词,分词后的结果用记事本展示如图所示。

first service

 

将分词好的数据进行训练得word2vec词向量模型。词向量训练使用gensim.models.word2vec来实现,Gensim是Python第三方工具包。使用Gensim的word2vec工具包训练词向量的主要参数设置如表所示。

first service

 

由此可训练出语料库中词语的词向量,如果两个单词具有语义上的相似性,则它们的词向量在空间上的距离相近。训练后得到的词语对应的词向量如表所示。

first service

 

简单地测试词向量模型如图所示。

图中测试了4个词语——“喜爱”、“讨厌”、“学生”、“生气”,列表表示与这4个词语距离最近的10个词语。从图中可以看出,一个词语和空间上与之距离相近的词语也存在语义上的联系,但是有些词语的情感倾向却相反,比如“讨厌”和“喜欢”,“生气”和“高兴”。

first service

 

然后结合情感词典,将所有词划分为6类,正向情感词、正向评价词、负向情感词、负向评价词、否定词、非上诉三类词。扩展word2vec词向量维度,将60维扩展为65维,分别将60维向量与,, ,,,中的一种沿词向量方向进行叠加,得到的词语对应的词向量如图所示。

first service

 

构造LSTM模型及结果分析

经过一定的筛选,使高兴、愤怒、悲伤、恐惧四类情感文本各含有3200条数据,使数据分配均衡。句子长度及频数如图所示。

first service

 

由图像可得,句子的最大长度设定为100。LSTM的输入层是文本经过向量化后生成的矩阵,词向量维度是65,所以每个句子的输入是一个100*65的矩阵。隐藏层神经元个数设置为100,输出层选择softmax分类器,结果为一个4维向量(高兴、愤怒、悲伤、恐惧四类情感概率)。所用的编程语言为python3.7,使用的深度学习框架为TensorFlow,设置batch大小为64,优化器采用Adam,设置dropout参数保留0.75,迭代次数为20000次。训练过程如图所示。

first service

 

将4类数据4:1分为训练集和测试集,对测试集评判的结果如表所示。为了使展示更加直观,采用混淆矩阵对测试集评判的结果进行可视化展示,如图所示。

训练总准确率是0.73,“悲伤”的划分效果不及“高兴”、“愤怒”和“恐惧”的划分效果。中文句子比较复杂,有各种转折,网络上人们的说话方式也各不一样,会存在一些不常见的用法和生僻的词语,并且数据集涉及到学习、工作、影视、游戏等方面,还需要更大的数据集来训练。同时还需要对词向量转换为情感词向量的情感把握进行提升,使得到的情感词向量能够更好地表示情感相似性和语义相似性。

由混淆矩阵可以看出,在“悲伤”数据集中,有79条错误地识别成“高兴”,有113条错误地识别成了“愤怒”,有53条错误地识别成“恐惧”,可见错误识别成“愤怒”的占比较高。在人工标注数据集的过程可知,有很多句子的情感较为模糊,一些句子的情感是“悲愤”的,既在表达悲伤的同时,又表达了愤怒,比如“那些小动物真的好可怜,它们实在是太惨了,都怪那些不爱惜环境的人们,他们实在是太可恶了”。

所以以后在进行改进时,可以将情感划分得更加丰富和细致,因为有的句子涵盖的情感其实是多样化的,可以将情感进行“二元化”展示,比如当句子的情感识别成“高兴”和“悲伤”的概率较高时(悲喜交加的语句),识别结果则为“高兴”和“悲伤”两种。

first service

 

first service

 

系统实现

基于颜色和形状的情感通讯系统是,观察者可以设置自己的颜色-形状基准表来表示不同的情感,发送者发出一段文本,则该文本的情感将映射为相应的颜色-形状组合显示在观察者界面上。比如用户(观察者)可以进行如此基准表设置。

first service

 

则当发送者对用户(观察者)发出一段“高兴”的言论,则用户的界面就会显示如图。

first service

 

如果发送者对用户(观察者)发出一段“恐惧”的言论,则用户的界面就会显示如图。

first service

 

如果发送者对用户(观察者)发出一段“悲伤”的言论,则用户的界面就会显示如图。

这样用户可以避免看到大量文字而直接识别出对方所要表达的情感。同时图形的表达使用户的映像更深刻,带给用户感官上的不同体验。

first service

 

系统流程

本文将该展示系统进行简化,直接在单个界面上进行操作,系统整体流程如图。

步骤一:用户(观察者)设置颜色和形状的基准表,每一种情感用什么颜色和什么形状进行组合,用户可以选择自己最喜欢的方式。 步骤二:将选择结果(基准表)进行提交。 步骤三:输入一段文本,用上文所建立的模型对文本进行情感识别。 步骤四:以颜色和形状的组合显示在界面上。

first service

 

界面制作及展示

由于情感识别是采用Python 3.7编写,为了更方便地编写展示系统,所以界面也是采用Python编写,并导入特定的Python界面工具。目前Python界面工具有Tkinter、wxPython、PyGTK等等,本文采用的是PyQt5,PyQt5是Python对跨平台工具集Qt的包装,它既融合了Python简洁的编程语法,又融合了QT强有力的功能,可以开发出漂亮的界面。本文在PyCharm集成开发环境上运行PyQt5。

运行主函数,打开操作界面,如图所示,在界面左边设置个人的颜色-形状基准表。

first service

 

展示系统是采用面向对象编程,封装在自定义类ColorShapeDemo中,该类包含以下函数:

def __init__(self,wordslist,wordsvector)

该函数是构造函数,用来初始化一些变量和调用父类的构造函数,wordslist是词语列表,wordsvector是词语所对应的词向量。

def initUI(self)

该函数用来设计最初始的界面,包含QFrame 控件基类、QLable标签、QPushButton按钮、QComboBox下拉文本框、QTextEdit多行输入文本框以及绘画区域等的放置,以及各个控件的色彩、大小、字体等的风格设置。

def slotBrushColor1(self)

def slotBrushColor4(self)

该函数是用来设置颜色框(QFrame 控件实现)的颜色,当用户点击“颜色”按钮时,会弹出颜色选择界面,用户可以进行颜色设置,如图所示。

first service

 

def slotShape1(self, value)

def slotShape4(self, value)

该函数是用来设置形状,当用户点击下拉文本框(QComboBox控件实现)时,则可以进行相应情感的形状设置,如图所示。

first service

 

def sendbtn(self)

该函数是当用户点击“提交”按钮时,右边会显示相应的控件,一开始右边的控件设置成了隐藏。点击提交后,界面如图所示。

first service

 

右边下方的面板则是绘图区域,在进行情感识别之前首先默认设置成一张图片。绘画区域是用一个自定义类PaintArea来实现,该类传入ColorShapeDemo类中设置的Qpen画笔、QBrush画刷以及形状的值,然后绘画出相应的图形。该PaintArea类构造函数代码如图所示。

first service

 

绘出图形是采用Qt自带的QPainter类,调用该类的drawPixmap()、drawRect()、drawEllipse()、drawPath()等方法来绘制不同的图形。绘画部分代码如图所示,其中“心形”是采用贝塞尔曲线(设定控制顶点坐标)绘制而成。

first service

 

def Emotionbtn_clicked(self)

该函数是当用户在多行文本框输入句子后,点击“进行识别”按钮后,则开始进行情感识别,首先将句子进行jieba分词,然后找到在词向量中的索引,再调用getEmotion()函数将训练好的情感分析模型导入,最后将识别出来的情感以用户自定义的形状和颜色表示在下方。

def getEmotion()

该函数是将之前训练好的模型导入,设置参数、打开会话、调入模型,对句子进行情感识别,将识别出来的情感保存在变量(self.emotion)中。

在输入文本框输入语句进行情感识别,展示如右图所示。

可见模型的效果还是不错的,对情感的分析把握到位,通过界面的可视化,使情感更清晰直观。

first service

 

first service

 

first service

 

first service

 

场景分析

基于颜色和形状的通讯系统可以应用于两种情况,一是双人聊天界面,二是多人聊天界面。对于双人聊天界面,当发送者发送的文字具有情感性,则观察者的聊天背景会显示相应情感的形状(带有颜色);对于多人聊天界面,当发送者发送的文字具有情感性,则在每个发送者的聊天语句后面会附带相应情感的形状(带有颜色)。对于这两种情况,本文分别给出一个特定场景。

特定场景1

一天,小静约小雯去看电影,但小雯因为某种原因爽约了,针对这件事,两人在网上聊天,小静的颜色-形状基准表的设定如表5.1所示,小静和小雯的聊天记录如下所示: 小静:你知道吗?昨天的电影那么好看,你居然爽约,害得我一个人在电影院看 小雯:对不起对不起,都是我不好,居然没想到昨天还有事,破坏了你的好心情,都是我的错 小静:算了,算了,看你那么忙,原谅你了,下次可不要再这样了 小雯:哈哈哈,谢谢呀,爱死你了,下次不会啦 聊天过程如图所示。

first service

 

特定场景2

一天,公司管理员在多人聊天群里发布了一则消息,管理员的颜色-形状基准表的设定如表5.1所示,然后很多公司职员在聊天群里发表了自己的看法,通过颜色-形状表示,管理员可以快速了解到公司职员针对这则消息的情感以及各种情感的占比,聊天界面如图所示。

由于颜色和简单几何形状是更通用和更基层的展示形式,它比复杂图案的运用更广泛,每个学习认知经历不同的人对复杂图案的理解存在一定的偏差,而这里通过设定个人的颜色-形状基准表,每个人可以更容易更清晰地理解对方所表达的情感。

first service

 

Quisque commodo quam

Vestibulum augue ex, finibus sit amet nisi id, maximus ultrices ipsum. Maecenas rhoncus nibh in mauris lobortis, a maximus diam faucibus. In et eros urna. Suspendisse potenti. Pellentesque commodo, neque nec molestie tempus, purus ante feugiat augue.

first service
second service

Maecenas eu purus eu sapien

Sed vitae felis in lorem mollis mollis eget in leo. Donec commodo, ex nec rutrum venenatis, nisi nisl malesuada magna, sed semper ipsum enim a ipsum. Aenean in ante vel mi molestie bibendum. Quisque sit amet lacus in diam pretium faucibus. Cras vel justo lorem.