当前位置: 首页 > news >正文

Pareidoscope - 语言结构关联工具

文章目录

    • 关于 Pareidoscope
    • 安装
    • 使用方法
      • 输入格式
        • 语料库
        • 查询
      • 将语料库转换为 SQLite3 数据库
      • 两种语言结构之间的关联
      • 简单词素分析
      • 关联共现和伴随词素分析
      • 相关的更大结构
        • 可视化关联结构


关于 Pareidoscope

Pareidoscope 是一组 用于确定任意语言结构之间 关联的工具,例如词语(搭配)、词语和结构(共构)或更大语言结构之间的关联。关于底层共现模型,参见 Proisl (2019)。

安装

Pareidoscope 可在 PyPI 上找到,并可以使用 pip 进行安装:

pip3 install Pareidoscope

或者,您可以下载并解压缩:最新版本 或克隆 Git 仓库:

git clone https://github.com/tsproisl/Pareidoscope.git

在新的目录中,运行以下命令:

python3 setup.py install

使用方法

输入格式

语料库

语料库可以提供两种不同的格式:CoNLL-U 格式或 CWB-treebank 格式。

CoNLL-U 是用于 Universal Dependencies 项目 (Nivre 等人,2016) CWB-treebank 语料库的格式。
格式在UD 文档中指定。以下是一个从文档中改编的示例:

1    他们     他们    PRON    PRP    _    2    nsubj    2:nsubj|4:nsubj    _
2    买      买     VERB    VBP    _    0    root     0:root             _
3    和      和     CONJ    CC     _    4    cc       4:cc               _
4    卖      卖     VERB    VBP    _    2    conj     0:root|2:conj      _
5    书      书    NOUN    NNS    _    2    obj      2:obj|4:obj        _
6    .        .       PUNCT   .      _    2    punct    2:punct            _

这里有十个制表符分隔的列。前五列是单词 ID、单词形式、词元、通用词性标签和语言特定的词性标签。第六列和第十列,在这个例子中为空,用于形态学特征和杂项注释。在第七列到第九列,编码了这个句子的依存分析。第七列和第八列编码了构成树所需的基本依存关系。第七列指示支配词的 ID,第八列指示支配词和当前词之间的依存关系类型。在第九列,可以表示一个增强的依存图,它不一定要是树形结构。

有关 CWB-treebank 格式的详细信息,请参阅Proisl 和 Uhrig (2012)。


查询

查询图可以以 NetworkX (Hagberg 等人,2008) 所理解的节点-链接格式提供的 JSON 序列化形式。所有命令行工具都可以操作多个查询,因此即使对于单个查询,也必须提供一个查询列表。以下是一个包含一个元素的列表的示例,该列表包含用于查找动词 give 的单调递减使用关联更大结构的查询图(更多示例查询在 doc 目录中提供):

[{"graph": {"description": "动词 give 的单调递减使用"},"nodes": [{"id": 0,"wc": "VERB","lemma": "give","focus_point": true,"not_outdep": ["iobj", "obl"]},{"id": 1}],"links": [{"source": 0,"target": 1,"relation": "obj"}]}
]

查询表示为具有两个必选键的字典:nodes 用于顶点,links 用于边。在 graph 键下,可以存储查询的描述等信息。查询图的顶点和边都表示为字典列表。边通过其源和目标顶点的 ID 以及可选的依赖关系类型来指定。顶点必须具有 ID,并且可以具有其他可选属性。

可以用于顶点的属性取决于查询的类型。以下属性始终可以使用:wordposlemmawcrootnot_indep(一个列表)、not_outdep(一个列表)。前五个属性也可以通过在它们前面加 not_ 来否定,例如 "not_wc": "NOUN" 表示顶点不应为名词。

对于使用 pareidoscope_association_strength 确定两个结构之间的关联强度,可以使用以下附加属性。属性 query 必须用于每个顶点,并取值 ABAB。此属性指示顶点是否属于 GAGB 或两者都属于,即 GC。对于标记为 "query": "AB" 的顶点,可以使用可选的属性 only_Aonly_B。这些属性是列表,指示哪些其他属性仅适用于 GAGB。图的关注点顶点可以通过将 "focus_point": true 设置来标记。属性 only_Aonly_B 也可以用于边。

