数据分析-深度学习 NLP Day3句法分析

news2024/9/22 9:42:41

第六章句法分析

在本章中,你将学到与句法分析相关的一些算法和技术 。 很多技术手段可以用来实 现句法分析,包括基于规则的和基于统计的,在本章中读者将会了解其基本原理和使用方法 。

本章要点主要如下:

句法分析及其难点

句法分析相关数据和技术

基于 Stanford Parser 的句法分析实战

6.1 句法分析概述

在自然语言处理中,机器翻译是一个重要的课题,也是 NLP 应用的主要领域,而句 法分析是机器翻译的核心数据结构。 句法分析是自然语言处理的核心技术,是对语言进 行深层次理解的基石 。 句法分析的主要任务是识别出句子所包含的句法成分以及这些成 分之间的关系,一般以句法树来表示句法分析的结果。 从 20 世纪 50 年代初机器翻译课 题被提出时算起,自然语言处理研究已经有 60 余年的历史,句法分析一直是自然语言处 理前进的巨大障碍 。 句法分析主要有以下两个难点:

歧义 。 自然语言区别于人工语言的一个重要特点就是它存在大量的歧义现象。 人 类自身可以依靠大量的先验知识有效地消除各种歧义,而机器由于在知识表示和 获取方面存在严重不足,很难像人类那样进行句法消歧 。

搜索空间 。 句法分析是一个极为复杂的任务,候选树个数随句子增多呈指数级增 长,搜索空间巨大。 因此,必须设计出合适的解码器,以确保能够在可以容忍的 时间内搜索到模型定义最优解 。

句法分析( Parsing ) 是从单词串得到句法结构的过程,而实现该过程的工具或程序 被称为句法分析器( Parser ) 。 句法分析的种类很多,这里我们根据其侧重目标将其分为 完全句法分析和局部句法分析两种。 两者的差别在于,完全句法分析以获取整个句子的 句法结构为目的;而局部句法分析只关注于局部的一些成分,例如常用的依存句法分析 就是一种局部分析方法 。

句法分析中所用方法可以简单地分为基于规则的方法和基于统计 的方法两大类 。 基 于规则 的方法在处理大规模真实文本时,会存在语法规则 覆盖有 限、系统可迁移差等 缺陷 。 随着大规模标注树库的建立,基于统计学习模型的句法分析方法开始兴起,句 法分析器的性能不断提高,最典型的就是风靡于 20 世纪 70 年代的 PCFG ( Probabil istic Context Free Grammar ),它在句法分析领域得到了极大的应用,也是现在句法分析中常 用的方法 。 统计句法分析模型本质是一套面向候选树的评价方法,其会给正确的句法树 赋予一个较高的分值,而给不合理的句法树赋予一个较低的分值,这样就可以借用候选 句法树的分值进行消歧。 在本章中,我们将着重于基于统计的句法分析方法(简称统计 分析方法)的介绍 。

6.2 句法分析的数据集与评测方法

6.2.1 句法分析的数据集

统计学习方法多需要语料,数据的支撑,统计句法分析也不例外 。 相较于分词或词性 标注,句法分析的数据集要复杂很多,其是一种树形的标注结构,因此又称树库 。 图 6 - 1 所示是一个典型的句法树 。

目前使用最多的树库来自美国宾夕法尼亚大学加工 的英文宾州树库( Penn TreeBank, PTB ) 。 PTB 的前身为 ATIS ( Air Travel Information System ) 和 WSJ ( Wall Street Journa ) 树库, 具有较高 的一致性和标注准确率。

中文树库建设较晚 ,比较著名 的有中文宾州树库 ( Chinese TreeBank, CTB ) 、清华 树库( Tsinghua Chinese TreeBank, TCT )、台湾中研院树库 。 其 中 CTB 是宾夕法尼亚大 学标注 的汉语句法树库, 也是 目前绝大多数 的中文句法分析研究的基准语料库 。 TCT 是 清华大学计算机系智能技术与系统国家重点实验室人员从汉语平衡语料库中提取出 100 万规模的汉字语料文本,经过自动句法分析和人工校对,形成的高质量的标注有完整句 法结构的中文句法树语料库 。 Sinica TreeBank 是 中国台 湾 中研院词库小组从中研院平衡 语料库中抽取句子,经过电脑自动分析成句法树,并加以人工修改 、 检验后所得的成果 。

