我的推文上有表情符号,而不是像U1F602这样的表情符号代码。我在StackOverflow上找到了其他问题和答案,并没有帮助删除这个表情符号。我在Scala中的数据框有以下字段:
这是一个示例元组:
id tweets labels
2017-En-21193 Big boss is waiting #panic fear
预期结果:
id tweets labels
2017-En-21193 Big boss is waiting #panic fear
答案 0 :(得分:1)
这可以在Scala中使用正则表达式完成。一种方法是找到表情符号并删除它。另一种方法是除了字母数字和标点符号之外,从推文中删除所有不必要的字符。
单向(只删除你想要的所有表情符号)
import org.apache.spark.sql.functions.not
val newDf = oldDf.withColumn("tweets", regexp_replace(oldDf("tweets"), """[]""", ""))
另一种方式(删除除字母数字和标点符号以外的所有内容)
import org.apache.spark.sql.functions.not
val newDf = oldDf.withColumn("tweets", regexp_replace(oldDf("tweets"), """[^ 'a-zA-Z0-9,.?!]""", ""))
答案 1 :(得分:1)
您可以使用带有块的正则表达式从字符串中过滤表情符号
例如:
"""\P{block=Emoticons}""".r.findAllIn("Big boss is waiting #panic ").mkString.trim