使用NLTK对英文文章分句,避免缩略词标点符号干扰

在处理英文文章分句时,使用NLTK可能会因缩略词如'i.e.'的标点导致错误切分。为解决此问题,可以利用nltk.tokenize.punkt并自定义缩写词列表,确保缩写词不包含末尾的'.',以正确地进行句子划分。
摘要由CSDN通过智能技术生成

对于英文语料,我们想要获得句子时,可以通过正则或者NLTK工具切分。例如,NLTK:

from nltk.tokenize import sent_tokenize

document=''
sentences=sent_tokenize(document)

NLTK会根据“.?!”等符号切分。但是当句子中含有缩写词时,可能会产生错误的切分:

sent_tokenize('fight among communists and anarchists (i.e. at a series of events named May Days).')

输出:
['fight among communists and anarchists (i.e.',
 'at a series of events named May Days).']

句子在i.e.后边被切分了。为了避免这种情况,我们需要使用nltk.tokenize.punkt并且自定义缩写词表:

from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
punkt_param = PunktParameters()
abbreviation = ['i.e']
punkt_param.abbrev_types = set(abbreviation)
tokenizer = PunktSentenceTokenizer(punkt_param)
tokenizer.tokenize('fight am
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值