【发布时间】:2018-02-23 15:41:56
【问题描述】:
我的语料库中有一些我需要忽略的短语(希望避免过度拟合)。它们是相当简单的正则表达式公式,我也可以用 Spacy 的基于规则的匹配 like here 的格式编写。
我希望在我的模型中将匹配项标记为停用词,然后再转到 NER 和 TextCat 管道。我知道如何编写匹配器,但我不确定如何将它合并到我的模型中?我只是将其添加为管道吗?
谢谢!
【问题讨论】:
我的语料库中有一些我需要忽略的短语(希望避免过度拟合)。它们是相当简单的正则表达式公式,我也可以用 Spacy 的基于规则的匹配 like here 的格式编写。
我希望在我的模型中将匹配项标记为停用词,然后再转到 NER 和 TextCat 管道。我知道如何编写匹配器,但我不确定如何将它合并到我的模型中?我只是将其添加为管道吗?
谢谢!
【问题讨论】:
聪明的想法。 在管道中添加规则匹配器应该相当容易。自定义组件只是将 doc 对象作为参数并返回可能已修改的 doc 对象的函数。所以基本上,你会做类似的事情: def my_component(文档): # 匹配器工作在这里 返回文档
但请记住,Token 的 is_stop 属性是不可写的,这意味着您将无法更改它。您当然可以设置自定义令牌扩展,但这绝不会考虑到 NER 标签预测。
解决此问题的更简单方法是在创建 doc 对象之前忽略这些词。如果你说表达式只是正则表达式,那么 Matcher 对你没有任何好处。
希望对你有帮助:)
【讨论】: