文科生可以学会的Python——雷蕾《基于Python的语料库数据处理》
欢迎点击上方关注我们,欢迎转发此文
本文来源:翻译学通讯微信公众号
推荐语
文科生可以学会的Python
本书以语料库语言学研究实践为导向,介绍Python编程基础知识。第1章为Python语言简介,第2章至第6章由易到难、循序渐进介绍Python语言的基本数据类型和语法。第7章和第8章提供文本处理的个案实例。全书内容涵盖语料库语言学研究中常用的文本处理模式,读者可以通过学习本书掌握语料库语言学研究中的Python编程技巧,以便更深入地进行研究。另外,本书提供大量语料库语言学文本处理所需的Python代码,读者可以直接将这些代码(或将这些代码稍加改动)用于自己的研究中。
书名:基于Python的语料库数据处理
作者 :雷蕾
出版社:科学出版社
出版时间:2020年6月
定价:68元
优惠限时价:52元
作者简介:
雷蕾,华中科技大学外国语学院教授、博士生导师。研究兴趣涉及语料库语言学、学术英语、二语习得、计量语言学、语言研究方法等领域。出版专著5部,在Applied Linguistics、Lingua、International Journal of Corpus Linguistics、System等SSCI期刊发表研究性论文20余篇,在SSCI期刊发表书评10余篇,在CSSCI期刊发表论文或书评10余篇,两篇论文入选ESI高被引论文。主持国家社科基金项目等科研项目多项。担任20余家国内外期刊匿名审稿人。
导
读
文科生的编程自白
在书稿即将完成之际,我非常乐意与读者诸君分享我学习语料库语言学、特别是学习语料库数据处理技术的经历,以与大家共勉。
如果从2002年开始硕士求学算起,我接触和学习语料库语言学已有近二十年时间,而学习语料库数据处理技术大致经历了如下三个阶段,即从完全依赖软件工具处理数据的初始阶段,到兼用软件工具和编程处理数据的中间阶段,再到最近几年基本通过编程处理数据。
初始阶段:依赖软件工具
在学习语料库语言学的初始阶段,我主要依赖WordSmith、AntConc等软件工具来处理语料数据。使用软件工具处理数据的一个显著优点是学习成本低、操作简单。但随之而来的问题是,数据处理受限于软件功能,即数据处理局限于WordSmith、AntConc等软件所提供的制作词表、提取关键词等少数几个简单功能,而当需要用其它方法处理数据以解决稍微复杂的研究问题时,往往囿于数据处理能力限制而无法开展更深入研究。
中间阶段:软件工具与编程并行
2010年春在提交了博士论文外审后,我开始摸索学习编程。记得最开始学习的是Perl语言,后来又学过一点儿Linux系统的命令行语言。刚开始学习最痛苦,纯文科出身没有任何编程基础,加上又是自学,走了不少弯路;当然,痛苦摸索的过程也锻炼了自学能力,特别是网络查找资料和解决方案的技能得到了提升。后来Python越来越来火,大约2014年我开始学习Python编程。由于有Perl基础,学习Python似乎轻松顺利了许多。2014年4月第一次到美国阿拉巴马大学英语系访学,在租住的小屋里,磕磕绊绊终于写好了从某大报自动爬取中英文新闻报道并双语对齐的代码,看着代码成功运行、不一会儿数千对齐文本自动生成,喜不自禁,感觉拥有了整个世界!2015年,再次到阿拉巴马访学,又零星学了一阵R语言,但还是写Python居多。这一阶段,主要运用软件工具做语料基本处理(如用AntConc做检索、Linux命令行下调用Stanford CoreNLP做词性赋码或句法分析),然后写Python代码对初始处理过的数据进行深加工。因此,这一阶段软件工具和编程兼用,相互协作,而通过Python写代码处理语料也已比较熟练。
现阶段:编程为主
转眼到了2017年秋季,我到美国内布拉斯加大学林肯分校英语系访学。由于合作导师Matthew Jockers教授主要使用R语言,而我主要写Python,我们开始合作处理数据时不太顺畅。比如,我把Python代码发给Matthew,他需要将我的代码“翻译”成R代码,反之亦然,我需要将Matthew的R代码“翻译”成Python,此种低效促使我开始认真学习R语言。当然由于有编程基础,学习过程也颇顺利,在内布拉斯加半年访学结束,R语言也用得比较顺手了。自此以后,逐渐熟悉了在Python或R中调用其他工具包,也渐渐很少再用软件工具,过渡到绝大部分数据处理工作通过编程来完成的阶段。
啰啰嗦嗦这么多,既是对过去近二十年学习的小结,也是向读者诸君“现身说法”——文科生也可以自学编程。当然,我们颇业余的编程水平与理工生或专业程序员不可同日而语,我们写的代码可能非常简陋甚至低效,但我们在笨拙挣扎后能写出可以运行的代码,能解决绝大部分我们想要解决的研究问题,就够了。
本书是我学习Python编程的心得,也是我多年科研工作中累积的Python代码的部分集合。本书在介绍Python基本数据类型和语法的基础上,提供了大量语料库数据处理个案实例。从较为简单的文本分句、分词、词性赋码、词形还原,到较为复杂的搭配提取、句法分析、双语文本对齐,个案实例涵盖了语料库数据处理所需的大部分研究场景。相信读者诸君在阅读和学习本书内容后,能掌握Python语料数据处理的基本技能,从而在此基础上不断扩大研究边界、提升研究实力和研究质量。
本书的撰写和出版,需要感谢太多人。感谢导师王同顺教授的培养和关心,感谢合作导师Dilin Liu教授、Matthew Jockers教授的指导和提携,感谢北京航空航天大学卫乃兴教授、梁茂成教授、以及华中科技大学外国语学院领导和同事的鼓励和支持。感谢我的博士生施雅倩、文举帮忙校对书稿、测试代码。感谢科学出版社张宁女士和其他编辑老师的帮助和默默付出。最后,感谢太太和女儿的爱,我要将此书献给她们。
本书受2019年华中科技大学文科双一流建设基金资助,为“大数据语言信息处理一流团队建设”项目阶段性成果,特此致谢。
雷 蕾
2020年02月20日于喻家山
(向上滑动启阅)
目录:
文科生的编程自白
第1章 引言 1
1.1 Python语言与语料库数据处理 1
1.2 安装Python 3
1.3 Python代码的编写和运行 5
1.4 PyCharm的安装和使用 6
1.5 “Hello world!” 8
1.6 本书结构 10
第2章 数值和字符串 13
2.1 数值 13
2.2 常用数值运算符 14
2.3 常用数值函数 16
2.4 数值计算示例 20
2.5 数值计算练习 24
2.6 字符串 25
2.7 字符串运算 28
2.8 字符串与数值的互换 29
2.9 常用字符串函数 29
2.10 练习 32
第3章 条件与循环 33
3.1 条件判断 33
3.2 while循环 39
3.3 for...in循环 39
3.4 读写单个文本 41
3.5 练习 44
第4章 列表和元组 46
4.1 列表 46
4.2 列表与字符串的相互转换 47
4.3 常用列表函数 49
4.4 列表相关文本处理实例 56
4.5 元组 59
4.6 练习 60
第5章 正则表达式 62
5.1 正则表达式的概念 62
5.2 普通字符 64
5.3 元字符 64
5.4 匹配零个或多个字符 66
5.5 分组 72
5.6 元字符的转义 74
5.7 换行符、回车符、制表符 77
5.8 正则表达式相关实例 77
5.9 练习 89
第6章 字典 90
6.1 字典的概念 90
6.2 常用字典函数 92
6.3 字典排序 95
6.4 字典相关实例 97
6.5 练习 102
第7章 语料库数据处理个案实例 103
7.1 分句和分词 103
7.2 词性赋码 107
7.3 词形还原 111
7.4 抽取词块 112
7.5 计算搭配强度 114
7.6 删除词表中的停用词 119
7.7 语料检索的KWIC实现 120
7.8 句子检索相关个案 122
7.9 实现Range软件功能 123
7.10 读取多个文本文件 133
7.11 多个文本文件批量改名 137
7.12 使用Stanford CoreNLP进行文本处理 139
第8章 语料库Unicode数据处理个案实例 153
8.1 中文分词 153
8.2 中文词性赋码 157
8.3 检索中文文本 160
8.4 英汉双语语料文本的合并与分割 162
附录A Python及命令行文本处理相关参考书籍 167
附录B 宾夕法尼亚大学树库词性赋码集 168
相关文献延伸阅读(爱书人指南)
敬告:本公号友情提供相关书讯或书目索引链接,
以便爱书人前往第三方平台自行选购
语言学图书精选推荐
扫码关注,即可获取最新入群二维码
目前已有2.14万语言文学、国别区域
研习者关注↑↑↑本公众号,
欢迎加入我们,交流分享,共同学习!