NLTK
Python上著名的⾃然语⾔处理库
自带语料库,词性分类库
自带分类,分词,等等功能
强⼤的社区支持
还有N多的简单版wrapper
nltk的安装十分便捷,只需要pip就可以。相对Python2版本来说,NLTK更支持Python3版本。
pip install -U nltk
# 测试是否安装成功
>>> python
>>> import nltk
安装下载语料库
import nltk
nltk.download()便会弹出下面的包管理界面,在管理器中可以下载语料,预训练的模型等。
1.2 NLTK功能介绍
NLTK功能模块一览表:
NLTK 自带语料库
>>>from nltk.corpus import brown
>>>brown.categories()
['adventure', 'belles_lettres', 'editorial',
'fiction', 'government', 'hobbies', 'humor',
'learned', 'lore', 'mystery', 'news', 'religion',
'reviews', 'romance', 'science_fiction']
>>>len(brown.sents())
57340
>>>len(brown.words())
1161192
文本处理流程
Tokenize:把长句子拆分成有“意义”一个个的小部件,如下例
>>> import nltk
>>> sentence = “hello, world"
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['hello', ‘,', 'world']
from nltk.tokenize import word_tokenize
tweet = 'RT @angelababy: love you baby! :D http://ah.love #168cm'
print(word_tokenize(tweet))
# ['RT', '@', 'angelababy', ':', 'love', 'you', 'baby', '!', ':',
# ’D', 'http', ':', '//ah.love', '#', '168cm']
中英文NLP区别
中文分词
import jieba
seg_list = jieba.cut("我来到北京清华⼤学", cut_all=True)
print "Full Mode:", "/ ".join(seg_list) # 全模式
seg_list = jieba.cut("我来到北京清华⼤学", cut_all=False)
print "Default Mode:", "/ ".join(seg_list) # 精确模式
seg_list = jieba.cut("他来到了⽹易杭研⼤厦") # 默认是精确模式
print ", ".join(seg_list)
seg_list = jieba.cut_for_search("⼩明硕⼠毕业于中国科学院计算所,后在⽇本京都⼤学深造")
# 搜索引擎模式
print ", ".join(seg_list)
分词之后的效果
1.3 nltk.text类介绍:
nltk.text.Text()类用于对文本进行初级的统计与分析,它接受一个词的列表作为参数。Text类提供了下列方法。