这个例子展示了如何分析包含表情符号的文本数据。
表情符号是在文本中内联出现的图形符号。在智能手机和平板电脑等移动设备上写文字时,人们会使用表情符号,使文字简短,并传达情感和感受。
你也可以使用表情符号来分析文本数据。例如,使用它们来识别相关的文本字符串或可视化文本的情感或情感。
在处理文本数据时,表情符号的表现可能会不可预测。根据您的系统字体,您的系统可能无法正确显示某些表情符号。因此,如果一个表情符号没有被正确地显示出来,那么数据并不一定是缺失的。您的系统可能无法以当前字体显示该表情符号。
在大多数情况下,你可以从文件中读取表情符号(例如,通过使用extractFileText
,extractHTMLText
,或readtable
)或直接复制粘贴到MATLAB®中。否则,您必须使用Unicode UTF16编码单元组成表情符号。
一些表情包含多个Unicode UTF16编码单元。例如,“带太阳镜的笑脸”表情符号(代码点U+1F60E)是一个单一的符号,但由两个UTF16编码单元组成“D83D”
和“DE0E”
.创建一个包含该表情符号的字符串组成
函数,并使用前缀指定两个代码单元“x \”
.
emoji =组成(“\ xD83D \ xDE0E”)
emoji = " "
首先获取一个表情符号的Unicode UTF16编码单位。使用字符
得到表情符号的数字表示,然后使用dec2hex
以得到相应的十六进制值。
则= dec2hex (char (emoji))
则=2×4字符数组“D83D”“DE0E”
属性重建组合字符串strjoin
函数的空分隔符""
.
formatSpec = strjoin (“x \”+则,"")
formatSpec = " \ xD83D \ xDE0E "
emoji =组成(formatSpec)
emoji = " "
提取文件中的文本数据weekendUpdates.xlsx
使用readtable
.该文件weekendUpdates.xlsx
包含包含标签的状态更新“#周末”
和“#假期”
.
文件名=“weekendUpdates.xlsx”;台= readtable(文件名,“TextType”,“字符串”);头(台)
ans =8×2表ID TextData __ __________________________________________________________________________________ 1”结婚纪念日快乐!下一站:巴黎!✈#度假2“哈哈,在海滩上烧烤,沾沾自喜模式!”4、和我一起说——我需要一个#假期!!这么多年来第一次在家里冷静下来,这就是生活!7“真不敢相信我的假期结束了,太不公平了”8“等不及这个周末打网球了”
从字段中提取文本数据TextData
并查看前几个状态更新。
textData = tbl.TextData;textData (1:5)
ans =5×1的字符串“结婚周年快乐!下一站:巴黎!✈#度假”“哈哈,在海滩上烧烤,加入自鸣得意的模式!和我一起说——我需要一个#假期!!“这么多年来第一次在家里冷静下来……这就是生活!”#周末”
在词云中可视化文本数据。
图wordcloud (textData);
识别包含特定表情符号的状态更新包含
函数。查找包含“带太阳镜的微笑脸”表情符号的文档索引(代码为U+1F60E)。这个表情包含两个Unicode UTF16编码单元“D83D”
和“DE0E”
.
emoji =组成(“\ xD83D \ xDE0E”);idx =包含(textData emoji);textDataSunglasses = textData (idx);textDataSunglasses (1:5)
ans =5×1的字符串“哈哈,在海滩上烧烤,沾沾自喜!”#假期#准备周六晚上#美味#周末#多年来第一次在家放松…这就是生活!“看看那些不在办公室的人,我们正式开始度假了!!”“天气这么好,谁还需要度假?”
在词云中可视化提取的文本数据。
图wordcloud (textDataSunglasses);
使用单词云可视化文本数据中的所有表情符号。
提取emojis。首先使用标记文本tokenizedDocument
,然后查看前几个文档。
文件= tokenizedDocument (textData);文档(1:5)
11代币:周年快乐!下一站:巴黎!✈#假期16代币:哈哈,在海滩上烧烤,进入自鸣得意模式!13代币:和我一起说——我需要一个#假期!!!平生第一次呆在家里,这就是生活!#周末
的tokenizedDocument
函数自动检测表情并分配token类型“emoji”
.属性查看文档的前几个令牌细节tokenDetails
函数。
tdetails = tokenDetails(文件);头(tdetails)
ans =8×5表令牌DocumentNumber LineNumber类型语言 _____________ ______________ __________ ___________ ________ " 快乐“1 1字母在“周年“1 1字母在“!”11 1 punctuation en "❤" 1 1 emoji en "Next" 11 1个字母en "stop" 11 1个字母en ":" 11 1个标点en "Paris" 11 1个字母en
通过提取token类型的token,将表情符号可视化到单词云中“emoji”
然后把它们输入wordcloud
函数。
idx = tdetails。类型= =“emoji”;令牌= tdetails.Token (idx);图wordcloud(令牌);标题(“Emojis”)
tokenDetails
|tokenizedDocument
|wordcloud