nltk中文分句_learn_nltk/2. NLTK笔记-分句与分词.md at master · ourren/learn_nltk · GitHub...

这篇博客介绍了如何使用NLTK进行分句和分词操作。在Python中,通常利用split函数处理中文分句,但NLTK的sent_tokenize库能提供更好的效果。对于分词,文章建议使用jieba进行中文分词,而英文分词则可直接借助NLTK的nltk.tokenize模块。同时,还提到了处理特殊字符的一些常见Python函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NLTK笔记:分句与分词

NLTK在数据抓取完成后,你拿到的数据往往是一篇文章或者一大段文字,在进行其他处理之前,你需要先对文章进行切割或者处理(去除多余字符、特殊符号,分句和分词),分句主要是可以把有些不需要的句子给去掉,比如长度小于10的。

分句

一般情况下我们可以通过python的split等函数快速完成切分任务,主要的分割特征如下:

中文主要有(。?!)这几个句子结尾标志;

英文也差不多(. ? !);

可以使用split函数进行分割,可以得到新的列表,例如下面的函数;

def sentence_split(str_centence):

list_ret = list()

for s_str in str_centence.split('.'):

if '?' in s_str:

list_ret.extend(s_str.split('?'))

elif '!' in s_str:

list_ret.extend(s_str.split('!'))

else:

list_ret.append(s_str)

return list_ret

另外nltk中也有提供sent_tokenize库来实现分句,具体使用情况如下函数所示:

from nltk.tokenize import sent_tokenize

def sentence_token_nltk(str):

sent_tokenize_list = sent_tokenize(str)

return sent_tokenize_list

其实从输出结果来看,nltk提供的分句功能明显优于我们自定义函数。

分词

分词在NLP处理中运用得最多,但是目前针对英文分词基本上已经成熟,而针对中文的分词技术还在不断发展,对于pythoner而言,主要可以采取如下的分词方法对句子或者段落进行分词:

中文:采用jieba进行分词,然后再可以通过NLTK进行词频统计分析,整体而言jieba对中文分词还是可以接受;

英文:可以直接使用NLTK中nltk.tokenize模块进行分词;

中文的分词实例可以参照这篇文章中文分词与词频统计实例,英文的分词示例如下:

import nltk

def main():

sentence = """At eight o'clock on Thursday morning Arthur didn't feel very good."""

tokens = nltk.word_tokenize(sentence)

print tokens

if __name__ == '__main__':

main()

特殊字符

在处理分词或者分句中经常会除去一些特殊符号或者特殊单词,一般可能会用到的python函数:

startswith

endswith

contains

replace

split

len

代码地址

本系列文章的代码托管在github上面learn_nltk;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值