首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空间中的自定义分割和覆盖分割规则

空间中的自定义分割和覆盖分割规则
EN

Stack Overflow用户
提问于 2022-04-13 07:52:56
回答 1查看 103关注 0票数 2

我想将一个大语料库(.txt)分割成句子,其中包含一个自定义规则,即使用Spacy3.1的{SENT}。

我的主要问题是,我想“禁用”使用spacy的预处理空间模型(即en_core_web_lg )中的分段,但保留所有其他组件(标记化、语法解析器、ner等)。我一直在使用大型模型(我看到,根据所使用的模型,分段可能会有不同的行为)。

是否有一种方法可以重写现有规则,并且在维护管道的其余部分时只使用{}作为分隔符?如果我在解析器:nlp.add_pipe(set_custom_segmentation, before='parser')之前将自定义分段添加到管道中,解析器会根据模型提供的分隔符重新编排句子吗?

我已经在没有运气的情况下尝试了以下几种方法:

代码语言:javascript
复制
@Language.component("segm")
def set_custom_segmentation(doc):
    for token in doc[:-1]:
        if token.text == '{SENT}':
            doc[token.i+1].is_sent_start = False
    return doc

nlp.add_pipe('segm', before='parser')

到目前为止,我已经尝试过但没有奏效的解决方案:

re.split("{SENT}")

  • The

  • 提供了一个“句子”列表,并给出了split("{SENT}")split("{SENT}")的答案
EN

回答 1

Stack Overflow用户

发布于 2022-04-13 08:04:15

如果不希望解析器添加额外的句子边界,还必须为其余的标记设置token.is_sent_start = False

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71853821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档