【问题标题】:Fastest Way to recognise emoji in the unicode string with Python使用 Python 识别 unicode 字符串中表情符号的最快方法
【发布时间】:2019-01-24 07:02:23
【问题描述】:

大家好,

如果给定的字符是表情符号,有没有最快的方法来识别?

到目前为止,我找到了以下解决方案:

import emoji
character in emoji.UNICODE_EMOJI

但这似乎不是最好的,因为要检查给定的字符是否在字典中,因为您需要计算哈希函数并进行查找。我提到的,也许可以检查一下,表情符号代码点是否在某个 Unicode 代码点范围内,这些代码点是表情符号。有什么想法,如何实现?

提前谢谢你!

【问题讨论】:

  • 如果表情符号已经被搜索过,您可以使用caching python library 来缓存结果。当有很多重复项时,这将加快您的代码速度。
  • 谢谢你。好主意,但这实际上是一个带有 uniq 表情符号的字典。所以,没有重复)
  • 您是否意识到dictset 遏制测试非常快?
  • @MisterMiyagi 是的,dict 似乎比 set 快一点,但是,谢谢你让我注意到它!=)跨度>

标签: python unicode


【解决方案1】:

如果您要在列表中更快地查找并且您没有任何重复项,则可以尝试将 list() 替换为 set()

类似问题:https://stackoverflow.com/a/5993659/7570485

更新:

据我所知,没有比dict() 更快的查找速度了。 dict 查找的平均时间复杂度为O(1)。您可以在 sys 模块中尝试 intern() 以获得小的性能提升。

来源:https://stackoverflow.com/a/40694623/7570485

【讨论】:

  • thx u=)) emoji.UNICODE_EMOJI 已经是一个字典,这就是为什么已经有了这个哈希表的魔法......但是你的权利,如果它是一个列表,它会有所帮助! =)
  • 我假设你有一个列表,正如你提到的那样,它检查了 list 中的 char。请将其更改为 dict 以避免进一步混淆。
  • 不客气。请将问题标记为已回答:)
  • 完成!还有一个问题,你知道吗,intern() 在 python 2.7 中是否也有 unicode 字符串的可能性?
  • 嘿)你说得对。可能这将是我的下一步,升级 python=) 因为最后一个 python 版本 3.7 似乎比 python 2.7 更快!
猜你喜欢
  • 2020-10-12
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 2021-11-07
  • 1970-01-01
  • 2018-07-15
相关资源
最近更新 更多