不同的树库有着不同的标记体系 使用时切忌使用一种树库的句法分析器,然后用其他树库的标记体系来解释。 由于树库众多,这里不再讲述具体每一种树库的标记规范,图 6 -2 所示为清华树库的部分标记集 。

6.2.2 句法分析的评测方法

句法分析评测的主要任务是评测句法分析器生成的树结构与于工标注的树结构之间 的相似程度 。 其主要考虑两方面的性能:满意度和效率。 其 中满意度是指测试句法分析 器是否适合或胜任某个特定的自然语言处理任务;而效率主要用于对 比句法分析器的运行时间 。

目前主流的句法分析评测方法是 PARSEVAL 评测体系,它是一种粒度比较适中、较 为理想的评价方法,主要指标有准确率、召回率、交叉括号数。 准确率表示分析正确的 短语个数在句法分析结果中所占的比例, ~fl 分析结果中与标准句法树中相匹配的短语个 数占分析结果中所有短语个数的比例。 召回率表示分析得到的正确短语个数占标准分析 树全部短语个数的比例 。 交叉括号表示分析得到的某一个短语的覆盖范围与标准句法分 析结果的某个短语的覆盖范围存在重叠又不存在包含关系, 即构成了 一个交叉括号 。

6.3 句法分析的常用方法

相较于词法分析(分词 、 词性标注或命名实体识别等),句法分析成熟度要低上不少 。 为此 ,学者们投入了大量精力进行探索,他们基于不同的语法形式,提 出了各种不同的 算法。 在这些算法中,以短语结构树为目标的句法分析器目前研究得最为彻底,应用也最为广泛,与很多其他形式语法对应的句法分析器都能通过对短语结构语法(特别是上 下文元关文法)的改造而得到 。 因此,本节将主要介绍基于上下文无关文法的句法分析。 这里需要强调的是,因为本书是 NLP 入门实践书籍,而句法分析又属于 NLP 中较为高 阶的问题,故本节不会深陷算法的细节中 。 读者了解这些算法即可,重要的是能够在后 面的实践环节中使用起来 。

6.3.1 基于 PCFG 的句法分析

PCFG ( Probabilistic Context Free Grammar ) 是基于概率的短语结构分析方法,是目 前研究最为充分、形式最为简单的统计句法分析模型,也可以认为是规则方法与统计方 法的结合 。

PCFG 是上下文无关文法的扩展,是一种生成式 的方法,其短语结构文法可以表示 为一个五元组 ( X, V, S, R , P ):

X 是一个有限词汇的集合(词典),它的元素称为词汇或终结符。

V是一个有 限标注的集合,称为非终结符集合 。

S 称为文法的开始符号,其包含于 Y, 即 S∈Y。

R 是有序偶对 ( α,β)的集合, 也就是产生的规则集 。

P 代表每个产生规则的统计概率。

PCFG 可以解决以下问题:

基于 PCFG 可以计算分析树的概率值。

若一个句子有多个分析树,可以依据概率值对所有的分析树进行排序 。

PCFG 可以用来进行句法排歧,面对多个分析结果选择概率值最大的 。

如果把→看作一个运算符, PCFG 可以写成如下的形式:

形式 : A → α, P

约束:ΣαP(A → α)

下面根据一个例子来看 PCFG 求解最优句法树的过程 。 有一个规则集,内容如下:

给定句子 S : astronomers saw stars with ears ,得到两个句法树,如图 6-3 所示 。

计算两棵句法树的概率如下 :

因此选择 Tl 作为最终的句法树 。根据上述例子,我们很自然想到关于 PCFG 的三个基本问题。

给定上下文无关文法 G ,如何计算句子 S 的概率,即计算 P(SIG)?

给定上下文无关文法 G 以及句子 S ,如何选择最佳的句法树,即计算 arg maxtP(T/S, G) ?

如何为文法规则选择参数,使得训练句子的概率最大,即计算 arg maxg P(SIG)?

可以使用内向算法和外向算法解决第一个问题,使用 Viterbi 算法解决第二个问题, 使用 EM 算法解决第三个问题。

