gpt4 book ai didi

python - 如何避免 NLTK 的句子分词器在缩写时 split ?

转载 作者:太空狗 更新时间:2023-10-29 18:26:20 27 4
gpt4 key购买 nike

我目前正在使用 NLTK 进行语言处理,但是我遇到了句子分词的问题。

问题来了:假设我有一句话:“图 2 显示了一张美国 map 。”当我使用 punkt tokenizer 时,我的代码如下所示:

from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
punkt_param = PunktParameters()
abbreviation = ['U.S.A', 'fig']
punkt_param.abbrev_types = set(abbreviation)
tokenizer = PunktSentenceTokenizer(punkt_param)
tokenizer.tokenize('Fig. 2 shows a U.S.A. map.')

它返回这个:

['Fig. 2 shows a U.S.A.', 'map.']

分词器无法检测到缩写“U.S.A.”,但它可以检测“fig”。现在,当我使用 NLTK 提供的默认分词器时:

import nltk
nltk.tokenize.sent_tokenize('Fig. 2 shows a U.S.A. map.')

这次我得到:

['Fig.', '2 shows a U.S.A. map.']

它识别更常见的“美国”。但没看到“无花果”!

如何结合这两种方法?我想使用默认缩写选项以及添加我自己的缩写。

最佳答案

我认为缩写列表中的 us.a 小写 对您来说效果很好试试这个,

from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
punkt_param = PunktParameters()
abbreviation = ['u.s.a', 'fig']
punkt_param.abbrev_types = set(abbreviation)
tokenizer = PunktSentenceTokenizer(punkt_param)
tokenizer.tokenize('Fig. 2 shows a U.S.A. map.')

它返回给我:

['Fig. 2 shows a U.S.A. map.']

关于python - 如何避免 NLTK 的句子分词器在缩写时 split ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com