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;

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

  1. jieba入门记录——nltk中文语料处理

    jieba入门记录--nltk中文语料处理 环境:pycharm(Anaconda) 1.官网下载jieba:https://pypi.org/project/jieba/ 2.将下载好的压缩包解压到 ...

  2. NLTK(1.2)NLTK简介

    文章目录 NLTK库简介 NLTK库重要模块及功能 安装NLTK库 NLTK中的语料库 英文文本语料库 标注文本语料库 其他语言的语料库 文本语料库常见结构 NLTK 中定义的基本语料库函数 加载自己 ...

  3. nltk中文分句_利用NLTK进行分句分词

    1.输入一个段落,分成句子(Punkt句子分割器) import nltk import nltk.data def splitSentence(paragraph): tokenizer = nlt ...

  4. nltk中文分句_如何改进NLTK的分句技术?

    Kiss和Strunk(2006)Punkt算法的可怕之处在于它是无监督的.所以给一个新的文本,你应该重新训练这个模型并将它应用到你的文本中,例如>>> from nltk.toke ...

  5. nltk中文分句_如何使用nltk进行中文分词?

    匿名用户 1级 2016-04-18 回答 中文里没有分词的说法,只有英文.法语.德语等有分词的说法. 分词是动词的三种非限定形式之一,分为两种:现在分词和过去分词.现在分词一般有四种形式,基本形式为 ...

  6. 在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)

    在处理文本时,会遇到需要将文本以 句子 为单位进行切分(分句)的场景,而文本又可以分为 中文文本 和 英文文本 ,处理的方法会略有不同.本文会介绍 Python 是如何处理 分句 的. 分句的关键是找 ...

  7. python分句_Python循环中的分句,继续和其他子句

    python分句 Python中的循环 (Loops in Python) for loop for循环 while loop while循环 Let's learn how to use contr ...

  8. python nltk lemmatizer_Python聊天机器人–使用NLTK和Keras构建第一个聊天机器人

    什么是聊天机器人? 聊天机器人是一款智能软件,能够传达和执行类似于人类的动作.聊天机器人可以直接与客户互动,在社交网站上进行营销以及即时向客户发送消息等方面被广泛使用.根据聊天机器人的构建方式,它有两 ...

  9. python去停用词用nltk_【NLTK】安装和使用NLTK分词和去停词

    黄聪:Python+NLTK自然语言处理学习(一):环境搭建 http://www.cnblogs.com/huangcong/archive/2011/08/29/2157437.html 安装NL ...

最新文章

  1. 第一个MapReduce程序
  2. thinkphp视频截图_thinkphp开发的搞笑视频网站
  3. 宝塔服务器搞成虚拟主机,宝塔面板怎么配置虚拟主机
  4. 冒泡排序(数组)的一种实现
  5. VTK:可视化算法之MarchingCases
  6. tp3.2 复合查询
  7. 互联网晚报 | 3月1日 星期二 |​ 2022年苹果可能推出三款Apple Watch;“国家中小学智慧教育平台”投入试运行...
  8. (十九)ArcGIS JS 加载WMS服务(超图示例)
  9. php将汉字转换为gb2312编码,php实现utf-8和GB2312编码相互转换
  10. xshell密码保存位置_文件管理密码相册app下载-文件管理密码相册 v1.8 手机版
  11. 【转】Qt 资源图片删除后,错误 needed by `debug/qrc_image.cpp'. Stop. 的终极解决办法...
  12. linux下驱动程序数字签名,64位Windows操作系统为驱动程序添加测试数字签名
  13. 《爱的博弈》(让婚姻持久保鲜的人际关系圣经)主要内容及大纲 免费下载
  14. pymol作图-输出PNG格式图片
  15. 后渗透权限维持的方法
  16. 安装SSMS报错:0x80070643
  17. 软件测试工程师面试的时候该怎么样介绍自己?
  18. 华为的王炸黑科技鸿蒙系统,华为黑科技“cyberverse”发布,“鸿蒙系统”在其面前都不值一提...
  19. 解决:VS2010 无法打开“****”,因为此版本的应用程序不支持其项目类型
  20. springboot mybatis大学生校园宿舍管理系统源码含文档

热门文章

  1. Java面试:数据库,Java,框架,前端技术。应有尽有
  2. 一个程序员应该怎样去学习和掌握计算机英语呢
  3. 【使用 BERT 的问答系统】第 1 章 : 自然语言处理简介
  4. 计算机网络可靠性的重要指标,浅谈如何提高计算机网络的可靠性
  5. 性价比高的国产蓝牙耳机有哪些?盘点几款口碑比较好的国产蓝牙耳机
  6. Delphi FastReport4.5安装说明
  7. 推荐系统经典算法之——MF(矩阵分解)
  8. 618京东淘宝自动脚本
  9. 假期抱病上班 货车司机买彩票中2.98亿美元大奖
  10. 微信招聘小程序涵盖教程