【问题标题】:Sentence tokenizer retrieve spans句子标记器检索跨度
【发布时间】:2019-07-10 23:51:18
【问题描述】:

我想检索基本 ntlk 句子标记器的跨度(我知道使用 pst 标记器是可行的,但基本标记器做得更好)。是否可以在sent_tokenize 上运行span_tokenize 方法?

from nltk import sent_tokenize
sentences = nltk.sent_tokenize(text)

【问题讨论】:

  • 你想要单词跨度还是句子跨度?

标签: python-3.x nltk tokenize


【解决方案1】:

对于句子跨度,您可以使用 span_tokenize() from nltk.tokenize.punkt.PunktSentenceTokenizer: https://www.nltk.org/api/nltk.tokenize.html#nltk.tokenize.punkt.PunktSentenceTokenizer

以下代码

    from nltk.tokenize.punkt import PunktSentenceTokenizer as pt
    full_text = "This is your text. You will split it into sentences. And get their spans."
    spans = list(pt().span_tokenize(full_text))
    print(spans)

会给你输出:

[(0, 18), (19, 52), (53, 73)]

【讨论】:

    【解决方案2】:

    假设您想要单词跨度。

    from nltk.tokenize import WhitespaceTokenizer as wt
    from nltk import sent_tokenize
    sentences = sent_tokenize("This is a sentence. This is another sentence. The sky is blue.")
    print(list(wt().span_tokenize_sents(sentences)))
    

    输出:

    [[(0, 4), (5, 7), (8, 9), (10, 19)], [(0, 4), (5, 7), (8, 15), (16, 25)], [(0, 3), (4, 7), (8, 10), (11, 16)]]
    

    https://www.nltk.org/api/nltk.tokenize.html。搜索 span_tokenize_sents。

    【讨论】:

    • 我想要的句子跨度,对于误导性的帖子感到抱歉
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2019-04-03
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    相关资源
    最近更新 更多