对于使用 pareidoscope_collexeme_analysis 进行简单的词素分析,必须将 collo_item 属性设置为 true 对于词素顶点。此顶点是自动的关注点。

对于使用 pareidoscope_covarying_collexemes 进行关系共现和共变词素分析,必须将两个词素顶点的 collo_Acollo_B 属性设置为 true。可以使用 focus_point 属性来标记关注点顶点。

对于使用 pareidoscope_associated_structures 查找关联的更大结构,可以通过将 "focus_point": true 设置来标记关注点顶点。


将语料库转换为 SQLite3 数据库

对于以下大多数程序,需要将您的语料库转换为 SQLite3 数据库。这可以显著加快高度选择性的查询;对于需要检查语料库中几乎每句话的非常一般的查询,这的影响较小。

CoNNL-U 或 CWB-treebank 格式的语料库可以使用 pareidoscope_corpus_to_sqlite 转换为 SQLite3 数据库。使用选项 -h 运行程序将输出包含详细使用信息的帮助消息。以下是一个示例,我们将转换训练部分的
英语通用依存句法语料库
(en-ud-train.conllu; 我们使用包含在 UD treebanks 2.0 版本 中的版本),它是 CoNLL-U 格式,并创建数据库 en-ud-train.db

pareidoscope_corpus_to_sqlite --db en-ud-train.db --format conllu en-ud-train.conllu

两种语言结构之间的关联

程序 pareidoscope_association_strength 确定两种语言结构之间的关联强度。

以下是一个关于双重及物动词与有定语的直接宾语共现的示例查询(此查询以及其他查询可以在查询文件 ex_association_two_structures.json 中找到):

[{"graph": {"description": "双重及物动词与有定语的直接宾语的共现"},"nodes": [{"id": 0,"wc": "VERB","query": "AB","focus_point": true},{"id": 1,"query": "A"},{"id": 2,"wc": "NOUN","query": "AB"},{"id": 3,"query": "B"}],"links": [{"source": 0,"target": 1,"relation": "iobj"},{"source": 0,"target": 2,"relation": "obj"},{"source": 2,"target": 3,"relation": "det"}]}
]

动词 “the” 和直接宾语是两种语言结构的一部分,因此被标记为 AB。间接宾语仅属于双重及物动词,标记为 A,而定语仅属于另一种语言结构,标记为 B。此外,动词被标记为焦点点顶点。

以下是调用程序的示例(使用 -h 选项获取详细使用信息):

pareidoscope_association_strength --format db -o associations en-ud-train.db ex_association_two_structures.json

在此示例中,我们在上面转换的语料库上运行 ex_association_two_structures.json 中指定的查询。选项 --format db 表示我们在 SQLite3 数据库上操作(此程序也可以直接在 CoNLL-U 或 CWB-treebank 格式的语料库文件上操作)。结果以制表符分隔的格式写入 associations.tsv,包含每个查询和每个计数方法的频率 O11, R1, C1N,不一致的数量以及三个关联度量(似然比、t-分数、Dice 系数)。


简单词素分析

程序 pareidoscope_collexeme_analysis 执行简单的词素分析,即它确定语言结构与给定结构槽中出现的词形或词根之间的关联强度。为此,必须在查询中用 "collo_item": true 标记 collo 项顶点。以下是一个示例查询(取自查询文件 ex_collexeme_analysis.json),用于找到与双宾语相关的动词:

[{"graph": {"description": "与双宾语相关的动词"},"nodes": [{"id": 0,"wc": "VERB","collo_item": true},{"id": 1},{"id": 2}],"links": [{"source": 0,"target": 1,"relation": "iobj"},{"source": 0,"target": 2,"relation": "obj"}]}
]

以下是调用程序的示例(使用 -h 选项获取详细使用信息):

pareidoscope_collexeme_analysis -o collexemes en-ud-train.db ex_collexeme_analysis.json

