当前位置: 首页 > 知识库问答 >
问题:

防止将段落编号拆分为句子

贺跃
2023-03-14

我使用spaCy对使用段落编号的文本进行句子分割,例如:

text = '3. English law takes a dim view of stealing stuff from the shops. Some may argue that this is a pity.'

我试图强迫斯帕西的分句器不要拆分3 变成它自己的一句话。

目前,以下代码返回三个独立的句子:

nlp = spacy.load("en_core_web_sm")

text = """3. English law takes a dim view of stealing stuff from the shops. Some may argue that this is a pity."""
doc = nlp(text)
for sent in doc.sents:
    print("****", sent.text)

这将返回:

**** 3.
**** English law takes a dim view of stealing stuff from the shops.
**** Some may argue that this is a pity.

我一直试图通过在解析器之前将自定义规则传递到管道中来阻止这种情况的发生:

if token.text == r'\d\.':
    doc[token.i+1].is_sent_start = False

这似乎没有任何效果。以前有人遇到过这个问题吗?


共有1个答案

仲孙鸣
2023-03-14

像这样的东西?

text = ["""3. English law takes a dim view of stealing stuff from the shops. Some may argue that this is a pity. Are you upto something?""", 
        """4. It's hilarious and I think this can be more of a political moment. Don't you think so? Will Robots replace humans?"""]
for i in text:
    doc = nlp(i)
    span = doc[0:5]
    span.merge()
    for sent in doc.sents:
        print("****", sent.text)
    print("\n")

输出:

**** 3. English law takes a dim view of stealing stuff from the shops.
**** Some may argue that this is a pity.
**** Are you upto something?


**** 4. It's hilarious and I think this can be more of a political moment.
**** Don't you think so?
**** Will Robots replace humans?

参考:span.merge()

 类似资料:
  • 问题内容: 我已经编写了这段代码,用于拆分字符串并将其存储在字符串数组中:- 但是,我添加了[az],因为我想处理一些缩写问题。但是随后我的结果显示为: 此外,当埃弗里特(Everett)试图指导他们进行基础数学训练时,他们被证明是毫无反应的 我看到丢失了split函数中指定的模式。对我来说,可以省略句号,但是丢失单词的最后一个字母会打乱其含义。 有人可以帮助我吗?此外,有人可以帮助我解决缩写吗?

  • 问题内容: 我试图将整个段落输入到我的文字处理器中,然后先分成句子,然后再分成单词。 我尝试了以下代码,但它不起作用, 但是,这不起作用,并给我错误。那么,如何将段落标记为句子,然后再标记为单词? 一个示例段落: 这东西似乎使那只黑褐色的小狗感到吃惊和震惊,使他伤心。 他绝望地沉在孩子的脚下。当重击一声再加上幼稚的训诫时,他转过身来,用独特的方式握住了爪子。同时,他用耳朵和眼睛向孩子祈祷。 警告:

  • 我试图用记事本将n个短语的文本用正则表达式(即:在一定数量的短语之后,开始一个新的段落)拆分成段落。 我提出了以下正则表达式(在本例中,每3个短语- 到现在为止,一直都还不错。但是,现在如何匹配短语<代码>$1,将仅与大括号匹配。。 示例文本: 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指

  • 问题内容: 我的映射定义中包含以下字段: 当我索引用的有价票证该值被分成3个术语:,,。 我究竟做错了什么? 我创建了以下索引: 然后我索引以下文档: 然后,我将插件https://github.com/jprante/elasticsearch-index- termlist 与以下API结合使用: 这将给我以下响应: `` 问题答案: 通过运行以下命令验证映射是否已真正设置: 创建索引的命令似

  • 问题内容: 给定这两个表: 其中,TEST1具有两行,其值均为“ A”,而TEST2具有一行,其值均为“ B”。 当我运行此命令时: 我得到的输出: 似乎MINUS删除了重复项(因为TEST1中有两个“ A”行)。 如何获得MINUS查询以包含重复值(返回两个“ A”行)? 问题答案: Oracle在IN语句中支持多个列,因此您可以编写:

  • 问题内容: 我返回的值包含255个逗号分隔的值。有没有一种简单的方法可以将其拆分为不具有255 substr的列? 到 问题答案: 您可以使用: 我建议您在Excel(或其他电子表格)中生成255个数字的列,并使用电子表格生成SQL代码。