【问题标题】:spans of spacy sentence tokenizerspacy 句子标记器的跨度
【发布时间】:2019-12-11 19:41:58
【问题描述】:

我正在使用 spacy 来标记文档中的句子。标记化后,我需要能够重建原始文档。如何获取每个句子的跨度?

 s='this is sentence1.\nthis is sentence2.'
 nlp = spacy.load('en_core_web_sm')
 doc = nlp(s)
 for sent in doc.sents:
     print(sent.text.span)

 [ 0,19]
 [19,37]

我想获取找到的每个句子的跨度。 3 个句子的预期输出为:

有没有办法获得每次发送的跨度?

【问题讨论】:

  • 您到底想得到什么?请提供一些示例文本和预期输出。
  • 我希望能够获得类似于正则表达式如何返回找到的字符串和找到的字符串的跨度的跨度。我用预期的输出更新了问题。
  • 使用print( [sent.start_char, sent.end_char] ),它会产生[0, 19] [19, 37]
  • 太棒了——这就是我想要的。谢谢

标签: python spacy


【解决方案1】:

由于sentspacy.tokens.span.Span 类型,您可以访问对象的start_char and end_char attributes

print( [sent.start_char, sent.end_char] )

Python 测试:

import spacy
nlp = spacy.load("en_core_web_sm")
s='this is sentence1.\nthis is sentence2.'
doc = nlp(s)

for sent in doc.sents:
    print( [sent.start_char, sent.end_char] )

输出:[0, 19] [19, 37]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-14
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-22
    相关资源
    最近更新 更多