【问题标题】:How to tokenize word with hyphen in Spacy如何在 Spacy 中用连字符标记单词
【发布时间】:2020-06-21 15:52:33
【问题描述】:

我想使用 spacy 将 bs-it 标记为 ["bs","it"],因为我将它与 rasa 一起使用。我得到的输出是[“bs-it”]。有人可以帮我吗?

【问题讨论】:

    标签: tokenize spacy


    【解决方案1】:

    您可以向 spaCy 的分词器添加自定义规则。 spaCy 的分词器将连字符的单词视为单个token。为了改变这一点,您可以添加自定义标记化规则。在您的情况下,您想要标记 infix,即出现在两个单词之间的东西,这些通常是连字符或下划线。

    import re
    import spacy
    from spacy.tokenizer import Tokenizer
    
    infix_re = re.compile(r'[-]')
    
    def custom_tokenizer(nlp):
        return Tokenizer(nlp.vocab,infix_finditer=infix_re.finditer)
    
    nlp = spacy.load("en_core_web_sm")
    nlp.tokenizer = custom_tokenizer(nlp)
    doc = nlp("bs-it")
    print([t.text for t in doc])
    

    输出

    ['bs', '-', 'it']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-28
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      相关资源
      最近更新 更多