在这个示例中,我们在上述转换的语料库上运行 ex_collexeme_analysis.json 中指定的查询。程序接受可选的 -c 选项,我们可以指定 collo 项是词形还是词根(默认为后者)。

结果以制表符分隔的格式写入 collexemes.tsv,并包含每个查询和共现词根的频率 O11, R1, C1N 以及三个关联度量(对数似然、t-分数、Dice 系数)。
对于简单词素分析,四种计数方法中有三种是完全等价的。由于在这种情况下由于可能存在的大量不一致性,计算句子数量没有多少意义,所以我们不包括该计数方法。因此,我们不需要区分不同的计数方法,也不需要包括不一致性的字段。结果按对数似然排序。


关联共现和伴随词素分析

程序 pareidoscope_covarying_collexemes 执行伴随词素分析,对于由单个依存关系组成的语言结构,相当于分析关联共现。该程序确定在语言结构的两个槽位中共同出现的词形或词干之间的关联。为此,必须将这两个槽位标记为 "collo_A": true"collo_B": true 在查询中。以下是一个示例查询(从查询文件 ex_covarying_collexemes.json 中提取),该查询确定 into-因果关系中的动词之间的关联:

[{"graph": {"description": "Into-causative, i.e. verb someone into verbing"},"nodes": [{"id": 0,"wc": "VERB","collo_A": true},{"id": 1,"pos": "VBG","collo_B": true},{"id": 2},{"id": 3,"lemma": "into"}],"links": [{"source": 0,"target": 1,"relation": "advcl"},{"source": 0,"target": 2,"relation": "obj"},{"source": 1,"target": 3,"relation": "mark"}]}
]

以下是一个调用程序的示例(使用 -h 选项获取详细使用信息):

pareidoscope_covarying_collexemes -o covarying en-ud-train.db ex_covarying_collexemes.json

在这个例子中,我们在上述转换的语料库上运行 ex_covarying_collexemes.json 中指定的查询。程序接受一个可选选项 -c,其中我们可以指定共同出现的项目应该是词形还是词干(后者是默认值)。

结果写入 covarying.tsv,采用制表符分隔的格式,并包含每个查询的共现项目对和计数方法、频率 O11, R1, C1N、不一致的数量以及三个关联度量(对数似然、t-得分、Dice 系数)。结果按对数似然排序,以确定计数焦点。


相关的更大结构

程序 pareidoscope_associated_structures 确定与查询结构相关联的更大去词化语言结构。它考虑所有星形更大的结构,即所有新顶点都必须与查询顶点相邻的结构,这些结构与查询结构在至少 --min-coocc 句子(默认:5)中共同出现,并且顶点数最多为 --max-size(默认:7)。更大结构的顶点被去词化,并且只包含词类信息(wc 属性)。以下是一个查询示例,该查询寻找与动词 give 的单及物用法相关联的更大结构:

[{"graph": {"description": "动词 give 的单及物用法"},"nodes": [{"id": 0,"wc": "VERB","lemma": "give","focus_point": true,"not_outdep": ["iobj", "obl"]},{"id": 1}],"links": [{"source": 0,"target": 1,"relation": "obj"}]}
]

以下是调用程序的一个示例(使用选项 -h 获取详细使用信息):

pareidoscope_associated_structures -o assoc_struc en-ud-train.db ex_associated_structures.json

在此示例中,我们在上述转换后的语料库上运行 ex_associated_structures.json 中指定的查询。

结果以制表符分隔的格式写入 assoc_struc.tsv,并包含每个查询的相关更大结构和计数方法、频率 O11, R1, C1N,不一致的数量以及三个关联度量(对数似然比、t-得分、Dice 系数)。结果按对数似然比对计数焦点点进行排序。


可视化关联结构

pareidoscope_associated_structures 输出的关联较大结构以节点-链接格式呈现,与查询图相同,可以使用程序 pareidoscope_draw_graphs 进行可视化。请注意,这要求您的计算机上已安装 Graphviz 和 Python 包 pydot。