作为目前最成功的基于语法驱动 的统计句法分析方法, PCFG 衍生 出了各种形式的 算法,包括基于单纯 PCFG 的句法分析方法、基于词汇化的 PCFG 的句法分析方法、基 于子类划分 PCFG 的句法分析方法等。 这些方法各有千秋,使用时可根据具体效果进行选择。

6.3.2 基于最大间隔马尔可夫网络的句法分析

最大间隔是 SVM (支持向量机)中的重要理论,而马尔可夫网络是概率图模型中 一种具备一定结构处理关系 能力的算法。 最大间隔马尔可夫网络( Max - Margin Markov Networks )就是这两者的结合,能够解决复杂的结构化预测问题,尤为适合用于句法分 析任务 。 这是一种判别式的句法分析方法,通过丰富特征来消解分析过程中产生的歧义 。 其判别函数采用如下形式:

类似 SVM 算法,最大 间 隔马尔可夫网络要实现多元分类,可以采用多个独立而且可以并行训练的二分类器来代替 。 这样,每个二分类器识别一个短语标记,通过组合这些分类器就能完成句法分析任务,同时也能通过并行方式,大大提升训练速度 。

6.3.3 基于 CRF 的句法分析

当将句法分析作为序列标注 问题来解决时,同样可以采用条件随机场( CRF )模型 。 该方法在第 4 章中已 做详细介绍,因此这里不再展开,读者将标注序列做相应变换,然 后参照第 4 章实战环节进行即可 。

与前面 PCFG 的模型相比,采用 CRF 模型进行句法分析,主要不同点在于概率计算 方法和概率归一化的方式 。 C盯模型最大化的是句法树的条件概率值而不是联合概率值, 并且对概率进行归一化。

同 基于最大间隔马尔可夫网络的句法分析一样,基于 CRF 的句法分析也是一种判别 式的方法,需要融合大量的特征 。

6.3.4 基于移进一归约的句法分析模型

移进一归约方法( Shift - Reduce Algorithm )是一种自下而上的方法。 其从输人串开 始,逐步进行“归约”,直至归约到文法的开始符号 。 移进-归约算法类似于下推自动机 的 LR 分析法,其操作的基本数据结构是堆钱。

移进一归约算法主要涉及四种操作(这里符号 S 表示句法树的根节点) 。

移进:从句子左端将一个终结构:移到战顶。

归约:根据规则,将楼顶的若干个字符替换为一个符号 。

接受 : 句子中所有词语都已移进战中,且校中只剩下一个符号 S ,分析成功,结束 。

拒绝:句子中所有词语都已移进校中,校中并非只有一个符号 S ,也无法进行任何归约操作,分析失败,结束 。

以“我是元首”这句话为例,演示采用移进一归约的 流程 。 其对应的句法树如图 6-4 所示 。 句法树 的数据表示为“( S (IP (NP (PN 我) )(VP (VC 是) (NP ( NN 元首) ))))”,对其的操作如表 6 -1 所示

基于移进-归约的句法分析通常会出 现冲 突情况,一种是既可以移进又 可以规约, 还有一种是可以采用不同的规则进行规约。一般可通过引人规则、引入上下文以及缓冲 区等方式进行改进。 基于移进一规约的句法分析应用于中文时,其对词性非常敏感,常 常需要和准确度较高的词性标注工具一块使用。

6.4 使用 Stanford Parser 的 PCFG 算法进行句法分析

前面介绍了 多种句法分析方法 , 本节我们将 采用 Stanford Parser 来具体演示 当 下最 流行的 基 于 PCFG 的句 法分析方法。 首先介绍 Stanford Parser 基本情况和其安装方法, 然后使用其进行中文句法分析的句法树展示 。

6.4. 1 Stanford Parser

Stanford Parser 是斯坦福大学自然语言小组开发的开源句法分析器,是基于概率统计 句法分析的一个 Java 实现。 该句法分析器目前提供了 5 个中 文文法 的实现。

Stanford Parser 主要有以下优点 :

既是一个高度优化的概率上下文无关文法和词汇化依存分析器,又是一个词汇化 上下文无关文法分析器。

