0

您如何将自定义标点符号(例如星号)添加到 Tokenizer 中的中缀列表中,并将其识别nlp.explain为标点符号?我希望能够从集合中缀列表中将当前未被识别为标点符号的字符添加到标点符号列表中,以便匹配器在匹配时可以使用它们{'IS_PUNCT': True}

此处提供了对类似问题的答案 如何将自定义符号添加到 spaCy 的标点符号功能?

唯一的问题是我无法将新识别的标点符号与模型打包。附注:分词器已经识别出带有所需标点符号的中缀,所以剩下的就是将其传播到匹配器。

4

1 回答 1

2

词位属性IS_PUNCT完全独立于任何分词器设置。在打包的管道中,您可以创建自定义语言 ( https://spacy.io/usage/linguistic-features#language-subclass ) 或在回调中运行自定义[nlp.before_creation]( https://spacy.io/usage /training#custom-code-nlp-callbacks)。

请注意,修改EnglishDefaults会影响在同一脚本中加载的所有英语管道,因此自定义语言选项更简洁(特别是如果您分发此模型以供一般用途),但实现的工作量也会稍多一些。

另一方面,如果您只是使用 Matcher,则使用REGEX模式来匹配您想要的标记可能更容易,而不是自定义IS_PUNCT.

于 2021-11-04T16:25:42.520 回答