以下是如何调用程序的一个示例(使用选项 -h 获取详细的用法信息):

tail -n +2 assoc_struc.tsv | head | cut -f2 | pareidoscope_draw_graphs -o draw -

在这个示例中,我们使用上一个命令创建的输出文件,提取十个最强烈关联的较大结构(使用 GNU coreutils)并绘制它们。图像将写入 draw 目录。以下是为与单向传递性 give 最强烈关联的四个较大结构创建的可视化。

Rank 1


Rank 2


Rank 3


Rank 4


相关文章:

Pareidoscope - 语言结构关联工具

文章目录 关于 Pareidoscope安装使用方法输入格式语料库查询 将语料库转换为 SQLite3 数据库两种语言结构之间的关联简单词素分析关联共现和伴随词素分析相关的更大结构可视化关联结构 关于 Pareidoscope Pareidoscope 是一组 用于确定任意语言结构之间 关联的工具&#xff0c…...

GPT(Generative Pre-trained Transformer) 和 Transformer的比较

GPT(Generative Pre-trained Transformer) 和 Transformer 的比较 flyfish 1. Transformer 是一种模型架构 Transformer 是一种通用的神经网络架构,由 Vaswani 等人在论文 “Attention Is All You Need”(2017)中提…...

软件无线电(SDR)的架构及相关术语

今天简要介绍实现无线电系统调制和解调的主要方法,这在软件定义无线电(SDR)的背景下很重要。 外差和超外差 无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率(称为外差),而第二种超外差是通过两个调制阶段来实…...

Python将Excel文件转换为JSON文件

工作过程中,需要从 Excel 文件中读取数据,然后交给 Python 程序处理数据,中间需要把 Excel 文件读取出来转为 json 格式,再进行下一步数据处理。 这里我们使用pandas库,这是一个强大的数据分析工具,能够方便地读取和处理各种数据格式。需要注意的是还需要引入openpyxl库,…...

排序算法之选择排序篇

思想: 每次从未排序的部分找出最小的元素,将其放到已排序部分的末尾 从数据结构中找到最小值,放到第一位,放到最前面,之后再从剩下的元素中找出第二小的值放到第二位,以此类推。 实现思路: 遍…...

sizeof和strlen区分,(好多例子)

sizeof算字节大小 带\0 strlen算字符串长度 \0之前...

A050-基于spring boot物流管理系统设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...

[自然语言处理] NLP-RNN及其变体-干货

一、认识RNN模型 1 什么是RNN模型 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出. 一般单层神经网络结构: RNN单层网络结构: 以时间步对RNN进行展开后的单层…...

Elasticsearch ILM 索引生命周期管理讲解与实战

ES ILM 索引生命周期管理讲解与实战 Elasticsearch ILM索引生命周期管理:深度解析与实战演练1. 引言1.1 背景介绍1.2 研究意义2. ILM核心概念2.1 ILM的四个阶段2.1.1 Hot阶段2.1.2 Warm阶段2.1.3 Cold阶段2.1.4 Delete阶段3. ILM实战指南3.1 定义ILM策略3.1.1 创建ILM策略3.1.…...

重塑视频新语言,让每一帧都焕发新生——Video-Retalking,开启数字人沉浸式交流新纪元!

模型简介 Video-Retalking 模型是一种基于深度学习的视频再谈话技术,它通过分析视频中的音频和图像信息,实现视频角色口型、表情乃至肢体动作的精准控制与合成。这一技术的实现依赖于强大的技术架构和核心算法,特别是生成对抗网络&#xff0…...

联想Lenovo SR650服务器硬件监控指标解读

随着企业IT架构的复杂性和业务需求的增长,服务器的稳定运行变得至关重要。联想Lenovo SR650服务器以其高性能和稳定性,在各类应用场景中发挥着关键作用。为了保障服务器的稳定运行,监控易作为一款专业的IT基础设施监控软件,为联想…...

二十一、QT C++

1.1QT介绍 1.1.1 QT简介 Qt 是一个跨平台的应用程序和用户界面框架,用于开发图形用户界面(GUI)应用程序以及命令行工具。它最初由挪威的 Trolltech (奇趣科技)公司开发,现在由 Qt Company 维护&#xff…...