以 权威的宾州树库作为分析器的训练数据,支持多语言。 目前已经支持英文、中文、德文、阿拉伯文、 意大利文、保加利亚文、葡萄牙文等语种。

提供了 多样化的分析输出形式,除句法分析树输出外,还支持分词和词性标注、短语结构、依存关系等输出

内 置了分词、词性标注 、 基于自定义树库的分析器训练等辅助工作 。

支持多种平台,并封装了多种常用语言的接口,如 Java 、 Python 、 PHP 、 Ruby 、C # 等

这里我们主要使用 Stanford Parser 的 Python 接口 。 由于该句法分析器底层是 由 Java 实现,因此使用时需要确保安装 JDK 。 截至本书完稿时,最新的 Stanford Parser 版本为 3.8.0 ,对 JDK 的 要求是 1.8 及以 上 。 关于 JDK 的 安装, 网上教程众多 ,这里不再展开 。 需要注意 的是, 读者在安装 JDK 后,需要配置环境变量 中的 JAVA HOME 。

Stanford Pars er 的 Python 封装是在 nltk 库中实现的,因此需要先安装 nltk 库 。 nltk 库是一款 Python 的 自然语言处理工具,但是其主要针对英文 , 对中文的支持较差 ,因此本书未做展开叙述 。 读者可通过“ pip install nltk ”来进行安装,我们主要使用 nltk.par se 中的 Stanford 模块。

接下来,需要下载 Stanford Parser 的 jar 包,主要有两个:“an ford -p arser.jar 和 stanford-parser-3 . 8 .0 -models .j ar 。 在 Stanford Parser 3.8.0 官方版本中已经内置了中文句法 分析的一些算法,读者若在程序运行时出现缺失算法包问题,下载中文包替换即可 。官方下载地址 ,下载相应文件,进行解压,即可在目录下找到上面所述的 jar 包文件。

6.4.2 基于 PCFG 的中文句法分析实战

在本节,我们将对‘他骑自行车去了菜市场 。”这句话进行句法分析以及可视化操作 。

在 Stanford Parser 相关依赖安装完以及 jar 包获得后,即可进行实战之旅 。

首先进行分词处理,这里我们采用 Jieba 分词,代码如下 :

# 分词
import jieba
string = '他骑自行车去了菜市场。'
seg_list = jieba.cut(string, cut_all=False, HMM=True)
#空格切分后再拼接成字符串,因为stanford parse的句法分析器接收的输入是分词完后空格隔开的句子
seg_str = ' '.join(seg_list)
print(seg_str)

分词结果:他 骑 自行车 去 了 菜市场 。

下面使用pcfg进行句法分析:

#coding=utf-8

# 分词
import jieba

# PCFG句法分析
from nltk.parse import stanford
import os

if __name__ == '__main__':
    #1.首先进行分词
    string = '他骑自行车去了菜市场。'
    seg_list = jieba.cut(string, cut_all=False, HMM=True)
    #空格切分后再拼接成字符串,因为stanford parse的句法分析器接收的输入是分词完后空格隔开的句子
    seg_str = ' '.join(seg_list)
    print(seg_str)
    
    #2.采用中文PCEG算法进行句法分析
    root = './'#当前目录下,./当前目录,../父级目录,/根目录
    parser_path = root + 'stanford-parser.jar'
    model_path =  root + 'stanford-parser-3.9.2-models.jar'

    # 指定JDK路径
    if not os.environ.get('JAVA_HOME'):#判断系统环境变量
        JAVA_HOME = 'F:\java\jdk'
        os.environ['JAVA_HOME'] = JAVA_HOME

    # PCFG模型路径,模型通过stanford-parser-3.9.2-models.jar包解压
    pcfg_path = 'stanford-parser-3.9.2-models/edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz'

    parser = stanford.StanfordParser(
        path_to_jar=parser_path,
        path_to_models_jar=model_path,
        model_path=pcfg_path
    )

    sentence = parser.raw_parse(seg_str)
    for line in sentence:
        print(line.leaves())
        line.draw()

