Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将表情符号unicode转换为表情符号?_Python_Json_Unicode_Emoji_Sentiment Analysis - Fatal编程技术网

Python 如何将表情符号unicode转换为表情符号?

Python 如何将表情符号unicode转换为表情符号?,python,json,unicode,emoji,sentiment-analysis,Python,Json,Unicode,Emoji,Sentiment Analysis,我有一个.json文件,其中包含超过70000条tweet,每条tweet都包含emojis。但是,我不确定如何将Unicode转换为实际的表情符号,以便用于情绪分析 这是我的.json文件中5条推文的示例: {"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#B

我有一个
.json
文件,其中包含超过70000条tweet,每条tweet都包含emojis。但是,我不确定如何将Unicode转换为实际的表情符号,以便用于情绪分析

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

{"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转换为实际的表情符号?例如,如何将\ud83d\ude0c转换为实际的表情符号


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

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

var data = ["\u{1F642}", "\u{1F603}"]
如果输入的是十六进制数,则可以使用

String.fromCodePoint(parseInt ("1F929", 16))
在HTML中,还可以使用HTML十六进制实体

"&#x" + "1F618" + ";"

\ud83d\udcaf
这样的字符串是由不正确的处理引起的,可以由
数据['text']修复。编码('utf-16','subrogatePass')。解码('utf-16')

如果您尝试按规则进行情绪分析,上面的代码可以在您的终端中显示实际的表情图标,并且您可以为其构建标签映射,无需转换原始文本


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

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

{“text”:“早上过得太快了#发现日第二部分正如火如荼\ud83d\ude01\n\n房间里气氛热烈\n\n#BIGSocial\u2026 https:\/\/xxx\/P08qBoH6tv”}
{“文本”:“双重杀戮!#秀凯活着!我死了。\ud83d\ude0c https:\/\/xxx\/QCyk3r2JCb”}
{“text”:“ALLTY\ud83d\udc94”}
{“text”:“对于一个24岁的人来说,这样的分层\ud83d\udca4不应该是正常的”}
{“text”:“@TheNames_BrieX信任我!\ud83d\udcaf”}
然后就是格式,其中每一行都是一个完整的JSON结构,而不是一个有效的JSON文件

每次读一行,就像这样:

导入json
将open('test.json')作为f:
对于f中的行:
打印(json.loads(行))
输出:


{'text':“早上过得太快了#发现之日第二部分正如火如荼地进行着我认为你的问题主要是因为你不清楚什么是“实际的表情符号”是。一个合适的JSON解析器将
\u
转义码转换为合适的Unicode字符,这些字符是所有意图和目的的表情符号,因此除了正常的JSON处理之外,您不需要额外的步骤。您使用的是,而不仅仅是将其视为纯文本,对吗?您显示的代码段不是JSON,而是。您不能t使用
json.load()
一次性解析所有内容,就像处理常规文件一样。对于使用Python处理json行,您可以将文件作为文本逐行读取,并将每一行传递给
json.load()
。正如Joachim Sauer所解释的,这将正确处理
\u
转义。@tripleee我认为您提出的重复候选项是一个比这里更复杂的问题。@lenz当然有可能,但它也方便地适用于所有其他Unicode JSON,并且OP的示例确实包含代理项。@tripleee Th这是因为JSON总是使用代理(当然,除非使用文字字符)。如果您正确处理JSON(使用JSON库),您就不必担心代理是什么。这似乎是Javascript(?)但OP显然是在询问Python。
\ud83d\udcaf
根本不是由错误处理引起的。这就是JSON中非ASCII字符的编码方式。正确编码的'\ud83d\udcaf'应该是'\U0001f4af'
“\U0001f4af'
是如何在Python字符串文本中转义字符。
\ud83d\udcaf
是JSON。请尝试以下操作:
JSON.dumps('\U0001f4af')
。如果在REPL中尝试,将看到双反斜杠,但如果将其写入文件,
”\ud83d\udcaf”
。您好。感谢您的回复,也很抱歉回复太晚-感谢您为我提供了一个解决方案。现在,通过在推特中显示每个表情符号的输出,需要如何准备数据以进行情绪分析。例如,
{'text':
需要删除吗?@AnandP2812访问文本值取决于上面哪个解决方案适合您第一个解决方案适合您me@AnandP2812将行分配给变量,例如
data=json.load(行)
,然后
print(数据['text'])
谢谢,这很有效。但是,只有一件事:当执行该代码时,它只返回一条tweet,而不是所有tweet。对如何输出所有tweet有什么建议吗?很抱歉问了太多问题。