微服务上下线动态感知实现的技术解析

序言 随着微服务架构的广泛应用,服务的动态管理和监控变得尤为重要。在微服务架构中,服务的上下线是一个常见的操作,如何实时感知这些变化,确保系统的稳定性和可靠性,成为了一个关键技术挑战。本文将深入探讨微服务上…...

指针与引用错题汇总

int *p[3]; // 定义一个包含 3 个指向 int 的指针的数组int a 10, b 20, c 30; p[0] &a; // p[0] 指向 a p[1] &b; // p[1] 指向 b p[2] &c; // p[2] 指向 c // 访问指针所指向的值 printf("%d %d %d\n", *p[0], *p[1], *p[2]); // 输出: 10 20 30…...

短视频账号矩阵系统源码--独立saas技术部署

短视频矩阵系统通过多账号在多个平台上发布内容,形成一种网络效应。对于抖音平台而言,技术公司需具备特定接口权限方能进行开发工作。然而,视频发布及企业号评论与回复等功能的接口权限往往难以获取。通过构建抖音账号矩阵,利用多…...

leaflet 介绍

目录 一、leaflet 官网 二、leaflet 在项目中的引用 1、在head中引入 2、在main.js中引入 leaflet目前版本是1.9.4,在leaflet插件库中,很多插件因长时间未更新,适配的是1.7版本的,在选用插件的时候要查看版本适配。 leaflet详…...

总结贴:Servlet过滤器、MVC拦截器

一:Servlet过滤器 1.1解析 Filter 即为过滤,用于请求到达Servlet之前(Request),以及再Servlet方法执行完之后返回客户端进行后处理(HttpServletResponse)。简单说就是对请求进行预处理,对响应进行后处理 在请求到达Servlet之前,可以经过多个Filt…...

鸿蒙开发:自定义一个任意位置弹出的Dialog

前言 鸿蒙开发中,一直有个问题困扰着自己,想必也困扰着大多数开发者,那就是,系统提供的dialog自定义弹窗,无法实现在任意位置进行弹出,仅限于CustomDialog和Component struct的成员变量,这就导致…...

在Windows下编译支持https的wsdl2h

下载源码 在官网下载源码 安装Openssl 下载OpenSSL并安装,安装完成后需要将OpenSSL的路径添加到环境变量中 配置VS 1、打开工程 2、因为前面安装的OpenSLL是64位的,因此需要创建一个X64的配置 打开配置管理器,然后选择新建&#xff0…...

PHP和GD库如何根据像素绘制图形

使用PHP和GD库,你可以根据像素绘制各种图形,比如点、线、矩形、圆形等。GD库是PHP的一个扩展,它提供了一系列用于创建和处理图像的函数。以下是一个简单的示例,展示如何使用GD库根据像素绘制图形。 安装GD库 首先,确…...

webpack(react)基本构建

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。它的主要功能是将各种资源(如 JavaScript、CSS、图片等)视为模块,并将它们打包成一个或多个输出文件,以便…...

《Opencv》基础操作<1>

目录 一、Opencv简介 主要特点: 应用领域: 二、基础操作 1、模块导入 2、图片的读取和显示 (1)、读取 (2)、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…...

Oracle 11g R2 RAC 到单实例 Data Guard 搭建(RMAN备份方式)

一、配置方案 环境说明 角色主库主库备库主机名rac01rac02racdg公网IP10.10.10.14110.10.10.14310.10.10.191VIP10.10.10.14210.10.10.144-SCAN10.10.10.14010.10.10.140-INSTANCE_NAMEorcl1orcl2orclDB_NAMEorclorclorclSERVICE_NAMEorclorclorclDB_UNIQUE_NAMEorclorclorcl…...

HTTPS 加密

