自然语言处理 之 语料库相关(三)
来源:互联网 发布:蓝牙单片机 编辑:程序博客网 时间:2024/06/05 07:52
一:针对nltk语料库的相关处理函数
1 、导入语料库的方法
1)一步到位导入语料库 如:导入gutenberg的语料库
nltk.corpus.gutenberg.fileids()
2)为避免1)中的过场语句,可以分开导入,如下:
from nltk.corpus import gutenberg
读取文件:gutenberg.fileids()
读取语料库中的单词:gutenberg.words()
注意,这里读取语料库的词或者是文件名也好,最终返回的结果是列表的形式,如果想要使用之前我的博客 自然语言处理(1)中针对文本的相关函数呢,这里是不可以直接使用的,需要用函数nltk.Text()将读取的单词转换成文本。如下:
import nltk
from nltk.corpus import gutenberg
gutenberg.fileids()
words=nltk.Text(gutenberg.words('austen-emma.txt'))
words.concordance('by') #查询单词by
2、针对对语料库的一些基本处理函数:查找文件、分类以及字词句等
语料库中包含不同种类(category)、不同文件(fileids)的文本资源。在介绍nltk语料库之前,先对语料库的一些基本处理函数做一个简单的介绍。共17个函数,如下图:
乍一看,似乎很难记忆,其实仔细分析就会很好记:
针对语料库有不同文件和种类,怎么查找不同种类中下的件以及不同文件的指定分类,由此产生前4个函数;
语料库即文章,是由字、词、句组成,针对如何查看整个语料库、指定文件以及指定分类中的字词句,由此产生中间9个函数;
最后四个函数涉及到语料库所在文件的路径问题。
注意:这里raw()函数是查看的语料库中的一个个字符,包括字母、空格以及标点符号。
示例:查找gutenberg中每个文件的字词句长度:
for file in gutenberg.fileids():
#文件名的长度
num_name=len(file)
#每个file的字词句长度
num_raw=len(gutenberg.raw(file))
#每个file的词的长度
num_words=len(gutenberg.words(file))
#每个句子的长度
num_sents=len(gutenberg.sents(file))
二、相关语料库:
相关语料库有:古登堡语料库、布朗语料库、聊天文本语料库、路透社语料库、就职演讲语料库等。
古登堡语料库:简单的文本集合,是离散的语料库。
布朗语料库:将语料分成不同种类的形式。比如:新闻、宗教类等等。
路透社语料库:一个语料库与多个种类是重叠的。
就职演讲语料库是按照时间顺序分类的。
利用条件词频分布可以查看不同种类中单词的使用情况,如下:
cfd=nltk.ConditionalFreqDist(
(genre,word)
for genre in brown.categories()
for word in brown.words(categories=genre))
genres=['news','religion','hobbies','science_fiction','romance','humor']
modal=['can','could','may','might','must','will']
cfd.tabulate(conditions=genres,samples=modal)
运行结果如下:
三、制作、加载自己的语料库
该部分目前还没学,最终肯定是要回归到自己的语料库,所以以后要学。
- 自然语言处理 之 语料库相关(三)
- python自然语言处理之加载本地语料库
- Pyhon 自然语言处理(一)NLTK及语料库下载
- 统计自然语言处理(基于语料库的工作)
- 自然语言处理新天地(之三[1])
- 自然语言处理新天地(之三[2])
- 自然语言处理新天地(之三[3])
- 自然语言处理新天地(之三[4])
- python自然语言处理-就职演说语料库
- 自然语言处理之三:最大熵马尔科夫模型
- 统计自然语言处理基础学习笔记(2)——语料库
- python自然语言处理学习笔记5——载入语料库
- 自然语言处理相关工具(更新中)
- 自然语言处理相关词汇
- 自然语言处理相关词条
- NLP自然语言处理相关
- 自然语言处理相关书籍
- 自然语言处理相关网站
- Java反射机制
- js 判断指定的url是否有效(能访问
- java.lang.NumberFormatException: multiple points 异常 原创 2016年11月15日 20:48:09 标签:java 3032 平时使用SimpleD
- 互联网架构为什么要做服务化?
- Android中使用封装的OKHttp上传图片,从相机和相册中获取图片并剪切
- 自然语言处理 之 语料库相关(三)
- 如何辨认一个复杂声明表达式子中变量的类型?
- sorted排序
- iOS 按钮防止被重复点击
- python 装饰器
- 重做OpenVPN服务器
- 敲诈完微软,又让苹果赔29亿,有文化的流氓真可怕
- Android沉浸式之一步到位(fragment 的坑之解法)
- Android 端天气预报APP的实现(四)使用ViewPager展示天气数据