NLTK入门
Posted bianjing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLTK入门相关的知识,希望对你有一定的参考价值。
首先要了解python的基本语法,
其中列表的处理,字符串的格式化,以及词汇的比较运算(包括判断某一个词语开头是否大小写等)
专有名词:
1. 分词:用于产生词汇和标点符号的链表
安装完NlLTK后,
import nltk
nltk.download()
计算text1中每个词的平均出现次数公式:
avg = len(text1)/len(set(text1))
计算text1中某个词的出现频率
p = text1.count(‘a‘)/len(text1)
import nltk from nltk.book import * #所有的文本数据导入,(text1 ~text9) nltk.download() #下载所需的训练文本数据 text1.concordance(‘monstrous‘) #查找text1文本中存在monstrous的 text1.count(‘word‘) #计算word在text1中出现的次数
text1.silimar(‘monstrous‘) text1.common_contexts([‘monstrous‘, ‘very‘]) #查看使用两个或者两个以上词语的上下文 text1.dispersion_plot([‘word1‘, ‘word2‘, ‘word3‘, ...]) #画出这些词语分布的离散图 text1.generate() #生成text1中的随机文本 fdist1 = FreqDist(text1) #可以用来寻找text1中最常见的词 fdist1.key()[:50] fdist = FreqDist([len(w) for x in text1]) #FreqDist不仅可以显示词,还可以显示没个词对应的长度,【1, 3,5,6,11,5,9,......】 fdist.keys() # 查询计数链表中的每个数字出现的次数,以频率递减顺序的样本链表 fdist.items() #[(3,50223), (9,988), ...] 词长度为3的有50223个 fdist[3] #查看词长为3的有多少个, fdist.fred(3) #计算词长为3的词频。
fdist.fred[‘a‘] #计算a的出现频率
fdist.hapaxes() #查看只出现一次的词
fdist.inc(sample) #增加样本
fdist[‘a‘] #计算给定样本出现的次数
fdist.N{} #样本总数
fdist.tabulate() #绘制频率分布表
fdist.plot() #绘制频率分布图
fdist.plot(cumulative=True) #绘制累积频率分布图
fdist1 < fdist2 #测试数据fdist1是否小于fdist2
2.处理网页中获取的文本内容
from urllib import urlopen url = "www.xxxx.com/a.txt" raw = urlopen(url).read() # raw是从某url获取的文本 tokens = nltk.word_tokenize(raw) #此时tokens为含有词汇和标点的链表 text = nltk.Text(tokens) #text为<type. ‘nltk.text.Text‘> 对象 text.collocations() #找文本中频繁相邻的二元组
a = raw.find(‘PART I‘) # 找到文中以 PART I 开头的词语在哪一个位置
b = raw.rfind(‘where are you‘) #找到以wehere are you 结尾的位置在哪个位置,
raw = raw[a:b] #可以根据此方式去除不需要的开头和结尾的文本内容
3. 处理html 网络的文本大部分是以html的形式,可以用一下方式进行简单的处理
url = ‘www.youtube.com‘ html = urlopen(url).read() #html包含了网址中的所有内容,css,jss,html代码等 raw = nltk.clean_html(html) #nltk 中提供的处理html的辅助函数。返回处理后的原始文本 ,然后可以对raw进行word_tokenize()分词处理
以上是关于NLTK入门的主要内容,如果未能解决你的问题,请参考以下文章
在PyCharm中安装nltk,以及nltk data的下载。
机器学习入门-文本数据-构造词频词袋模型 1.re.sub(进行字符串的替换) 2.nltk.corpus.stopwords.words(获得停用词表) 3.nltk.WordPunctToke