一种句法树结构的汉语文本生成方法技术

技术编号:38597801 阅读:10 留言:0更新日期:2023-08-26 23:33
本发明专利技术公开了一种句法树结构的汉语文本生成方法,包括:1、创建树形频度记录表,将语料库中的单字顺序作为表第一层;2、统计树形统计表每层中元素之间的相邻情况的频度,以统计频度为参考,将元素合并,并加入下一层;3、创建一个空的二叉树结构,根据频度记录表对二叉树中的空结点进行扩展操作;4、通过扩展操作让生成二叉树不再存在空结点,将根节点的取值作为文本生成结果。本发明专利技术能以特殊的网络结构减少模型拟合的时间和空间成本,并通过较低的算力消耗、较少的语料库规模,以及若干关键词来完成长篇自然语言的生成。长篇自然语言的生成。长篇自然语言的生成。

【技术实现步骤摘要】
一种句法树结构的汉语文本生成方法


[0001]本专利技术属于自然语言处理领域,具体的说是一种句法树结构的汉语文本生成方法。

技术介绍

[0002]伴随着互联网技术和电子技术的发展,智能文本生成的技术在教育领域、新闻领域逐渐得到应用,现有技术通常采用大规模语言模型来完成文本生成,对算力要求大,仅能在线提供服务,有较高的使用成本。这极大限制了智能写作在日常生活中的应用发展。

技术实现思路

[0003]本专利技术是为了解决上述现有技术存在的不足之处,提出一种句法树结构的汉语文本生成方法,以期能以特殊的网络结构减少模型拟合的时间和空间成本,以较低的算力消耗、较少的语料库规模,以及若干关键词来完成长篇自然语言的生成。
[0004]本专利技术为达到上述专利技术目的,采用如下技术方案:
[0005]本专利技术一种句法树结构的汉语文本生成方法的特点在于,是按如下步骤进行:
[0006]步骤1、获取大量短文本作为语料库,并对语料库中的每个短文本进行数据清洗后,将所有短文本中的汉字单字按语序顺序排列成一行汉字序列,记为C=(c1,c2,

,c
h
,

,c
cn
),其中,c
h
表示第h个汉字,h∈[1,cn],cn表示语料库中的汉字总量;
[0007]定义变量p,并初始化p=0;
[0008]定义第p个记录表其中,表示第p个记录表W
(p)
中的第i项,k
(p)r/>表示第p个记录表W
(p)
的长度,并初始化k
(p)
=cn;初始化
[0009]步骤2、创建滑动窗口K,令所述滑动窗口K的长度为1;
[0010]创建树形频度记录表S=(S0,S1,S2…
,S
j
,

,S
n
),其中,S
j
表示记录表S中的第j层,S0表示记录表S的底层,即叶子结点所在层,S
n
表示记录表S的顶层,即根结点所在层;
[0011]创建索引表S',用于记录加入记录表S的结点的父节点,并初始化S'为空;
[0012]步骤3、将滑动窗口K置于第p个记录表W
(p)
的起始端,从开始向移动;
[0013]初始化i=1;
[0014]步骤4、判断滑动窗口K所包含是否存在于第p层S
p
中;
[0015]若不存在,则将作为第p层S
p
的新结点并添加到第p层S
p
中,将的频度作为第p层的新结点的取值;
[0016]若存在,则利用式(1)更新的频度
[0017][0018]式(1)中,当p=0时,代表在语料库中的出现次数;当p>0时,代表第i项和第i+1项的组合项在语料库中的出现次数;
[0019]步骤5、若i=k
(p)
,则表示滑动窗口K完成移动,并对第p层S
p
所有结点的频度进行均值归一化处理,得到归一化后的频度,记为其中,表示归一化后的第p层S
p
中的频度,且否则,将i+1赋值给i后,返回步骤4顺序执行;
[0020]步骤6、令滑动窗口K的长度为2,并将p+1赋值给p;
[0021]将滑动窗口K置于第p

1个记录表W
(p

1)
的起始端,并从第p

