python自然语言处理-学习笔记(一)
2014-06-08 15:11
459 查看
打算用python写点东西又想学一些机器学习方面的东西,正好看到《python自然语言处理》这本书,在这里好好学习一下,做些笔记,主要记录自己的一些想法和遇到的问题,有什么认识性的错误,还希望看到的人指正
第一章,基本上就是简单的入门和一些尝试性的操作,首先是安装nltk(python的安装,很简单,我就不赘述了),我的环境是ubuntu12.04LTS,nltk的安装可以按照nltk官网的说明来操作,具体在这里,在安装pyyaml的时候,可能会遇到这个错误,“yaml.h:没有那个文件或目录”,我安装的时候,查了半天也不知道这是怎么回事,后来发现需要安装libyaml这个库,需要先安装这个库才行,安装的说明在这里,安装好库,再安装就没有问题了
今天继续了看了一部分,忍不住吐槽一下,为什么我这里的执行结果和书上的不一样呢,每次都要处理一下才能得到书上的结果,在这里列举一下,希望能记录一下,或者可以帮助到遇到相同问题的人,或者哪位大牛可以帮我解答一下为什么我的和别人的不一样。。。
首先是FreqDist()函数,返回来的结果并不是排序好的字典啊。。。我默认执行的结果是
接着是bigrams()这个函数,按照书上来,我得到的执行结果是
1.5自动理解自然语言
这一小节里,提到了一些那个去的词汇,这里记录如下:
词意消歧:主要是某些词,可能会引起歧义,如果在机器学历里面直接翻译的话,会导致词不达意,等等,例如文中提到的by,the book by Chesterton 和 submit by friday,一个词在适当的语境要按照对应的语境来翻译。
指代消解:主要是代词的使用,也要理解上下文来进行理解
接下来是,机器翻译的部分,这里有一个尝试的函数babelize_shell(),但是,输入的结果如下:
>>> babelize_shell()
Babelfish online translation service is no longer available.
查询了nltk官网,看到函数的具体说明,其实和打印出来的差不多,这里就不贴了,感兴趣的可以看这里
今天先这样,读书的笔记会一直这样写下去,我会按照章节来写,希望如果有一起学习的人,可以一起交流一下
第一章,基本上就是简单的入门和一些尝试性的操作,首先是安装nltk(python的安装,很简单,我就不赘述了),我的环境是ubuntu12.04LTS,nltk的安装可以按照nltk官网的说明来操作,具体在这里,在安装pyyaml的时候,可能会遇到这个错误,“yaml.h:没有那个文件或目录”,我安装的时候,查了半天也不知道这是怎么回事,后来发现需要安装libyaml这个库,需要先安装这个库才行,安装的说明在这里,安装好库,再安装就没有问题了
今天继续了看了一部分,忍不住吐槽一下,为什么我这里的执行结果和书上的不一样呢,每次都要处理一下才能得到书上的结果,在这里列举一下,希望能记录一下,或者可以帮助到遇到相同问题的人,或者哪位大牛可以帮我解答一下为什么我的和别人的不一样。。。
首先是FreqDist()函数,返回来的结果并不是排序好的字典啊。。。我默认执行的结果是
>>> fdist1 = FreqDist(text1) >>> fdist1 <FreqDist with 19317 samples and 260819 outcomes> >>> vocabulary1 = fdist1.keys() >>> vocabulary1[:50] [u'funereal', u'unscientific', u'divinely', u'foul', u'four', u'gag', u'prefix', u'woods', u'clotted', u'Duck', u'hanging', u'plaudits', u'woody', u'Until', u'marching', u'disobeying', u'canes', u'granting', u'advantage', u'Westers', u'insertion', u'DRYDEN', u'formless', u'Untried', u'superficially', u'Western', u'portentous', u'meadows', u'sinking', u'Ding', u'Spurn', u'treasuries', u'churned', u'oceans', u'invasion', u'powders', u'tinkerings', u'tantalizing', u'yellow', u'bolting', u'uncertain', u'stabbed', u'bringing', u'elevations', u'ferreting', u'wooded', u'songster', u'uttering', u'scholar', u'Less'] >>>我不是很明白这是为什么,难道是版本的问题。。。下面我加了一些函数之后得到和书上一样的版本:
>>> fdist1 = FreqDist(text1) >>> vocabulary1 = sorted(fdist1.iteritems(),key = lambda asd:asd[1],reverse=True) >>> vocabulary2 = [item[0] for item in vocabulary1] >>> vocabulary2[:50] [u',', u'the', u'.', u'of', u'and', u'a', u'to', u';', u'in', u'that', u"'", u'-', u'his', u'it', u'I', u's', u'is', u'he', u'with', u'was', u'as', u'"', u'all', u'for', u'this', u'!', u'at', u'by', u'but', u'not', u'--', u'him', u'from', u'be', u'on', u'so', u'whale', u'one', u'you', u'had', u'have', u'there', u'But', u'or', u'were', u'now', u'which', u'?', u'me', u'like']至于下面的fdist1.plot(50,cumulative=True)我得到的是计数,而不是频率,这个我处理不了了,只能跳过了
接着是bigrams()这个函数,按照书上来,我得到的执行结果是
>>> bigrams(['more', 'is', 'said', 'than', 'done']) <generator object bigrams at 0x144bb824> >>>又是无语。。。查了一下nltk官网上的函数说明(链接在这里)才知道,要加list()函数,结果才是书上的情况,执行结果如下:
>>> list(bigrams(['more', 'is', 'said', 'than', 'done'])) [('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')] >>>
1.5自动理解自然语言
这一小节里,提到了一些那个去的词汇,这里记录如下:
词意消歧:主要是某些词,可能会引起歧义,如果在机器学历里面直接翻译的话,会导致词不达意,等等,例如文中提到的by,the book by Chesterton 和 submit by friday,一个词在适当的语境要按照对应的语境来翻译。
指代消解:主要是代词的使用,也要理解上下文来进行理解
接下来是,机器翻译的部分,这里有一个尝试的函数babelize_shell(),但是,输入的结果如下:
>>> babelize_shell()
Babelfish online translation service is no longer available.
查询了nltk官网,看到函数的具体说明,其实和打印出来的差不多,这里就不贴了,感兴趣的可以看这里
今天先这样,读书的笔记会一直这样写下去,我会按照章节来写,希望如果有一起学习的人,可以一起交流一下
相关文章推荐
- python自然语言处理学习笔记-信息提取结构
- python自然语言处理学习笔记2
- Python自然语言处理学习笔记[一]---前言(preface)
- 自然语言16.1_Python自然语言处理学习笔记之信息提取步骤&分块(chunking)
- python自然语言处理学习笔记2——基础语句
- python自然语言处理学习笔记一
- Python自然语言处理学习笔记之选择正确的特征(错误分析 error analysis)
- python自然语言处理——学习笔记:Chapter3纠错
- python自然语言处理学习笔记1
- Python自然语言处理学习笔记之性别识别
- python自然语言处理-学习笔记(二)
- Python自然语言处理学习笔记之信息提取步骤&分块(chunking)
- Struts 学习笔记1 -Struts Framework 概览
- PE学习笔记(一)
- Win32学习笔记 第三章 HelloWin
- 开发asp.net自定义控件(asp.net学习笔记五)
- Win32学习笔记 第四章 输出文本_2
- Microsoft Agent 学习笔记 (一)
- STL的学习笔记之一
- 《Mastering Delphi 6》学习笔记之七