学习笔记CB003:分块、标记、关系抽取、文法特征结构

简介:

分块,根据句子的词和词性,按照规则组织合分块,分块代表实体。常见实体,组织、人员、地点、日期、时间。名词短语分块(NP-chunking),通过词性标记、规则识别,通过机器学习方法识别。介词短语(PP)、动词短语(VP)、句子(S)。

分块标记,IOB标记,I(inside,内部)、O(outside,外部)、B(begin,开始)。树结构存储分块。多级分块,多重分块方法。级联分块。

关系抽取,找出实体间关系。实体识别认知事物,关系识别掌握真相。三元组(X,a,Y),X、Y实体,a表达关系字符串。通过正则识别。from nltk.corpus import conll2000,print(conll2000.chunked_sents('train.txt')[99]) 。

文法,潜在无限句子集合紧凑特性。形式化模型,覆盖所有结构句子。符合多种文法句子有歧义。只能用特征方法处理。

文法特征结构,单词最后字母、词性标签、文法类别、正字拼写、指示物、关系、施事角色、受事角色。文法特征是键值对,特征结构存储形式是字典。句法协议、属性、约束、术语。import nltk,fs1 = nltk.FeatStruct(TENSE='past', NUM='sg') ,fs2 = nltk.FeatStruct(POS='N', AGR=fs1) 。nltk产生式文法描述 /nltk_data/grammars/book_grammars 。sql0.fcfg,查找国家城市sql语句文法:

% start S

S[SEM=(?np + WHERE + ?vp)] -> NP[SEM=?np] VP[SEM=?vp]

VP[SEM=(?v + ?pp)] -> IV[SEM=?v] PP[SEM=?pp]
VP[SEM=(?v + ?ap)] -> IV[SEM=?v] AP[SEM=?ap]
NP[SEM=(?det + ?n)] -> Det[SEM=?det] N[SEM=?n]
PP[SEM=(?p + ?np)] -> P[SEM=?p] NP[SEM=?np]
AP[SEM=?pp] -> A[SEM=?a] PP[SEM=?pp]

NP[SEM='Country="greece"'] -> 'Greece'
NP[SEM='Country="china"'] -> 'China'

Det[SEM='SELECT'] -> 'Which' | 'What'

N[SEM='City FROM city_table'] -> 'cities'

IV[SEM=''] -> 'are'
A[SEM=''] -> 'located'
P[SEM=''] -> 'in'

加载文法描述

import nltk
from nltk import load_parser
cp = load_parser('grammars/book_grammars/sql0.fcfg')
query = 'What cities are located in China'
tokens = query.split()
for tree in cp.parse(tokens):
    print(tree)

参考资料:

《Python 自然语言处理》

http://www.shareditor.com/blogshow?blogId=70

http://www.shareditor.com/blogshow?blogId=71

欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

目录
相关文章
|
数据可视化 C# C++
工业基础类IFC—提取模型结构树
工业基础类IFC—提取模型结构树
工业基础类IFC—提取模型结构树
|
移动开发 文字识别 算法
论文推荐|[PR 2019]SegLink++:基于实例感知与组件组合的任意形状密集场景文本检测方法
本文简要介绍Pattern Recognition 2019论文“SegLink++: Detecting Dense and Arbitrary-shaped Scene Text by Instance-aware Component Grouping”的主要工作。该论文提出一种对文字实例敏感的自下而上的文字检测方法,解决了自然场景中密集文本和不规则文本的检测问题。
1946 0
论文推荐|[PR 2019]SegLink++:基于实例感知与组件组合的任意形状密集场景文本检测方法
|
4月前
|
JavaScript
交叉类型的主要用途是表示对象的合成
交叉类型的主要用途是表示对象的合成
27 0
|
6月前
|
算法
算法的三种基本结构
算法的三种基本结构
206 0
|
机器学习/深度学习 自然语言处理
【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码
事件抽取通常被建模为一个多分类问题,其中事件类型和论元角色被视为原子符号。这些方法通常仅限于一组预定义的类型。
136 1
|
机器学习/深度学习 人工智能 自然语言处理
CasEE: 一种用于重叠事件抽取的级联解码联合学习框架 论文解读
事件抽取(Event extraction, EE)是一项重要的信息抽取任务,旨在抽取文本中的事件信息。现有方法大多假设事件出现在句子中没有重叠,这不适用于复杂的重叠事件抽取。
264 0
|
机器学习/深度学习 算法 知识图谱
【论文速递】ACL 2020 - 一种用于关系三元组抽取的级联二元标记框架
从非结构化文本中抽取关系三元组对于大规模知识图构建至关重要。然而,现有的工作很少能解决重叠三元组问题,即同一句子中的多个关系三元组共享相同的实体。
154 0
|
JSON 算法 数据格式
优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注
可以看到cv2.findContours()函数可以将目标的所有边界点都进行导出来,但是他的点存在一个问题,太过密集,如果我们想将语义分割的结果重新导出成labelme格式的json文件进行修正时,这就会存在点太密集没有办法进行修改,这里展示一个示例:没有对导出的结果进行修正,在labelme中的效果图。
205 0
|
数据采集 机器学习/深度学习 自然语言处理
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
195 0
|
存储
Seurat 对象添加任意低维嵌入数据
本文分享了一种将任意来源的低维嵌入数据添加到 Seurat reductions数据槽中的实现方法
201 0
下一篇
无影云桌面