HTTPS 加密技术 1. HTTPS 概述 HTTPS(HyperText Transfer Protocol Secure)是 HTTP 协议的安全版本,利用 SSL/TLS 协议对通信进行加密,确保数据的机密性、完整性和身份认证。HTTPS 在保护敏感数据的传输(如登录凭证、…...

泛微e9开发 编写前端请求后端接口方法以及编写后端接口

泛微e9开发 前端请求后端接口以及后端发布接口 前端请求后端接口 前端发起get请求 fetch(/api/youpath, {method: GET, // 默认 GET 方法,可以省略headers: {Content-Type: application/json, // 通常 GET 请求无需指定 body,Content-Type 不太重要},…...

Linux —— 《线程控制》

文章目录 前言:为什么要链接pthread库?线程控制:线程创建:start_routine?传递自定义类型同一份栈空间? 线程等待:返回值与参数?创建多线程 线程终止线程分离 前言: 上一文我们学习…...

基于HTML+CSS的房地产销售网站设计与实现

摘 要 房地产销售系统,在二十年来互联网时代下有着巨大的意义,随着互联网不断的发展扩大,一个方便直 观的房地产管理系统的网站开发是多么地有意义,不仅打破了传统的线下看房,线下获取资讯,也给房地产从业…...

操作系统 | 学习笔记 | 王道 | 2.4死锁

2.4 死锁 文章目录 2.4 死锁2.4.1 死锁的概念2.4.2 死锁预防2.4.3 死锁避免2.4.4 死锁检测和解除 2.4.1 死锁的概念 死锁的定义 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象&am…...

【FPGA开发】Vivado自定义封装IP核,绑定总线

支持单个文件的封装、整个工程的封装,这里用单个文件举例。 在文件工程目录下,自建一个文件夹,里面放上需要封装的verilog文件。 选择第三个,指定路径封装,找到文件所在目录 取个名,选择封装IP的路径 会…...

python的3D可视化库vedo-3 (visual模块)点对象的属性、光效、附注

文章目录 3 PointsVisual的方法3.1 对象属性3.1.1 顶点大小3.1.2 复制属性3.1.3 颜色设置3.1.4透明度设置 3.2 对象光效3.2.1 点的形状3.2.2 点的表面光效 3.3 尾随线和投影3.3.1 尾随线3.3.2 投影 3.4 给对象附加文字说明3.4.1 标注3.4.2 2D标注3.4.3 气泡说明3.4.4 旗标说明3…...

的网站建设/在线的crm系统软件

文章目录0、打包配置(Artifacts)1、tomcat 的使用2、配置注释模板3、配置快捷键模板0、打包配置(Artifacts) Project -> Structure -> Artifacts 1、tomcat 的使用 1.在下拉列表中,点击Edit Configuration […...

东莞网站建设推广公司/优秀软文案例

mac下所有vim的配色方案的样式。 下面讲解如何设置这些好看的配色 首先:在终端输入 vim ~/.bash_profile 查看是否有上面提到的某些配色,所有配色均是以.vim结束的,果有的话,再输入: $ cd ~/ 到用户主目录,…...

csdn 博客 wordpress/百度广告投放价格表

概述在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,我们还需要用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有…...

太原做网站的鸣蝉公司/网页百度网盘

来源:http://www.open-open.com/news/view/102a2de 特性一:正则表达式 相信大家都会非常喜欢这个特性,无须服务器端的检测,使用浏览器的本地功能就可以帮助你判断电子邮件的格式,URL,或者是电话格式&#x…...

wordpress文章末尾显示tag标签/厦门谷歌seo公司

最近切换了新的收银系统,机器还是老机器,还好没啥问题可以正常使用。调试完成后 收银、微支付都挺正常,于是收拾东西回家了。第二天一早顾客发现网络用不了,远程看下ip地址改了,重新设置下又可以了。当时没放在心上&am…...

成都市网站建设公司/网络营销的盈利模式

参数传递:将主程序变量传递给子例程形式参数传递类型值传:子例程中参数变量的值的改变,不影响外部程序实际变量的值. DATA:A TYPE I VALUE 3,B TYPE I VALUE 6,C TYPE I. WRITE:A,A,B,B,C,C. PERFORM ADD USING A B CHANGING C. WRITE:/ SY-…...