一年之前,我做梦也想不到会来这里写技术总结。误打误撞来到了上海西南某高校,成为了文科专业的工科男,现在每天除了膜ha,就是恶补CS。导师是做计算语言学的,所以当务之急就是先自学计算机自然语言处理,打好底子准备做科研(认真脸)。

进入正题,从图书馆找了本“Natural Language Processing with Python” (影印版),书长这个样子,作者是Steven Bird, Ewan Klein和Edward Loper。粘贴个豆瓣链接供参考:https://book.douban.com/subject/5336893/

对于本书,读者大多将其定义为:NLTK的工具书(再加个“入门级”的定语或许更佳恰当),理论性还有待深入。但是对于小白来讲先刷一遍再说,简单、粗暴、实用、能迅速上手才是王道!

顺便再说一下为什么要选Python,其实对于小白来讲,与其浪费时间去纠结学什么编程语言,不如花时间去多敲几行代码。Python语言本身好不好小白我没资格评价,但是这里必须要说一句Python有很多功能强大的第三方工具包(package),这些工具包是解决具体学科具体问题的利器!比如在自然语言处理方面,NLTK(Natural Language Toolkit)功能极其强大。

好了,这次终于能进入正题了。Chapter 0可以视为学习前的准备工作,正所谓“工欲善其事,必先利其器”。

IDE: PyCharm
IDE我选了PyCharm,据说很好用。下载及安装方法如下:
1.Python官网下载Python,打开terminal,输入python显示版本信息
2.下载Python开发的IDE PyCharm,Professional版的激活码可以求助度娘

关于Python文件编码声明
1.位置:必须放在python文件的第一行或第二行
2.格式:a. 带等于号的
 #coding=<encoding name>

b. 带冒号的,最常见,大多数编辑器都可以识别

 #!/usr/bin/python
# -*- coding: <encoding name> -*-             
           c. vim的:
 #!/usr/bin/python
# vim: set fileencoding=<encoding name>
3.作用:告诉python interpreter如何解释字符串的编码
           如果没有文件编码类型声明,则python默认以ASCII编码去处理。
           如果没有声明代码,但是文件中又包含非ASCII编码的字符的话,python解释器去解释python文件自然会报错。
4.例子:第一行说明脚本语言是python的;第二行用来指定文件编码为utf-8的 。   
 #!/usr/bin/python
# -*- coding: utf-8 -*-                          
5.注意:单个python源码文件中只允许用单一的编码,不允许嵌入多种编码,否则会报错!!!
6.Python分词器+编译器工作逻辑:
            a. 读取文件
            b. 不同的文件,根据其声明的编码去解析为Unicode
            c. 转换为UTF-8字符串
            d. 针对UTF-8字符串去分词
            e. 编译之,创建Unicode对象
7.UTF-8: 8-bit Unicode Transformation Format,是一种针对Unicode的可变长度字符编码,又称万国码。
             总之,要想让Python程序支持中文,就需要在Python源文件开头加上这样一段编码声明。

My First Python Program - Hello World!
1.File --> New Project --> 选择Project的保存路径(个人感觉很像R语言中working directory的设定)
2.右键刚刚建好的project --> New --> Python File --> 给File命个名(个人感觉这就是脚本文件,类似于R语言中的script)
3.敲入文件编码声明(其实并不必要,因为我们输入英文"Hello World!",而不是中文)
4.Hello World
 print ("Hello World!") 
5.这时会发现运行及调试按钮(绿色三角形)是灰色的,因为我们还没有设置控制台。

 
python设置控制台
1.点击运行旁边的黑色倒三角,进入Run/Debug Configurations配置界面(或者Run —> Edit Configurations)
2.点击绿色加号,新建一个配置项,并选择python(因为是用源代码是python程序)
3.配置界面里Name一栏写一个名字,点击Script选项,找到刚才写的 .py 文件
4.点击OK,自动返回编辑界面,这时运行及调试按钮全部变绿
5.点击运行,观看输出结果

Installing Packages in PyCharm - Mac
1.Pycharm —> preference —> project interpreter
2. +  for adding packages
    -   for deleting packages
    -> for updating packages

NLTK (Natural Language Toolkit)
通过输入以下代码,调用NLTK这个包,然后下载我们所需的data sets(实际上就是书中所用的语料)
 import nltk