1个记录表W
(p

1)
中的第i项开始向移动;
[0022]初始化i=1;
[0023]步骤7、判断滑动窗口K所包含是否存在于S
p
中;其中,表示第p

1个记录表W
(p

1)
中的第i+1项;
[0024]若不存在,则将第i项和第i+1项的组合项作为第p层S
p
的新结点加入添加到第p层S
p
中,将的频度作为第p层的新结点的取值;
[0025]若存在,则利用式(1)更新的频度
[0026]步骤8、若i=k
(p)
,则表示滑动窗口K完成移动,并对第p层S
p
所有结点的频度进行均值归一化处理,得到归一化后的频度
[0027]步骤9、在第p层S
p
中,将对应的结点添加一条与连接的边,将对应的结点添加一条与连接的边;
[0028]步骤10、添加与之间的映射关系,从而更新索引表S';
[0029]步骤11、设定搜索函数Fs,并用于在索引表S'上搜索与之间的映射关系;
[0030]若所搜索的映射关系不存在于S'中,则搜索函数Fs返回0;否则,返回映射关系,即
[0031]步骤12、对于第p

1个记录表设定第p个合并阈值σ
(p)
;初始化i=1;
[0032]步骤13、若且且则合并为第p个记录表W
(p)
中的第i'项并加入第p个记录表W
(p)
中;否则,执行步骤14;
[0033]步骤14、判断是否与合并过,若是,直接执行步骤15;否则,将单独作为并加入W
(p)
中;
[0034]步骤15;将i+1赋值给i后,若i=k
(p

1)
时,则停止合并,并得到第p个记录表时,则停止合并,并得到第p个记录表
[0035]步骤16、返回步骤6顺序执行,直到k
(p)
=1时为止,从而得到p个记录表;
[0036]步骤17、生成文本:
[0037]指定一个汉语关键词序列E=(E1,E2,

,E
u
,

,E
m
),其中,E
u
表示第u个关键词,m为关键词序列的长度;
[0038]初始化u=1;
[0039]步骤18、创建一个空的二叉树T;创建空结点T
v
作为T的根节点;设置目的长度参数为R
len
,长度误差容忍参数为R
C
,押韵容忍参数为R
rh
,生成噪声参数为R
η

[0040]步骤19、计算第v个结点T
v
的权重Rank
v

[0041]步骤19.1、创建第v个结点T
v
的左叶子结点T
v,left
,创建第v个结点T
v
的右叶子结点T
v,right

