首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将emoji unicode转换为emoji?

如何将emoji unicode转换为emoji?
EN

Stack Overflow用户
提问于 2021-05-29 02:08:31
回答 3查看 139关注 0票数 0

我有一个包含70,000多条推文的.json文件,每个推文都包含表情符号。然而,我不确定如何将Unicode转换为实际的表情符号,以便它可以用于情感分析。

这是我的.json文件中5条推文的示例:

代码语言:javascript
复制
{"text":"The morning is going so fast Part 2 of #DiscoveryDay is in full swing \ud83d\ude01\n\nGreat Atmosphere in the room \n\n#BIGSocial\u2026 https:\/\/t.co\/P08qBoH6tv"}
{"text":"Double kill! #XiuKai lives! I died. \ud83d\ude0c https:\/\/t.co\/QCyk3r2JCb"}
{"text":"ALLTY \ud83d\udc94"}
{"text":"Shouldn\u2019t be normal for a 24 year old to be this tiered \ud83d\udca4"}
{"text":"@TheNames_BrieX Trust me! \ud83d\udcaf"}

现在,我如何将所有tweet的unicode转换成实际的emoji?例如,如何将\ud83d\ude0c转换为实际的表情符号?

可以使用什么方法将unicode转换为实际的表情符号?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-29 05:50:26

如果这是您实际的JSON文件内容:

代码语言:javascript
复制
{"text":"The morning is going so fast Part 2 of #DiscoveryDay is in full swing \ud83d\ude01\n\nGreat Atmosphere in the room \n\n#BIGSocial\u2026 https:\/\/xxx\/P08qBoH6tv"}
{"text":"Double kill! #XiuKai lives! I died. \ud83d\ude0c https:\/\/xxx\/QCyk3r2JCb"}
{"text":"ALLTY \ud83d\udc94"}
{"text":"Shouldn\u2019t be normal for a 24 year old to be this tiered \ud83d\udca4"}
{"text":"@TheNames_BrieX Trust me! \ud83d\udcaf"}

然后是JSON Lines格式,其中每一行都是一个完整的JSON结构,而不是一个有效的JSON文件。

像这样一次读一行:

代码语言:javascript
复制
import json
with open('test.json') as f:
    for line in f:
        print(json.loads(line))

输出:

代码语言:javascript
复制
{'text': 'The morning is going so fast Part 2 of #DiscoveryDay is in full swing 😁\n\nGreat Atmosphere in the room \n\n#BIGSocial… https://xxx/P08qBoH6tv'}
{'text': 'Double kill! #XiuKai lives! I died. 😌 https://xxx/QCyk3r2JCb'}
{'text': 'ALLTY 💔'}
{'text': 'Shouldn’t be normal for a 24 year old to be this tiered 💤'}
{'text': '@TheNames_BrieX Trust me! 💯'}

请注意,我必须从原始的小网址更改,因为这不允许他们的内容。

如果如您所说,这只是JSON行的一个示例,并且它是一个完全格式的、正确的JSON文件,那么只需使用json.load读取它

代码语言:javascript
复制
import json
with open('test.json') as f:
    print(json.load(f))
票数 3
EN

Stack Overflow用户

发布于 2021-05-29 02:23:48

表情符号是unicode的一个子集。因此,没有必要或可能从unicode转换为emoji。只需将数组更改为

代码语言:javascript
复制
var data = ["\u{1F642}", "\u{1F603}"]

如果您的输入是十六进制数字,则可以使用

代码语言:javascript
复制
String.fromCodePoint(parseInt ("1F929", 16))

在HTML中,您还可以使用HTML十六进制实体

代码语言:javascript
复制
"&#x" + "1F618" + ";"
票数 -1
EN

Stack Overflow用户

发布于 2021-05-29 02:28:35

\ud83d\udcaf这样的字符串是由不正确的处理引起的,可以由data['text'].encode('utf-16', 'surrogatepass').decode('utf-16')修复。reference

如果你正在尝试按规则进行情感分析,上面的代码可以在你的终端中显示实际的表情图标,并且你可以为它构建一个标签映射,不需要转换原始文本。

如果你正在尝试基于统计或深度学习模型的情感分析,他们可以通过统计特征或监督学习来捕捉语义信息,这些表情符号可能会被自动识别为重要特征。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67743720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档