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