【发布时间】:2017-08-06 19:21:24
【问题描述】:
在 R 中分析 Facebook cmets 以进行情感分析。表情符号在 符号之间的文本中编码。
例子:
"Jesus te ama!!! <U+2764> Ou não...?<U+1F628> (fé em stand by)"
<U+2764> 和 <U+1F628> 是表情符号(沉重的黑心和恐惧的脸,
分别)。
所以,我需要拆分单词/数字和标点符号/符号,但表情符号代码除外。 我做到了,使用 gsub 函数,这个:
a1 <- "([[:alpha:]])([[:punct:]])"
a2 <- "([[:punct:]])([[:alpha:]])"
b <- "\\1 \\2"
gsub(a1, b, gsub(a2, b, "Jesus te ama!!! <U+2764> Ou não...?<U+1F628> (fé em stand by)"))
...但是,从逻辑上讲,结果也会影响表情符号代码:
[1] "Jesus te ama !!! < U +2764> Ou não ...?< U +1F628> ( fé em stand by )"
目标是为 之间的文本创建一个例外,将其从外部拆分,不要在内部拆分 - 即:
[1] "Jesus te ama !!! <U+2764> Ou não ...? <U+1F628> ( fé em stand by )"
注意:
- 有时句子/单词/标点符号和表情符号代码之间的空格不存在(需要创建)
- 要求 punct 序列保持连接(例如“!!!”、“...?”)
我该怎么做?
【问题讨论】:
-
前段时间我也遇到过同样的问题,虽然我丢弃了大多数表情符号,但只留下了六个左右,这些表情符号特别常见且与我的特定情绪分析相关。因此,我将相关的 unicode 替换为一致的字符串(即 gsub("U+1F642|U+263A","emoji_happy_faces", df$comment) ,然后我才使用 tm 包删除标点符号。希望它有所帮助。(全部emoji unidoes 可以在这里找到:unicode.org/emoji/charts/full-emoji-list.html)