Spacy自定义句子拆分

时间:2019-02-05 07:55:58

标签: python-3.x spacy

我使用Spacy进行自定义句子拆分,并且需要对custom_delimeter / word进行参数化以吐出句子,但是我没有找到如何通过的方法,因为这里有一个函数,

# Manual or Custom Based
def mycustom_boundary(docx):
    for token in docx[:-1]:
        if token.text == '...':
            docx[token.i+1].is_sent_start = True
    return docx

# Adding the rule before parsing
nlp.add_pipe(mycustom_boundary,before='parser')

请让我知道如何将基于自定义的拆分器作为参数发送为功能列表?

1 个答案:

答案 0 :(得分:0)

您可以将您的组件变成可以使用分隔符列表初始化的类吗?例如:

class MyCustomBoundary(object):
    def __init__(self, delimiters):
        self.delimiters = delimiters

    def __call__(self, doc):  # this is applied when you call it on a Doc
        for token in doc[:-1]:
            if token.text in self.delimiters:
                doc[token.i+1].is_sent_start = True
        return doc

然后可以将其添加到您的管道中,如下所示:

mycustom_boundary = MyCustomBoundary(delimiters=['...', '---'])
nlp.add_pipe(mycustom_boundary, before='parser')