din*_*aro 4 python nlp emoticons emoji sentiment-analysis
我在 Python Pandas 中有 DataFrame,如下所示:
sentence
------------
I like it
+1
One :-) :)
hah
Run Code Online (Sandbox Code Playgroud)
我需要仅选择包含表情符号或表情符号的行,因此我需要如下所示的内容:
sentence
------------
+1
One :-) :)
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Python中做到这一点?
您可以使用正则表达式范围选择 unicode 表情符号:
df2 = df[df['sentence'].str.contains(r'[\u263a-\U0001f645]')]
Run Code Online (Sandbox Code Playgroud)
输出:
sentence
0
2 +1
Run Code Online (Sandbox Code Playgroud)
然而,对于 ASCII“表情符号”来说,这更加模糊,因为没有标准定义,而且可能有无穷无尽的组合。如果将其限制为包含眼睛 ';:' 和嘴巴 ')(' 的笑脸,您可以使用:
df[df['sentence'].str.contains(r'[\u263a-\U0001f645]|(?:[:;]\S?[\)\(])')]
Run Code Online (Sandbox Code Playgroud)
输出:
sentence
0
2 +1
3 One :-) :)
Run Code Online (Sandbox Code Playgroud)
但是您会错过大量潜在的 ASCII 可能性::O、:P、8D等。