【问题标题】:Can R transform emoji characters to their text equivalents?R 可以将表情符号字符转换为对应的文本吗?
【发布时间】:2018-01-08 17:11:18
【问题描述】:

在我昨天的问题中,"Can R read html-encoded emoji characters?",用户rensa noted that

据我所知,在 R 控制台中打印表情符号没有解决方案:它们总是以“U0001f600”(或者你有什么)的形式出现。但是,我上面描述的软件包可以帮助您在某些情况下绘制表情符号(我希望扩展 ggflags 以在某些时候显示任意全彩表情符号)。他们还可以帮助您搜索表情符号以获取他们的代码,但由于代码 AFAIK,他们无法获取名称。但也许您可以尝试将表情符号列表从 emojilib 导入 R 并与您的数据框进行连接,如果您已将表情符号代码提取到一列中,以获取英文名称。

这在 R 中看起来如何?

(注意:我发布此问题的目的是立即回答,而不是在上面链接的问题中发布,因为它与该问题相切,但仍可能对其他人有用。)

【问题讨论】:

    标签: r unicode encoding


    【解决方案1】:

    以下方法适用于将表情符号字符或 unicode 表示形式转换为名称。

    我很高兴在 CC0 奉献下发布下面的代码 sn-p(即将这个实现放到公共领域以供免费重用)。

    # Get (MIT-licensed) emojilib data:
    emoji_json_file <- "https://raw.githubusercontent.com/muan/emojilib/master/emojis.json"
    json_data <- rjson::fromJSON(paste(readLines(emoji_json_file), collapse = ""))
    
    get_name_from_emoji <- function(emoji_unicode, emoji_data = json_data){
      emoji_evaluated <- stringi::stri_unescape_unicode(emoji_unicode)
    
      # names(json_data)
      vector_of_emoji_names_and_characters <- unlist(
        lapply(json_data, function(x){
          x$char
        })
      )
    
      name_of_emoji <- attr(
        which(vector_of_emoji_names_and_characters == emoji_evaluated)[1],
        "names"
      )
    
      name_of_emoji
    }
    
    get_name_from_emoji("\\U0001f917")
    # [1] "hugs"
    get_name_from_emoji("?") # An attempt actually pasting the hugs emoji in also works.
    # [1] "hugs"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 2020-12-04
      相关资源
      最近更新 更多