gpt4 book ai didi

python - 是否可以使用 spaCy 解析表情符号?

转载 作者:行者123 更新时间:2023-12-03 18:53:44 25 4
gpt4 key购买 nike

是否可以标记 :) 之类的表情符号? , :( , ;~(正确使用 spaCy Python 库?例如如果我运行以下代码:

import spacy

nlp = spacy.load('en')
doc = nlp("Hello bright world :)")

然后使用 displaCy 可视化文档:

enter image description here

它错误地解析 world :)作为一个 token 。如何修改 spaCy 使其识别这些附加符号?谢谢。

编辑:找到以下内容: https://github.com/ines/spacymoji但我认为它只支持像✨这样的Unicode表情符号,而不支持像 :)这样的ASCII表情符号。 ?

最佳答案

是的,spaCy 实际上包括一个相当全面的 list of text-based emoticons作为其标记器异常的一部分。因此,使用上面的示例并打印各个标记,表情符号被正确标记:

doc = nlp("Hello bright world :)")
print([token.text for token in doc])
# ['Hello', 'bright', 'world', ':)']

我认为这里发生的情况是,您实际上遇到了一个有趣的(可能是不理想的)边缘案例 displacy默认值。为避免标点符号的依赖弧过长, collapse_punct setting默认为 True .这意味着当呈现可视化时,标点符号会合并到前面的标记中。通过检查标记的 is_punct 来识别标点符号。属性返回 True – 这也恰好是“:)”的情况。

在您的示例中,您可以通过设置 collapse_punct 来解决此问题。至 False在传递给 displacy.serve 的选项中:
displacy.serve(doc, style='dep', options={'collapse_punct': False})

(在合并标点符号时,displaCy 可视化器可能应该包含表情符号的异常(exception)。目前这很困难,因为 spaCy 没有 is_emojiis_symbol 标志。但是,它可能是 future 的一个很好的补充——你可以投票给它 on this thread。)

关于python - 是否可以使用 spaCy 解析表情符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48980120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com