python自然语言处理学习笔记(一)

一、语言计算:文本和单词

1. NLTK简介

NLTK 创建于 2001 年,最初是宾州大学计算机与信息科学系计算语言学课程的一部分。 从那以后,在数十名贡献者的帮助下不断发展壮大。如今,它已被几十所大学的课程所采纳, 并作为许多研究项目的基础。

python自然语言处理学习笔记(一)_第1张图片
语言处理任务与相应NLTK模块以及功能描述

使用pip install nltk即可安装成功。安装完 NLTK之后,使用如下代码来安装《python自然语言处理》这本书所需要的数据:

import nltk
nltk.download()
python自然语言处理学习笔记(一)_第2张图片
运行代码后弹出的界面

查看和使用所下载的文本数据:

python自然语言处理学习笔记(一)_第3张图片

2. 搜索文本

词语索引视图显示一个指 定单词的每一次出现,连同一些上下文一起显示。查看《白鲸记》中的词 monstrous:

python自然语言处理学习笔记(一)_第4张图片

可以用.similar方法来识别文章中和搜索词相似的词语:

.common_contexts允许我们研究两个或两个以上的词共同的上下文:

判断词在文本中的位置:从文本开头算起在它前面有多少词。这个位置信息 可以用离散图表示。每一个竖线代表一个单词,每一行代表整个文本:

python自然语言处理学习笔记(一)_第5张图片

3. 计数词汇

使用len(text3)获取文本中出现的词和标点符号为单位算出文本从头到尾的长度。

set(text3)获得 text3 的词汇表,然后用 sorted()包裹起 Python 表达式 set(text3),得到一个词汇项的排序表:

python自然语言处理学习笔记(一)_第6张图片

计数一个词在文本中出现的次数和计算一个特定的词在文本中占据的百分比:

python自然语言处理学习笔记(一)_第7张图片


二、近观 Python:将文本当做词链表

这里就是介绍python的list和字符串,因为已经学习过了,所以稍微看了下就跳过了。


三、计算语言:简单的统计

1. 频率分布

使用 FreqDist 寻找《白鲸记》中最常见的 50 个词:

python自然语言处理学习笔记(一)_第8张图片

FreqDist::plot(n):该方法接受一个数字n,会绘制出现次数最多的前n项,在本例中即绘制高频词汇:

python自然语言处理学习笔记(一)_第9张图片

FreqDist::hapaxes(): 该方法会返回一个低频项列表,低频项即出现一次的项。

2. 细粒度的选择词

长高频词一般为文本的特征词,我们可以看看文本中长度大于7个字符出现次数超过7次的词:

python自然语言处理学习笔记(一)_第10张图片

3. 词语搭配和双连词( bigrams)

一个搭配是经常在一起出现的词序列。 red wine 是一个搭配而 the wine 不是 。collocations()函数可以做这些:

4. NLTK频率分布类中定义的函数

python自然语言处理学习笔记(一)_第11张图片


四、回到 Python:决策与控制

主要还是一些python的控制语句,略


五、自动理解自然语言

  • 词意消歧
  • 指代消解
  • 自动生成语言
  • 机器翻译
  • 人机对话系统
  • 文本含义识别

NLP 的局限性:尽管在很多如 RTE 这样的任务中研究取得了进展, 但在现实世界的应用中已经部署的语言理解系统仍不能进行常识推理或以一种一般的可靠的方式描绘这个世界的知识。我们在 等待这些困难的人工智能问题得到解决的同时,接受一些在推理和知识能力上存在严重限制 的自然语言系统是有必要的。因此,从一开始,自然语言处理研究的一个重要目标一直是使 用浅显但强大的技术代替无边无际的知识和推理能力,促进构建“ 语言理解”技术的艰巨任务 的不断取得进展。事实上,这是本书的目标之一,我们希望你能掌握这些知识和技能,构建 有效的自然语言处理系统,并为构建智能机器这一长期的理想做出贡献。

你可能感兴趣的:(python自然语言处理学习笔记(一))