基于NLTK的Python自然语言处理-字符串的操作(切分)

Posted 自然语言处理爱好者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于NLTK的Python自然语言处理-字符串的操作(切分)相关的知识,希望对你有一定的参考价值。

基于NLTK的Python自然语言处理-字符串的操作(切分)

预计阅读需14分钟

        上篇文档已经介绍了做自然语言处理中我们使用比较的python语言,以及使用的python集成开发环境(IDE,Integrated Development Environment )。从本篇文章将陆续介绍如何使用python进行自然语言处理。这里将参考《精通Python自然语言处理》、《Python自然语言处理》以及NLTK的官方文档http://www.nltk.org/。订阅号回复“python自然语言处理书籍”,即可获取《Python自然语言处理》电子版的百度云盘链接。不过还是建议购买或借阅纸质书籍。

基于NLTK的Python自然语言处理-字符串的操作(切分)

1
NLTK环境安装

    由于国内网速过慢,作者已经下载完毕,读者可以点击原文链接进行下载。

需要注意的是将下载后的文档放在程序能够检测的位置

基于NLTK的Python自然语言处理-字符串的操作(切分)

通过:from nltk.book import * 可以检测nltk是否下载成功

基于NLTK的Python自然语言处理-字符串的操作(切分)

2
将文本切分为语句

这里主要使用的是:sent_tokenize以及tokenizer.tokenize

from nltk.book import *  #导包

#自定义一个字符串

text=" Welcome readers. I hope you find it interesting. Please do reply"

#导入nltk中tokenize下的sent_tokenize,以实现分句

from nltk.tokenize import sent_tokenize

result=sent_tokenize(text)

print(result)

结果:

[' Welcome readers.', 'I hope you find it interesting.', 'Please do reply']

应对大批量句子方法:

import nltk

#获取tokenizer对象

tokenizer=nltk.data.load('tokenizers/punkt/english.pickle')

#定义字符串

text="Hello everyone. Hope all are fine and doing well.Hope you find the book intersting"

result=tokenizer.tokenize(text)

print(result)

结果

['Hello everyone.', 'Hope all are fine and doing well.Hope you find the book intersting']

3
句子切分为单词

这里使用的是word_tokenize()函数,也可使用其下的TreebankWordTokenizer进行切分。

import nltk

#对需要切分的字符串进行切分

text=nltk.word_tokenize("PierreVinken, 59 years old, will join as a nonexecutive director on Nov. 29.")

print(text)

结果

['PierreVinken', ',', '59', 'years', 'old', ',', 'will', 'join', 'as', 'a', 'nonexecutive', 'director', 'on', 'Nov.', '29', '.']


使用TreebankWordTokenizer进行切分:

from nltk import word_tokenize

import nltk

#用户输入

r=input("请输入一行英文字符串:")

print("这个字符串的长度为:",len(word_tokenize(r)),"words","分词结果为:",word_tokenize(r))


结果

请输入一行英文字符串:Today is a pleasant day

这个字符串的长度为: 5 words 分词结果为: ['Today', 'is', 'a', 'pleasant', 'day']


如果出现缩略词的话使用TreebankWordTokenizer(继承于Tokenizer):

import nltk

text=nltk.word_tokenize(" Don't hesitate to ask qustions")

print(text)

结果

['Do', "n't", 'hesitate', 'to', 'ask', 'qustions']


但是效果并不是很好Don分开了,这里使用WordPunctTokenizer进行改进:

from nltk.tokenize import WordPunctTokenizer

tokenizer=WordPunctTokenizer()

print(tokenizer.tokenize(" Don't hesitate to ask qustions"))


结果

['Don', "'", 't', 'hesitate', 'to', 'ask', 'qustions']


    还有的就是使用正则表达式进行切分,但是正则表达式的内容比较多,将在下篇文章进行介绍。

每日雅思

gist                    n.主旨,要点,依据

semiofficial        adj.半官方的

orientation         n.定位;熟悉情况;定向;信仰;倾向

matriculate         n.被录取者 v.准许...入学

canter                 n.慢跑(多用于马)

基于NLTK的Python自然语言处理-字符串的操作(切分)
这是一个有温度的公众号
赞一个
踩一脚
PK

以上是关于基于NLTK的Python自然语言处理-字符串的操作(切分)的主要内容,如果未能解决你的问题,请参考以下文章

在PyCharm中安装nltk,以及nltk data的下载。

Python3NLTK-自然语言处理

python+NLTK 自然语言学习处理五:词典资源

python+NLTK 自然语言学习处理二:文本

下载|382页 PYTHON自然语言处理中文翻译 NLTK 中文版

python+NLTK 自然语言学习处理四:获取文本语料和词汇资源