python语言语块句的标记_NLTK基础教程学习笔记(十一)
语块分解例子:
from nltk.chunk.regexp import *
import nltk
test_sent="The prime minister announced he had asked the chief government whip, Philip Ruddock, to call a special party room meeting for 9am on Monday to consider the spill motion."
test_sent_pos=nltk.pos_tag(nltk.word_tokenize(test_sent))
rule_vp=ChunkRule(r'()?()+(PRP)?','Chunk VPs')
parser_vp=RegexpChunkParser([rule_vp],chunk_label='VP')
print(parser_vp.parse(test_sent_pos))
rule_np=ChunkRule(r'(
??)?*(<,>)*()+','Chunk NPs')
parser_np=RegexpChunkParser([rule_np],chunk_label="NP")
print(parser_np.parse(test_sent_pos))
结果:
(S
The/DT
prime/JJ
minister/NN
(VP announced/VBD)
he/PRP
(VP had/VBD asked/VBN)
the/DT
chief/JJ
government/NN
whip/NN
,/,
Philip/NNP
Ruddock/NNP
,/,
to/TO
(VP call/VB)
a/DT
special/JJ
party/NN
room/NN
meeting/NN
for/IN
9am/CD
on/IN
Monday/NNP
to/TO
(VP consider/VB)
the/DT
spill/NN
motion/NN
./.)
(S
(NP The/DT prime/JJ minister/NN)
announced/VBD
he/PRP
had/VBD
asked/VBN
(NP the/DT chief/JJ government/NN whip/NN)
,/,
(NP Philip/NNP Ruddock/NNP)
,/,
to/TO
call/VB
(NP a/DT special/JJ party/NN room/NN meeting/NN)
for/IN
9am/CD
on/IN
(NP Monday/NNP)
to/TO
consider/VB
(NP the/DT spill/NN motion/NN)
./.)
上述代码是用来对动词,和名词进行划分操作,语块分解过程中会有一条管道,作用his标记POS标签,并为相关的语块分解器提供输入字符串,这里使用的是普通的语块分解器,其中的NP、VP规则定义了各种不同的可被称为动词与名词短语的POS模式。例如,NP规则定义的是所有以限定词开头,后接一个副词、形容词或纯数字的可被分解成一个名词短语的组合,这种基于一个表达式的语块分解器得依靠手动涉及分块字符串来定义分块规则。但普适式的规则很难找到。另一种方法是用机器学习的方法来进行语块的分解。
信息提取:介绍了如何用NLTK库来开发一个信息提取(IE)引擎。
一个典型的信息抽取管道在结构上都是非常类似的具体如下图:
命名实体识别(NER)
从本质上讲NER是一种提取信息的方式,它提取的是一些最常见的实体信息,如实体名词,所属的组织,以及所在的位置等。某些NER也可用于提取一般实体,如产品名词,生物医学项目、作者姓名、品牌名等。
下面是一个例子:
import nltk
f=open('nerdemo.txt')
text=f.read()
sentences=nltk.sent_tokenize(text)
tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]
tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences]
for sent in tagged_sentences:
print(nltk.ne_chunk(sent))
结果:
(S I/PRP want/VBP the/DT (GPE Cherry/NNP) keyboard/NN)
上面代码按照之前的相同管道流程走了一遍,执行了所有的预处理步骤,包括句子的标识化,词汇标识化、词性标注以及NLTK的NER(预训练模型)等用来提取所有NER的步骤。
关系提取:
关系提取是常用的信息提取操作。是提取不同实体之间不同的关系的过程,这里的关系可以根据信息的需要定义。
下面的代码中,使用了ieer的内置语料库,会对句子进行NER标注,这里唯一需要做的是指定所需的关系模式,以及该关系所定义NER种类,下面代码中组织与位置之间的关系已经被定义好了,要要提取的是这些模式的所有组合。
import re
import nltk
IN = re.compile(r'.*\bin\b(?!\b.+ing)')
for doc in nltk.corpus.ieer.parsed_docs('NYT_19980315'):
for rel in nltk.sem.extract_rels('ORG', 'LOC', doc, corpus='ieer', pattern=IN):
print(nltk.sem.rtuple(rel))
结果:
[ORG: 'WHYY'] 'in' [LOC: 'Philadelphia']
[ORG: 'McGlashan & Sarrail'] 'firm in' [LOC: 'San Mateo']
[ORG: 'Freedom Forum'] 'in' [LOC: 'Arlington']
[ORG: 'Brookings Institution'] ', the research group in' [LOC: 'Washington']
[ORG: 'Idealab'] ', a self-described business incubator based in' [LOC: 'Los Angeles']
[ORG: 'Open Text'] ', based in' [LOC: 'Waterloo']
[ORG: 'WGBH'] 'in' [LOC: 'Boston']
[ORG: 'Bastille Opera'] 'in' [LOC: 'Paris']
[ORG: 'Omnicom'] 'in' [LOC: 'New York']
[ORG: 'DDB Needham'] 'in' [LOC: 'New York']
[ORG: 'Kaplan Thaler Group'] 'in' [LOC: 'New York']
[ORG: 'BBDO South'] 'in' [LOC: 'Atlanta']
[ORG: 'Georgia-Pacific'] 'in' [LOC: 'Atlanta']
python语言语块句的标记_NLTK基础教程学习笔记(十一)相关推荐
- python语言语块句的标记_个人学习记录
最近在做一个聊天机器人,其中一个基础要求是理解用户说的话,而这需要用到语义角色标注,先将资料整理于此. 背景 自然语言分析技术大致分为三个层面:词法分析.句法分析和语义分析.语义角色标注是实现浅层语义 ...
- python语言语块句的标记_《自然语言处理理论与实战》
编辑推荐 1.讲解自然语言处理的理论 2.案例丰富,实战性强 3.适合自然语言处理学习的入门者 内容提要 自然语言处理是什么?谁需要学习自然语言处理?自然语言处理在哪些地方应用?相关问题一直困扰着不少 ...
- python语言语块句的标记_Python的选择语句
Python的选择语句和C的选择语句差不多,但是又有很多不一样的细节,下面我们一起来学习一下吧! 1.最简单的if语句 Python中使用if保留字来组成选择语句,其最简单的语法形式如下: if 表达 ...
- python机器学习基础教程-学习笔记(一)
了解 scikit-learn 及其用法是很重要的,但还有其他一些库也可以改善你的编程体验. scikit-learn 是基于 NumPy 和 SciPy 科学计算库的.此外,我们还会用到 panda ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入&q ...
- 【莫烦Python】Python 基础教程——学习笔记
文章目录 本笔记基于p1-p29[莫烦Python]Python 基础教程 大家可以根据代码内容和注释进行学习. 安装 我的:python3.8+anaconda+VS code print() pr ...
- python基础课程第12章,Python基础教程学习笔记 | 第12章 | 图形用户界面
Python支持的工具包很多,但没有一个被认为标准的工具包,用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: ------ 丰富的平台: Tkinter实际上类似于标 ...
- 【莫烦Python】Python 基础教程学习笔记与代码
文章目录 2 print 3 数学 4 自变量 5 while循环 6 for循环 7 if 条件 8 if else条件 9 if elif else 10 def 函数 11 函数.参数 12 函 ...
- python笔记基础-Python基础教程学习笔记-1
今天学习了第9章的八皇后问题,Python简洁的语法令我叹服.现总结如下: Python实现程序如下: def conflict(state,nextX): nextY=len(state) for ...
最新文章
- STL六大组件:分配器、容器、迭代器、算法、仿函数、适配器
- g4e基础篇#3 Git安装与配置
- 彻底理清重载函数匹配
- CrawlSpider 详解
- 一文介绍备机重建各种方法的实现机制
- python数据挖掘学习笔记】十三.WordCloud词云配置过程及词频分析
- 【bootloader】bootloader启动过程分析
- mac 命令 vim 快捷键
- ZIGBEE 工程内区分终端与协调器
- WEB应用组合——LAMP软件源码编译安装
- 在自己本地原有的镜像基础上用dockerfile加一下库进去
- 极坐标t1t2几何意义_关于极坐标
- otn与stn网络_mstp和stn的区别
- MFC设置应用程序图标
- Spring_Ioc基本配置使用(基于xml)
- 如何制作U盘启动盘来安装电脑系统
- 实例学习Ansible系列:配置文件ansible.cfg的设定与使用
- 2015阿里移动推荐算法大赛总结
- ati显卡驱动的安装 linux,Fedora 18 下ATI 显卡驱动的安装
- 计算机网络基础昆明理工大学,昆明理工大学 计算机网络基础 实验三
热门文章
- zbrush 添加纹理贴图_想学习3D游戏模型,3Dmax、MAYA和ZBrush都需要掌握吗?
- 苹果电脑怎么删除软件_误格式化,删除文件怎么恢复?3款最好用的数据恢复软件推荐...
- yii2 html ul,yii2导航小部件子菜单类
- 解决Windows 10 CPU占用高风扇吵问题
- 【渝粤教育】国家开放大学2018年春季 0689-22T老年心理健康 参考试题
- 【渝粤教育】 国家开放大学2020年春季 2246社会工作概论 参考试题
- 【渝粤题库】广东开放大学 物业管理实务 形成性考核 (2)
- 【渝粤题库】国家开放大学2021春2238个案工作题目
- LoRaWAN的四大优势及适用领域
- matlab 性能分析方法,DPCM,PSK系统的MATLAB实现及性能分析