《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.3 语句分离器-阿里云开发者社区

开发者社区> 人工智能> 正文

《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.3 语句分离器

简介:

本节书摘来异步社区《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书中的第2章,第2.3节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 语句分离器

在某些NLP应用中,我们常常需要将一大段原生文本分割成一系列的语句,以便从中获取更多有意义的信息。直观地说,就是让语句成为一个可用的交流单元。当然,要想在计算机上实现这个任务可比它看上去要困难得多了。典型的语句分离器既可能是(.)[1]这样简单的字符串分割符,也有可能是某种预置分类器这样复杂的语句边界标识:

>>>inputstring = ' This is an example sent. The sentence splitter will split 
on sent markers. Ohh really !!' 
>>>from nltk.tokenize import sent_tokenize
>>>all_sent = sent_tokenize(inputstring)
>>>print all_sent
[' This is an example sent', 'The sentence splitter will split on markers.','Ohh really !!']

在这里,我们正试着将原生文本字符串分割到一个语句列表中。用的是预处理函数sent_tokenize(),这是一个内置在NLTK库中的语句边界检测算法。当然,如果我们在应用中需要自定义一个语句分离器的话,也可以用以下方式来训练出属于自己的语句分离器:

>>>import nltk.tokenize.punkt
>>>tokenizer = nltk.tokenize.punkt.PunktSentenceTokenizer()

该预置语句分离器可以支持17种语言。我们只需要为其指定相关的配方对象即可。根据我的经验,这里只要提供一个相关种类的文本语料就已经足够了,而且实际上也很少有机会需要我们自己来构建这些内容。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章