我正在向spaCy添加一个自定义组件,但它从未被调用:
@Language.component("custom_sentence_boundaries")
def custom_sentence_boundaries(doc):
print(".")
for token in doc[:-1]:
if token.text == "\n":
doc[token.i + 1].is_sent_start = True
return doc
nlp = spacy.load("de_core_web_sm")
nlp.add_pipe("custom_sentence_boundaries", after="parser")
nlp.analyze_pipes(pretty=True)
doc = nlp(text)
sentences = [sent.text for sent in doc.sents]
我在sentences
中得到一个结果,分析器确实列出了我的组件,但我的自定义组件接缝没有效果,我从来没有看到打印的点出现。
有什么想法吗?
1条答案
按热度按时间okxuctiv1#
在您粘贴的代码中:
您正在执行:
然而,它应该是:
我试着复制你的代码,我得到的结果是
输出
(请参阅底部
...$...
被打印,custom_sentence_boundaries
被打印在parser
之后,因为我们在关键字参数中声明了after="parser"
)