在代码 Stanford Parser 中 , 我们使用了 3 个 参数 , 其中 path_to _jar 传 人的是 Stanford Parser 的 jar 包, model_path 传人的是其训 练好的模型 jar 包,这两个 jar 包都是 前面下载的 。 第三个参数 model_path 传入的是需要调用的句法分析算法的 java class 路 径,读者可解压 jar 包查看算法路径 ,可看到支持的算法如图 6 -5 所示,里面包括了各种 语言 的句法分析算法 。 使用时需要注意的是 ,传入路径 时,应尽量按照本文 的方式进行组织,将依赖的 jar 包放置在工作目 录下 。 此外, 若系统未设置 JAVA_HOME 变量,需要在代码中指定。

运行结果:

使用pcfg句法分析产生的树形结构:

6.5 本章小结

句法分析是 NLP 任务中非常重要的一环, 一些涉及语义层面的应用也需要其支撑 。 本章主要介绍了句法分析的常用算法以及句法分析中常用的数据集和评测方法,并结合 Stanford Parser 演示 了采用 PCFG 算法进行句法分析的过程 。 这里需要指出的是,相较于 词法分析(分词 、 词性标注和命名实体识别等 ),句法分析算法实 际性能离真正实用化还 有不小的距离, 主要原因 在于 , 在语言学理论和实际的自 然语言应用之间存在着巨大的 差距。

在实践中,句法分析常常通过结合-定 的规则来辅助解决一些任务 。 如模板解析类 的任务,可以通过句法分析进行语义标注,提取其中的一些主谓宾关系 ,然后通过规则 模板标出 重要的角色信息和行为 。

句法分析的方法远不止本章介绍的这几种,感兴趣的读者可以查找相关资料以进一 步探索和研究 。

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

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

相关文章

高分子PEG,Biotin-PEG-amine,Biotin-PEG-NH2,生物素-聚乙二醇-氨基

Biotin-PEG-amine, Biotin-PEG-NH2 | 生物素-聚乙二醇-氨基 | CAS:N/A | 纯度:95%一、试剂信息:CAS号:N/A外观:固体/粉末分子量:1K、2K、5K、3.4K、10K、20K溶解性:溶于有机溶剂&…

WebRTC GCC拥塞控制算法详解

1、WebRTC版本m742、GCC的概念GCC全称Google Congest Control,所谓拥塞控制,就是控制数据发送的速率避免网络的拥塞。可以对比TCP的拥塞控制算法,由于WebRTC使用基于UDP的RTP来传输媒体数据,需要一个拥塞控制算法来保证基本的Qos。…

SLM27211 集成自举二极管的4A,120V高低边栅极驱动器

SLM27211是一款集成了自举二极管的120V的耐压的,支持高频率大电流(4A)输出的栅极驱动器。可以缩短栅极电压上升时间、下降时间。它可以在8V至20V下驱动高低MOSFET。产品以集新技术、新工艺、新成果为一体,可安全高效地应用于多类模…

【音视频安卓开发 (十一)】jni基础

要使用jni开发需要包含jni.h头文件JNIEXPORT JNI : 是一个关键字,不能少(编译能通过),标记为该方法可以被外部调用jstring : 代表java中的stringJNICALL: 也是一个关键字,可以少的jni callJNIENV : 这是c和java相互调用…

学习笔记-架构的演进之服务容错策略设计模式-3月day02

文章目录前言断路器模式舱壁隔离模式重试模式总结附前言 容错设计模式,指的是“要实现某种容错策略,我们该如何去做”。微服务中常见的设计模式包括断路器模式、舱壁隔离模式和超时重试模式等,另外还有流量控制模式等。 断路器模式 断路器…

VSCode——SSH免密登录

文章目录本地PC端(一般为Windows)1. 检查自己是否已经生成公钥2. 配置VScode的SSH config远程服务器端1. 服务器新建授权文件2. 赋权限3. 重启远程服务器的ssh服务最全步骤:【设置ssh免密不起作用?彻底搞懂密钥】vscode在remote S…

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)1. 先导文章——关于行过滤 和 列截取2. 关于单个统计单词个数2.1 grep2.2 wc3. 统计文档中每个关键词出现的次数3.1 先看文档内容 需求3.1.1 文档内容3.1.2 需求…

系列十、锁

一、概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问…

热烈祝贺|济南市时代酒具盛装亮相2023中国(山东)精酿啤酒产业发展创新论坛暨展览会

