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)引擎。

一个典型的信息抽取管道在结构上都是非常类似的具体如下图:

28067f34fc18bab25e49208cfe7729a96a79a258.jpeg

命名实体识别(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 &AMP; 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']

dd6b1e7811c6e71ee429ba70333136e8ab8e620b.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel的VBA连接数据库方法

Sub GetData() Dim strConn As String, strSQL As String Dim conn As ADODB.Connection Dim ds As ADODB.Recordset Dim col As Integer 清空电子表格的所有数据 Cells.Clear 连接数据库的字符串 strConn "ProviderSQLOLEDB.1;Persist Security InfoTrue;User IDnam…

Python基础4

本节内容 列表、元组操作字符串操作字典操作集合操作文件操作字符编码与转码 1. 列表、元组操作 列表是我们最以后最常用的数据类型之一&#xff0c;通过列表可以对数据实现最方便的存储、修改等操作 定义列表 1names [Alex,"Tenglan",Eric]通过下标访问列表中的元素…

Catalan数(卡特兰数)

公式&#xff1a; n < 2 时&#xff0c; f(n) n; n > 2时&#xff0c; f(n) (4n - 2) / (n1) * f(n-1) 1-100的卡特兰数列表如下&#xff1a; n f(n) 1 1 2 2 3 5 4 14 5 42 6 132 7 429 8 1430 9 …

linux unix域socket_Socket通信原理

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧&#xff1f;随着网络技术的发展&#xff0c;这些词充斥着我们的耳朵。那么我想问&#xff1a;1. 什么是TCP/IP、UDP&#xff1f;2. Socket在哪里呢&#xff1f;3. Socket是什么呢&#xff1f;4. …

LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明&#xff1a;当安装VS2012之后&#xff0c;原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时&#xff0c;不会恢复.NET 4.0。 l 当VS2012安装后&#xff0c;VS2010的cvtres.exe就无法使用了。…

NPOI打印设置

打印设置主要包括方向设置、缩放、纸张设置、页边距等。NPOI 1.2支持大部分打印属性&#xff0c;能够让你轻松满足客户的打印需要。 方向设置首先是方向设置&#xff0c;Excel支持两种页面方向&#xff0c;即纵向和横向。 在NPOI中如何设置呢&#xff1f;你可以通过HSSFSheet.P…

HDOJ 1030 Delta-wave

题目&#xff1a;Problem DescriptionA triangle field is numbered with successive integers in the way shown on the picture below. The traveller needs to go from the cell with number M to the cell with number N. The traveller is able to enter the cell through…

工厂模式个人案例_工厂设计模式案例研究

工厂模式个人案例我有一份工作来检查我们的项目代码质量。 如果我在项目中发现任何障碍&#xff0c;必须将其报告给我的团队负责人。 我发现了很多漏洞&#xff0c;我认为可以在博客上进行讨论。 不是嘲笑作者&#xff0c;而是一起学习和改进自己。 像这段代码一样&#xff0c;…

用Matlab实现字符串分割(split)

我们在这里借助正则表达式函数regexp的split模式。一般语法&#xff1a; S regexp(str, char, split) 其中str是待分割的字符串&#xff0c;char是作为分隔符的字符&#xff08;可以使用正则表达式&#xff09;。分割出的结果存在S中。 以下面这样一串字符为例 Hello N…

阅读笔记:基础知识(Java篇)

1. GC机制&#xff08;垃圾回收机制&#xff09; 找到垃圾的方法&#xff1a;引用计数法、可达性分析法 回收垃圾的方法&#xff1a;标记清除算法、复制算法、标记整理法、分代算法2. JVM内存划分 线程私有&#xff1a;程序计数器、JVM虚拟机栈、本地方法栈线程公有&#xff1a…

oracle和mysql数据实时同步_异构数据源的CDC实时同步系统——最终选型实战

引言&#xff1a;《异构数据源的CDC实时同步系统》 系列第一篇 (已完成)《零编码打造异构数据实时同步系统——异构数据源CDC之2》 系列第二篇(已完成)《零编码打造异构数据实时同步系统——异构数据源CDC之3》 系列第三篇(已完成)《异构数据源的CDC实时同步系统——最终选型实…

使用DynamoDBMapper插入DynamoDB项目

在上一篇文章中&#xff0c;我们使用DynamoDBMapper来将DynamoDB表映射到Java对象。 插入时&#xff0c;我们的动作几乎相同&#xff0c;但是方式更方便。 为了插入项目&#xff0c;您要做的就是使用对象映射器持久化对象 在我们的例子中&#xff0c;我们将创建一个执行简单插…

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器,sqlserver

今早开机发现&#xff0c;打开SQL Server 2008 的 SQL Server Management Studio&#xff0c;输入sa的密码发现&#xff0c;无法登陆数据库&#xff1f;提示以下错误&#xff1a; “在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请…

matlab 与数据库操作

第一部分&#xff1a;读取数据其相关信息查看 1. 配置数据源 &#xff08;1&#xff09;.“控制面板”----“管理工具”——“数据源&#xff08;ODBC&#xff09;”——“添加”——“创建数据源名称和选择数据库文件”。具体操作见数据源配置&#xff1a; http://blog.c…

PHP05

php05 1、音乐案例删除部分 1&#xff09;通过执行某些PHP代码获取到指定的数据&#xff0c;填充到html的指定位置 accept属性也可以直接写扩展名,多个扩展名间用英文的逗号分隔 accept".lrc" 允许选中多个文件&#xff0c;文件域属性&#xff1a;multiple 直接写该属…

算术运算导致溢出_CPU的控制器与运算器

计算机基础方面的知识&#xff0c;对于一些非科班出身的同学来讲&#xff0c;一直是他们心中的痛&#xff0c;而对于科班出身的同学&#xff0c;很多同学在工作之后&#xff0c;也意识到自身所学知识的不足与欠缺&#xff0c;想回头补补基础知识。关于计算机基础的课程很多&…

Windows下,Netbeans使用C++的配置方法

如果尚未安装 NetBeans IDE&#xff0c;请转至http://www.netbeans.org/community/releases/&#xff0c;然后下载包含最近的 C/C 支持的 IDE 版本。 如果已安装 NetBeans IDE 但未包含 C/C 支持&#xff0c;请完成以下步骤为 IDE 添加 C/C 支持。 从主菜单中选择“工具”>“…

为了简单起见,Arquillian Chameleon

使用Arquillian时&#xff0c;您需要做的一件事就是定义要在哪个容器下执行所有测试。 这是通过在适配器的类路径中添加依赖项并取决于所使用的模式&#xff08;嵌入式&#xff0c;托管或远程&#xff09;来下载的来完成的。 手动安装应用程序服务器。 例如&#xff0c;当在嵌…

matlab 读取文件夹底下所有txt文件

读取matlab 文件夹底下所有的txt 文件包括子文件夹底下的文件。 dirsdir(H:\DCE); for i1:length(dirs); if (dirs(i).isdir && ~strcmp(dirs(i).name,.) && ~strcmp(dirs(i).name,..) ) str_path[H:\DCE\, dirs(i).name]; filedir([str_path,\*.txt]);…

BZOJ4856 JSOI2016 病毒感染 区间DP

传送门 原Word文档 题意&#xff1a;太长不给 这种题目一看就是区间DP 设$f_i$表示治愈了前$i$个村子的时候最少死了多少村民&#xff0c;又设前缀和为$sum_i$&#xff0c;通过枚举折返时最后经过的村子$j$&#xff0c;并且提前计算$i1$到$N$中死的村民数量&#xff0c;可以得到…