【问题标题】:How to add new lemma rule to existing language for spacy如何将新的引理规则添加到现有语言以进行 spacy
【发布时间】:2019-10-10 16:45:11
【问题描述】:

我想为现有语言添加新的词形还原规则,即将所有以“z”结尾的名词词形化为以“”结尾。

对于单个单词,spaCy 提供了在加载后向现有语言添加标记器异常的机会

nlp.tokenizer.add_special_case("adidas", [{ORTH: 'adidas', LEMMA: 'Adidas', POS: 'NOUN', TAG: 'NNP'}])

上面设置了新词的引理、位置和标签,这没有改变。 默认的英文词条分析器返回“adida”作为词条。

现在,我正在尝试将名词“wordz”“词形化”,将“windowz”“词形化”等,而不将所有情况都设置为例外,而是添加一条新规则:以“z”结尾的名词有引理没有结尾“z”的名词。

我知道这将取决于标记器输出,因为 _lemma_rules.py 中存在的规则是 pos 依赖的。

有没有办法在不创建新语言的情况下添加规则作为现有语言的副本,只修改一个文件?

【问题讨论】:

    标签: spacy


    【解决方案1】:

    由于我的问题非常具体,我不得不与 spaCy 开发团队沟通并得到了有效的答案。

    实际上它不适用于英语中的假例子,但它适用于真实案例,同时使用希腊模型,因为希腊词形还原主要是基于规则的。

    建议的解决方案是使用 Lookups Api,该 API 仅在 2.2 及更高版本中可用。

    正如他们提到的,

    nlp.vocab.lookups.get_table("lemma_rules") 
    

    返回一个您可以写入的类似字典的表。

    Full answer in spaCy GitHub

    【讨论】:

      猜你喜欢
      • 2020-11-10
      • 2011-02-18
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多