济南市时代酒具制造股份有限公司成立于2010年,注册资金600万,员工100余人,占地30余亩,是山东省济南市一家专业的塑料产品生产厂家。主营酒塔、分酒器、混饮塔、果汁塔、橡木桶等系列酒具。经过十余年的发展,公司组建了…

201_DMA-BUF简单简介

一、DMA-BUF等概念的介绍 首先需要明确DMA-BUF,Dma buffer,ION和DMA-BUF Heap是不同的概念。 在Android 多媒体系统中为了减少因不同进程之间内存的多次拷贝而产生的不必要的开销,最直接的想法是希望跟硬件设备进行交互的应用能有一个内存能…

离线安装samba与配置(.tar方式安装)

一、samba离线安装【安装并设置成功后,相关文件及其位置:①smbd:/usr/local/samba/sbin/smbd②nmdb:/usr/local/samba/sbin/nmbd③配置文件 smb.conf:/usr/local/samba/lib/smb.conf④添加用户的 smbpasswd 文件&#…

Java并发简介(什么是并发)

文章目录并发概念并发和并行同步和异步阻塞和非阻塞进程和线程竞态条件和临界区管程并发的特点提升资源利用率程序响应更快并发的问题安全性问题缓存导致的可见性问题线程切换带来的原子性问题编译优化带来的有序性问题保证并发安全的思路互斥同步(阻塞同步&#xf…

Delphi 中 FireDAC 数据库连接(处理错误)

参见:Delphi 中 FireDAC 数据库连接(总览)本主题描述了如何用FireDAC处理数据库错误。一、概述EFDDBEngineException类是所有DBMS异常的基类。单个异常对象是一个数据库错误的集合,可以通过EFDDBEngineException.Errors[]属性访问…

第十届蓝桥杯省赛——6旋转(二维数组,找规律)

题目:试题 F: 旋转时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分【问题描述】图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时针旋转 90 度。我们用一个 n m 的二维数组来表示一个图片,例如下面…

什么是项目管理资格认证

项目管理资格认证是项目管理协会(PMI)在全球范围内推出的针对项目经理的资格认证体系,包括项目管理专业人士(PMP)认证、PMI敏捷管理专业人士(PMI-ACP)认证、PMI商业分析专业人士(PMI-PBA)认证、项目集管理专业人士&…

驱动器,DRV10975ZRHFR原理图DRV83055QPHPRQ1规格参数

DRV10975器件是一款具有集成功率MOSFET的三相无传感器电机驱动器,可提供高达1.5A的持续驱动电流。该器件专为成本敏感型、低噪声、低外部组件数量应用而设计。DRV10975(明佳达电子)DRV10975ZRHFR IC MTR DRV MULTPHS 6.5-18V 24QFN电机类型 -…

拿下3个大厂offer的软件测试面试宝典,面试一文搞定

我是谁、工作几年、你上家公司做什么、负责什么、你的优势、为什么适合这个职位、我想做什么、在这个职位上想得到什么 【呕心沥血】耗时7天整理的金三银四必看的软件测试频面试题 涵盖 接口自动化测试框架面试题_哔哩哔哩_bilibili【呕心沥血】耗时7天整理的金三银四必看的软…

day26 员工薪水中位数

569. 员工薪水中位数 写一个SQL查询,找出每个公司的工资中位数。 以 任意顺序 返回结果表。 查询结果格式如下所示。 SQL:方法一 select id, company, salary from (selectid, company, salary,row_number() over(partition by company order by s…

aws batch 理解batch中的任务调度策略

参考资料 https://docs.amazonaws.cn/en_us/batch/latest/userguide/job_queue_parameters.html#job_queue_scheduling_policy https://docs.amazonaws.cn/en_us/batch/latest/userguide/scheduling-policies.html https://catalog.us-east-1.prod.workshops.aws/workshops/c…

【Python实战】快看:”又中奖了,中大奖了“周围的小伙伴都惊呆了~你还不麻溜滴~(代码版彩票小游戏上线啦)

导语 哈喽!北鼻们,晚上好。 夕阳🌇的第一缕阳光送给小可爱们~每天都要加油鸭! 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 彩票是一个恒古不…