[0042]步骤19.2、利用式(2)计算第v个结点T
v
的结合系数R(T
v,left
,T
v,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种句法树结构的汉语文本生成方法,其特征在于,是按如下步骤进行:步骤1、获取大量短文本作为语料库,并对语料库中的每个短文本进行数据清洗后,将所有短文本中的汉字单字按语序顺序排列成一行汉字序列,记为C=(c1,c2,...,c
h
,...,c
cn
),其中,c
h
表示第h个汉字,h∈[1,cn],cn表示语料库中的汉字总量;定义变量p,并初始化p=0;定义第p个记录表其中,表示第p个记录表W
(p)
中的第i项,k
(p)
表示第p个记录表W
(p)
的长度,并初始化k
(p)
=cn;初始化步骤2、创建滑动窗口K,令所述滑动窗口K的长度为1;创建树形频度记录表S=(S0,S1,S2...,S
j
,...,S
n
),其中,S
j
表示记录表S中的第j层,S0表示记录表S的底层,即叶子结点所在层,S
n
表示记录表S的顶层,即根结点所在层;创建索引表S',用于记录加入记录表S的结点的父节点,并初始化S'为空;步骤3、将滑动窗口K置于第p个记录表W
(p)
的起始端,从开始向移动;初始化i=1;步骤4、判断滑动窗口K所包含是否存在于第p层S
p
中;若不存在,则将作为第p层S
p
的新结点并添加到第p层S
p
中,将的频度作为第p层的新结点的取值;若存在,则利用式(1)更新的频度的频度式(1)中,当p=0时,代表在语料库中的出现次数;当p>0时,代表第i项和第i+1项的组合项在语料库中的出现次数;步骤5、若i=k
(p)
,则表示滑动窗口K完成移动,并对第p层S
p
所有结点的频度进行均值归一化处理,得到归一化后的频度,记为其中,表示归一化后的第p层S
p
中的频度,且否则,将i+1赋值给i后,返回步骤4顺序执行;步骤6、令滑动窗口K的长度为2,并将p+1赋值给p;将滑动窗口K置于第p

1个记录表W
(p

1)
的起始端,并从第p

1个记录表W
(p

1)
中的第i项开始向移动;初始化i=1;步骤7、判断滑动窗口K所包含是否存在于S
p
中;其中,表示第p

1个记录表W
(p

1)
中的第i+1项;
若不存在,则将第i项和第i+1项的组合项作为第p层S
p
的新结点加入添加到第p层S
p
中,将的频度作为第p层的新结点的取值;若存在,则利用式(1)更新的频度步骤8、若i=k
(p)
,则表示滑动窗口K完成移动,并对第p层S
p
所有结点的频度进行均值归一化处理,得到归一化后的频度步骤9、在第p层S
p
中,将对应的结点添加一条与连接的边,将对应的结点添加一条与连接的边;步骤10、添加与之间的映射关系,从而更新索引表S

;步骤11、设定搜索函数Fs,并用于在索引表S

上搜索与之间的映射关系;若所搜索的映射关系不存在于S

中,则搜索函数Fs返回0;否则,返回映射关系,即步骤12、对于第p

1个记录表设定第p个合并阈值σ
(p)
;初始化i=1;步骤13、若且且则合并为第p个记录表W
(p)
中的第i

项并加入第p个记录表W
(p)
中;否则,执行步骤14;步骤14、判断是否与合并过,若是,直接执行步骤15;否则,将单独作为并加入W
(p)
中;步骤15;将i+1赋值给i后,若i=k
(p

1)
时,则停止合并,并得到第p个记录表时,则停止合并,并得到第p个记录表步骤16、返回步骤6顺序执行,直到k
(p)
=1时为止,从而得到p个记录表;步骤17、生成文本:指定一个汉语关键词序列E=(E1,E2,...,E
u
,...,E
m
),其中,E
u
表示第u个关键词,m为关键词序列的长度;初始化u=1;步骤18、创建一个空的二叉树T;创建空结点T
v
作为T的根节点;设置目的长度参数为R
len
,长度误差容忍参数为R
C
,押韵容忍参数为R
rh
,生成噪声参数为R
η
;步骤19、计算第v个结点T
v
的权重Rank
v
:步骤19.1、创建第v个结点T
v
的左叶子结点T
v,left
创建第v个结点T
v
的右叶子结点
T
v,right
;步骤19.2、利用式(2)计算第v个结点T
v
的结合系数R(T
v,left
,T
v,right
):R(T
v,left
,T
v,right
)=C(len(T
v,left
)+len(T
v,right
))+Rh(T
v,right
)+η(T
v,left
,T
v,right
)
ꢀꢀ
(2)式(2)中,len表示字符长度函数,C表示长度惩罚函数,且x表示自变量;Rh表示汉语押韵惩罚函数,且η表示连接函数,且η(T
v,left
,T
v,right
)=Fs(T
v,left
,T
v,right
)
·
R
η
;Fs(T
v,left
,T
v,right
)表示T
v,left
和T
v,right
之间的映射关系;步骤19.3、令L为T
v
在二叉树中T所处层数,令p=L,设计T
v,left
和T
v,right
的不同取值以及不同取值下的第v个结点T
v
的得分:M1.令T
v,left
为E
u
,令u为u+1;令T
v,right
为其中,表示搜索函数取得最大值时所对应的第p个记录表W
(p)
中的第r项;则第v个结点T
v
的得分R1
v
=R(T
v,left
,T
v,right
...

【专利技术属性】
技术研发人员:钱晓临王晓华
申请(专利权)人:合肥工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1