nltk.download()
Run and you will get to the NLTK Downloader
The Collections tab on the downloader shows how the packages are grouped into sets, and you should select the line labeled book to obtain all data required for the examples and exercises in this book.
我表示下载速度让人捉鸡,虽然MIT (Minhang Institute of Technology,译作:闵行男子职业技术学院)的网速相当快,而且不用交网费!!!

吃饭前,还是要膜一下!遛了。 
 

Natural Language Processing with Python - Chapter 0的更多相关文章

  1. spaCy is a library for advanced natural language processing in Python and Cython:spaCy 工业级自然语言处理工具

    spaCy is a library for advanced natural language processing in Python and Cython. spaCy is built on ...

  2. 图书分享 -《Natural Language Processing with Python》

    -<Natural Language Processing with Python> 链接:https://pan.baidu.com/s/1_oalRiUEw6bXbm2dy5q_0Q ...

  3. <Natural Language Processing with Python>学习笔记一

    Spoken input (top left) is analyzed, words are recognized, sentences are parsed and interpreted in c ...

  4. <Natural Language Processing with Python>学习笔记二

    用Enthought Canopy作图果然方便.昨天频频出现无法识别pylab模块的异常,今天终于搞好了.以下是今天出来的图:

  5. 课程五(Sequence Models),第二 周(Natural Language Processing & Word Embeddings) —— 0.Practice questions:Natural Language Processing & Word Embeddings

    [解释] The dimension of word vectors is usually smaller than the size of the vocabulary. Most common s ...

  6. (zhuan) Speech and Natural Language Processing

    Speech and Natural Language Processing obtain from this link: https://github.com/edobashira/speech-l ...

  7. How 5 Natural Language Processing APIs Stack Up

    https://www.programmableweb.com/news/how-5-natural-language-processing-apis-stack/analysis/2014/07/2 ...

  8. [C5W2] Sequence Models - Natural Language Processing and Word Embeddings

    第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings) 词汇表征(Word Representation) 上周我们学习了 RN ...

  9. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings)-课程笔记

    第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings) 2.1 词汇表征(Word Representation) 词汇表示,目 ...

随机推荐

  1. 小白日记32:kali渗透测试之Web渗透-扫描工具-QWASP_ZAP

    扫描工具-QWASP_ZAP 十大安全工具之一,集成性工具,功能完善,而且强大.既可做主动扫描,也可做截断代理.开源免费跨平台,简单易用,体验相对混乱,但在主动扫描方面,相对占优.[kali集成] # ...

  2. Android(java)学习笔记79:java中InetAddress类概述和使用

    要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机. 在TCP/IP协议中,这个标识号就是IP地址. 那么,我们如果获取和操作I ...

  3. PHP用反撇号(`,也就是键盘上ESC键下面的那个,和~在同一个上面)执行外部命令

    例如: echo `whoami`; // 导出数据库,要导入的文件夹必须要有可写权限, -u -p之后的内容必须要紧挨着写 echo `mysqldump -h localhost -u$DbUse ...

  4. TensorFlow安装与测试

    官网:http://tensorflow.org/安装步骤:1.sudo apt-get install python-pip python-dev python-virtualenv 2.virtu ...

  5. ganymed-ssh2使用

    通过maven库获取ganymed-ssh2-262.jar,这是一个实现了ssh2协议的工具包,可以远程连接linux机器,执行命令,有些工作全靠它了 示例代码如下: <!--首先要建立连接, ...

  6. [转]bat批处理实现TXT文本合并

    本文转自:http://quanhuaming.blog.163.com/blog/static/1405693672010210101124905/ 有朋友问是否有可以合并TXT文本文件的软件,于是 ...

  7. hdu 2004 成绩转换

    成绩转换 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. Laravel Eloquent 的条件不等于

    方法一: 使用Eloquent的where where('id', '!=' , 2) 方法二: 使用Eloquent的whereNotIn ->whereNotIn( 'id', [2]) 参 ...

  9. Ajax具体使用

    Ajax在注册页面经常使用,当注册用户是用户名必须唯一时,要使用ajax获取表单中你输入的内容, 然后将这个数据利用XMLHttpRequest对象请求一个php文件,这个php文件接收到信息,查询数 ...

  10. 晒下自己App广告平台积分墙收入,顺便点评几个广告平台

    这是我之前发在爱开发App源码论坛的文章.分享了我从2011年到现在移动广告方面的收入和一些心得. 产品类型:FC.街机模拟器类App游戏 广告平台:万普世纪 广告形式:积分墙,用户先试玩几次,再玩需 ...