R 用表情符号发推特
我放弃了twitter API和包R 用表情符号发推特,r,regex,twitter,R,Regex,Twitter,我放弃了twitter API和包rtweet中的tweet,但我不知道如何使用emojis文本,因为它们的格式为“\U0001f600”,我尝试的所有正则表达式代码直到现在都失败了。我什么也得不到 比如说 text = 'text text. \U0001f600' grepl('U',text) 给我假的 grepl('000',text) 也给我假 另一个问题是,它们通常会粘在前面的单词上(例如我在这里\U0001f600) 那么我如何让R识别这种格式的表情符号呢?我可以在gre
rtweet
中的tweet,但我不知道如何使用emojis文本,因为它们的格式为“\U0001f600”,我尝试的所有正则表达式代码直到现在都失败了。我什么也得不到
比如说
text = 'text text. \U0001f600'
grepl('U',text)
给我假的
grepl('000',text)
也给我假
另一个问题是,它们通常会粘在前面的单词上(例如我在这里\U0001f600
)
那么我如何让R识别这种格式的表情符号呢?我可以在grepl中输入什么内容,以使该格式的任何表情都返回TRUE?在R中,大多数东西都有一个包。在本例中,它附带了
词典
包,其中包含大量词典。使用textclean,您可以使用两个功能,replace\u emoji
和replace\u emoji\u identifier
text = c("text text. \U0001f600", "i am here\U0001f600")
# replace emoji with identifier:
textclean::replace_emoji_identifier(text)
[1] "text text. lexiconvygwtlyrpywfarytvfis " "i am here lexiconvygwtlyrpywfarytvfis "
# replace emoji with text representation
textclean::replace_emoji(text)
[1] "text text. grinning face " "i am here grinning face "
接下来,您可以使用mountair
在表情符号上使用情绪评分,或用于文本分析quanteda
。如果您只想检查预期输出中的状态:
grepl("lexicon[[:alpha:]]{20}", textclean::replace_emoji_identifier(text))
[1] TRUE TRUE
在R中,大多数东西都有一个包。在本例中,它附带了
词典
包,其中包含大量词典。使用textclean,您可以使用两个功能,replace\u emoji
和replace\u emoji\u identifier
text = c("text text. \U0001f600", "i am here\U0001f600")
# replace emoji with identifier:
textclean::replace_emoji_identifier(text)
[1] "text text. lexiconvygwtlyrpywfarytvfis " "i am here lexiconvygwtlyrpywfarytvfis "
# replace emoji with text representation
textclean::replace_emoji(text)
[1] "text text. grinning face " "i am here grinning face "
接下来,您可以使用mountair
在表情符号上使用情绪评分,或用于文本分析quanteda
。如果您只想检查预期输出中的状态:
grepl("lexicon[[:alpha:]]{20}", textclean::replace_emoji_identifier(text))
[1] TRUE TRUE
您的问题是在代码中使用了单个字符
\
:
text = 'text text. \U0001f600'
它真的应该是\
:
text = 'text text. \\U0001f600'
我在使用图书馆时也有过类似的经历
在我的例子中,tweet带来了一些Unicode代码点,而不仅仅是表情符号,并且具有以下格式:“一些文本”
。在本例中,我所做的是将代码点“转换”为其图形表示:
library(stringi)
#I use gsub() to replace "<U+code-point>" with "\\ucode-point", the appropriate format
# And stri_unescape_unicode() to un-escape all Unicode sequences
stri_unescape_unicode(gsub("<U\\+(\\S+)>",
"\\\\u\\1", #replace by \\ucode-point
"some text with #COVID<U+30FC>19"))
#[1] "some text with #COVIDー19"
库(stringi)
#我使用gsub()将“”替换为“\\ucode point”,即适当的格式
#和stri_unescape_unicode()取消对所有unicode序列的转义
stri_unescape_unicode(gsub(““,”),
“\\\u\\1”,替换为\\u代码点
“一些带有#COVID19“)的文本)
#[1] “一些带有#新冠病毒的文本ー19"
如果Unicode代码点没有像我的例子()中那样进行分隔,则应将正则表达式从“
更改为“U(\\S+)”
。这里您应该小心,因为如果在代码点之后出现空格字符,这将正常工作。如果在代码点之前和之后都附加了单词,则必须更加具体,并指明组成该代码点的字符数,例如“U(..)
您可以尝试使用字符类细化此正则表达式,或仅指定十六进制数字“U([A-Fa-f0-9]+)”
请注意,在RStudio控制台中,不会看到表情符号,您可以应用此功能,但要查看表情符号,必须使用R库。但是,可以看到其他字符:“#COVID19”
在RStudio控制台中显示为“#COVID”ー19“
编辑:实际上,“\\S+”
在有连续的Unicode代码点(如”
)时对我不起作用。在本例中,它只替换了第一个匹配项,我没有深入研究,只是将正则表达式更改为“
。
“[A-Fa-f0-9]”
表示十六进制数字。您的问题是在代码中使用单个字符\
:
text = 'text text. \U0001f600'
它真的应该是\
:
text = 'text text. \\U0001f600'
我在使用图书馆时也有过类似的经历
在我的例子中,tweet带来了一些Unicode代码点,而不仅仅是表情符号,并且具有以下格式:“一些文本”
。在本例中,我所做的是将代码点“转换”为其图形表示:
library(stringi)
#I use gsub() to replace "<U+code-point>" with "\\ucode-point", the appropriate format
# And stri_unescape_unicode() to un-escape all Unicode sequences
stri_unescape_unicode(gsub("<U\\+(\\S+)>",
"\\\\u\\1", #replace by \\ucode-point
"some text with #COVID<U+30FC>19"))
#[1] "some text with #COVIDー19"
库(stringi)
#我使用gsub()将“”替换为“\\ucode point”,即适当的格式
#和stri_unescape_unicode()取消对所有unicode序列的转义
stri_unescape_unicode(gsub(““,”),
“\\\u\\1”,替换为\\u代码点
“一些带有#COVID19“)的文本)
#[1] “一些带有#新冠病毒的文本ー19"
如果Unicode代码点没有像我的例子()中那样进行分隔,则应将正则表达式从“
更改为“U(\\S+)”
。这里您应该小心,因为如果在代码点之后出现空格字符,这将正常工作。如果在代码点之前和之后都附加了单词,则必须更加具体,并指明组成该代码点的字符数,例如“U(..)
您可以尝试使用字符类细化此正则表达式,或仅指定十六进制数字“U([A-Fa-f0-9]+)”
请注意,在RStudio控制台中,不会看到表情符号,您可以应用此功能,但要查看表情符号,必须使用R库。但是,可以看到其他字符:“#COVID19”
在RStudio控制台中显示为“#COVID”ー19“
编辑:实际上,“\\S+”
在有连续的Unicode代码点(如”
)时对我不起作用。在本例中,它只替换了第一个匹配项,我没有深入研究,只是将正则表达式更改为“
。
“[A-Fa-f0-9]”
表示十六进制数字。没有U
,没有000
,请参阅。有如果你想用rtweet去掉这些字符,你可以用rtweet::plain_tweets(你的文本栏名)@WiktorStribiżew我想用它们做很多事情(数一数,排序,看看哪个发生得最多)但首先我想摆脱它们,因为它们在我的wordcloud中看起来不好看。@HarroCyranka我想保留它们并隔离t