如何在scala中识别表情符号?

vmpqdwk3  于 2021-05-17  发布在  Spark
关注(0)|答案(2)|浏览(846)

我正在处理来自twitterapi的tweets,很多tweets都有emojis。我试图追踪最常用的表情符号,但我在识别它们时遇到了困难。
我正在使用:https://github.com/iamcal/emoji-data 识别表情符号。
我不知道如何判断字符串是否包含表情符号。我试过在emoji数据“unified”字段中使用regex,我试过只检查字符串是否包含该字段。我真的不知道怎么检查表情。。任何帮助都将不胜感激。

val pattern = new Regex("(${a.unified})")
(pattern findAllIn text).mkString(",")

这就是我尝试使用regex的地方。这没有任何表情。我也尝试过在emoji数据的统一字段前添加一个\u,但是没有帮助。

5cnsuln7

5cnsuln71#

可以使用以下正则表达式查找表情符号(以及unicode语言平面之外的其他字符): [^\u0000-\uFFFF] 例如,我们使用以下代码从字符串中过滤出表情符号: "some string".replaceAll("[^\u0000-\uFFFF]", ""); 希望有帮助。

azpvetkf

azpvetkf2#

您的代码已接近工作状态。从中提取表情符号 text 尝试:

"""\p{block=Emoticons}""".r.findAllIn(text).mkString

例如:

scala> val text = "Use regex and now you have two problems ? ?"
scala> """\p{block=Emoticons}""".r.findAllIn(text).mkString
res0: String = ??

相关问题