1.本申请涉及深度学习技术领域,尤其涉及一种学习字向量方法、系统、电子设备及存储介质。
背景技术:2.近年来,预训练语言模型(pre
‑
trained language models,plms)的出现将自然语言处理(neutral language processing,nlp)领域带入了新的纪元,现已成为nlp领域不可或缺的主流技术。plms的主要目的是学习出好的词嵌入(word embedding),将对词语粒度学习出好的向量表示,即词向量。在实际应用中,预训练语言模型属于上游任务,经常作为特定下游任务的输入,服务于下游任务,比如进行下游文本分类任务、情感分类任务以及命名实体识别任务等。预训练语言模型的优劣对下游任务的精度影响非常大,因此,如何训练出有效的plms成为nlp领域的研究热点。
3.当前,plms的研究主要基于英文,公开的训练数据集、训练好的预训练语言模型以英文居多,中文的研究还很少。即便有公开的训练好的预训练语言模型,在实际应用中还必然会遇到一个问题:应用场景下采用的中文分词算法与预训练语言模型采用的中文分词算法不匹配的问题,双方因分词标准不一致造成词典不一致,分出的词找不到词向量。基本上所有的基于预训练语言模型的nlp任务都面临这一问题,且迄今为止并未得到有效解决。
技术实现要素:4.本申请实施例提供了一种学习字向量方法、系统、电子设备及存储介质,以至少通过本发明解决了中文分词与预训练语言模型的分词标准不一致以及预训练词向量模型中的未登录词等问题。
5.本发明提供了学习字向量方法,包括:
6.字典组建步骤:从预训练词向量模型中抽取词语,将所述词语切分成字,并对所述字进行处理后,使用处理后的字组成字典;
7.pmi获取步骤:统计所述字的字频以及共现频率后,根据所述字频以及所述共现频率计算所述字的pmi;
8.字向量计算步骤:对所述pmi进行归一化后,根据归一化后的pmi与所述词语的词向量,加权计算获取字向量。
9.上述的学习字向量方法,所述字典组建步骤包括:
10.词典生成步骤:读取所述预训练词向量模型后,从所述预训练词向量模型中抽取所有的所述词语,并使用所述词语组成词典;
11.字典生成步骤:将所述词典中的所述词语切分为单独的所述字,对切分出的所述字进行存储以及去重处理后,使用处理后的所述字组成所述字典。
12.上述的学习字向量方法,所述pmi获取步骤包括:
13.映射表组建步骤:根据所述字与所述词语的构词关系,组建字词映射表;
14.字频与共现频率统计步骤:统计所述字在所述词语中出现的所述字频以及所述字构成的词语在所述词典中的词语中出现的所述共现频率;
15.pmi计算步骤:通过对所述字频以及所述共现频率进行计算获取所述字的所述pmi。
16.上述的学习字向量方法,所述字向量计算步骤包括,遍历所述映射表,对所述pmi进行归一化后,根据归一化后的所述pmi与所述词语的所述词向量,加权计算获取所述字向量。
17.本发明还提供学习字向量系统,其中,适用于上述所述的学习字向量方法,所述学习字向量系统包括:
18.字典组建单元:从预训练词向量模型中抽取词语,将所述词语切分成字,并对所述字进行处理后,使用处理后的字组成字典;
19.pmi获取单元:统计所述字的字频以及共现频率后,根据所述字频以及所述共现频率计算所述字的pmi;
20.字向量计算单元:对所述pmi进行归一化后,根据归一化后的pmi与所述词语的词向量,加权计算获取字向量。
21.上述的学习字向量系统,所述字典组建单元包括:
22.词典生成模块:读取所述预训练词向量模型后,从所述预训练词向量模型中抽取所有的所述词语,并使用所述词语组成词典;
23.字典生成模块:将所述词典中的所述词语切分为单独的所述字,对切分出的所述字进行存储以及去重处理后,使用处理后的所述字组成所述字典。
24.上述的学习字向量系统,所述pmi获取单元包括:
25.映射表组建模块:根据所述字与所述词语的构词关系,组建字词映射表;
26.字频与共现频率统计模块:统计所述字在所述词语中出现的所述字频以及所述字构成的词语在所述词典中的词语中出现的所述共现频率;
27.pmi计算模块:通过对所述字频以及所述共现频率进行计算获取所述字的所述pmi。
28.上述的学习字向量系统,遍历所述映射表,对所述pmi进行归一化后,根据归一化后的所述pmi与所述词语的所述词向量,所述字向量计算单元加权计算获取所述字向量。
29.本发明还提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的学习字向量方法。
30.本发明还提供一种电子设备可读存储介质,所述电子设备可读存储介质上存储有计算机程序指令,所述计算机程序指令被所述处理器执行时实现上述任一项所述的学习字向量方法。
31.相比于相关技术,本发明实现了将词向量转化为字向量,然后用字向量进行文本表示,有效解决中文分词与预训练语言模型的分词标准不一致的问题,即避免了预训练词向量模型中的未登录词问题,并且提高了自然语言处理能力。
32.本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
33.此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
34.图1是根据本申请实施例的学习字向量方法流程图;
35.图2是根据本申请实施例的学习字向量方法框架图;
36.图3是根据本申请实施例的学习字向量的装置框架图;
37.图4为本发明的学习字向量系统的结构示意图;
38.图5是根据本申请实施例的电子设备的框架图。
39.其中,附图标记为:
40.字典组建单元:51;
41.pmi获取单元:52;
42.字向量计算单元:53;
43.词典生成模块511;
44.字典生成模块:512;
45.映射表组建模块:521;
46.字频与共现频率统计模块:522;
47.pmi计算模块模块:523;
48.总线:80;
49.处理器:81;
50.存储器:82;
51.通信接口:83。
具体实施方式
52.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
53.显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
54.在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
55.除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领
域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
56.本发明提供一种学习字向量方法、系统、电子设备及存储介质,采用点互信息pmi的方法计算词向量对构成它的字的向量贡献,实现了将词向量转化为字向量,然后用字向量进行文本表示,有效解决中文分词与预训练语言模型的分词标准不一致等问题。
57.下面结合具体实施例对本发明进行说明。
58.实施例一
59.本实施例提供了学习字向量方法。请参照图1至图2,图1是根据本申请实施例的学习字向量方法流程图;图2是根据本申请实施例的学习字向量方法框架图,如图所示,学习字向量方法包括如下步骤:
60.字典组建步骤s1:从预训练词向量模型中抽取词语,将所述词语切分成字,并对所述字进行处理后,使用处理后的字组成字典;
61.pmi获取步骤s2:统计所述字的字频以及共现频率后,根据所述字频以及所述共现频率计算所述字的pmi;
62.字向量计算步骤s3:对所述pmi进行归一化后,根据归一化后的pmi与所述词语的词向量,加权计算获取字向量。
63.实施例中,所述字典组建步骤s1包括:
64.词典生成步骤s11:读取所述预训练词向量模型后,从所述预训练词向量模型中抽取所有的所述词语,并使用所述词语组成词典;
65.字典生成步骤s12:将所述词典中的所述词语切分为单独的所述字,对切分出的所述字进行存储以及去重处理后,使用处理后的所述字组成所述字典。
66.具体实施中,获取预训练词向量模型:读取已准备好的预训练词向量模型,记作wordembeddingmodel;从预训练词向量模型中抽取出所有的词语并形成词典记作worddict;将词典中的词语按单个字进行切分,即将两字词切分为两个单独的汉字,三字词切分为单独的三个汉字,将切分出的汉字进行统一存储并去重,形成字典,记作chardict。
67.实施例中,所述pmi获取步骤s2包括:
68.映射表组建步骤s21:根据所述字与所述词语的构词关系,组建字词映射表;
69.字频与共现频率统计步骤s22:统计所述字在所述词语中出现的所述字频以及所述字构成的词语在所述词典中的词语中出现的所述共现频率;
70.pmi计算步骤s23:通过对所述字频以及所述共现频率进行计算获取所述字的所述
pmi。
71.具体实施中,在生成字典的同时,记录字与词语的关系并以字为键进行存储,即:将字及字与参与构词的词语的映射关系保留下来形成<字,字所参与构词的词语集>,记作char_word_relationmap;根据worddict和chardict,统计chardict中的每个字在worddict中的词语中出现的次数,以及chardict中的每个字与字典中其它字在worddict中的词语的共现的次数;根据所述步骤s4所统计出的单个字在worddict中出现的次数和字与字的共现次数计算字与字之间的点互信息pmi。进一步地,pmi计算公式如下:
[0072][0073]
其中,w
i
和w
j
是chardict中的字,即字w
i
和w
j
的共现次数,p(w
i
)和p(w
j
)分别指字w
i
和w
j
在所述worddict的词语中出现的次数。
[0074]
为方便描述,根据学习字向量的方法,现做以下假设:
[0075]
worddict={明天,明朝,明白,明略,明明白白}
[0076]
chardict={明,天,朝,白,略}
[0077]
char_word_relationmap={<明,{明天,明朝,明白,明略,明明白白}>,<天,{明天}>,<朝,{明朝}>,<白,{明白,明明白白}>,<略,{明略}>}
[0078]
则,
[0079]
p(明)=6
[0080]
p(天)=1
[0081]
p(朝)=1
[0082]
p(白)=3
[0083]
p(略)=1
[0084]
p(明,白)=3
[0085]
p(明,天)=1
[0086]
p(明,朝)=1
[0087]
p(明,略)=1
[0088]
pmi(明,白)=p(明,白)/(p(明)*p(白))=3/(6*3)=0.17,为方便计算,暂时不去log。
[0089]
pmi(明,天)=p(明,天)/(p(明)*p(天))=1/(6*1)=0.17
[0090]
实施例中,所述字向量计算步骤s3包括,遍历所述映射表,对所述pmi进行归一化后,根据归一化后的所述pmi与所述词语的所述词向量,加权计算获取所述字向量。
[0091]
具体实施中,字的向量由其所参与构词的词语集中的词语的向量加权而得,权重为其所参数构词的词语集合中的词语的其它字的pmi(归一化后)。遍历字及字所参与构词的词语的映射关系,即遍历char_word_relationmap<字,字所参与构词的词语集>,计算字与字所参与构词的词语集中的词语中其它字的pmi。进一步地,在计算同一个词语中的字与字所参与构词的词语集中的词语的权重时,同一词语中的字的pmi需累加作为该词对字的权重。进一步地,在计算字与其所参与构词的词语中的其它字的pmi时,如果所构成的字是单字成词,则默认其pmi为1。进一步地,字与其所参与构词的词语的pmi计算公式如下:
[0092][0093]
其中,w
i
是字典中的字,f(w
i
)指字w
i
所参与构词的词语的集合,d
k
是集合f(w
i
)中的一个词语。进一步地,charvector(明)=pmi(明,明天)*wordvector(明天)+pmi(明,明白)*wordvctror(明白)+pmi(明,朝)*wordvctror(明略)+pmi(明,略)*wordvctror(明略)+pmi(明,白)*wordvctror(明白)+pmi(明,白)*wordvctror(明明白白)。其中,wordvector(word)表示从预训练词向量模型wordembeddingmodel中取出的词语word的向量,charvector(char)表示字char的字向量。
[0094]
实施例二
[0095]
请参照图3至图4,图3是根据本申请实施例的学习字向量的装置框架图;图4为本发明的学习字向量系统的结构示意图。如图3至图4所示,发明的学习字向量系统,适用于上述的学习字向量方法,学习字向量系统包括:
[0096]
字典组建单元51:从预训练词向量模型中抽取词语,将所述词语切分成字,并对所述字进行处理后,使用处理后的字组成字典;
[0097]
pmi获取单元52:统计所述字的字频以及共现频率后,根据所述字频以及所述共现频率计算所述字的pmi;
[0098]
字向量计算单元53:对所述pmi进行归一化后,根据归一化后的pmi与所述词语的词向量,加权计算获取字向量。
[0099]
在实施例中,所述字典组建单元51包括:
[0100]
词典生成模块511:读取所述预训练词向量模型后,从所述预训练词向量模型中抽取所有的所述词语,并使用所述词语组成词典;
[0101]
字典生成模块512:将所述词典中的所述词语切分为单独的所述字,对切分出的所述字进行存储以及去重处理后,使用处理后的所述字组成所述字典。
[0102]
在实施例中,所述pmi获取单元52包括:
[0103]
映射表组建模块521:根据所述字与所述词语的构词关系,组建字词映射表;
[0104]
字频与共现频率统计模块522:统计所述字在所述词语中出现的所述字频以及所述字构成的词语在所述词典中的词语中出现的所述共现频率;
[0105]
pmi计算模块523:通过对所述字频以及所述共现频率进行计算获取所述字的所述pmi。
[0106]
在实施例中,遍历所述映射表,对所述pmi进行归一化后,根据归一化后的所述pmi与所述词语的所述词向量,所述字向量计算单元53加权计算获取所述字向量。
[0107]
实施例三
[0108]
结合图5所示,本实施例揭示了一种电子设备的一种具体实施方式。电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。
[0109]
具体地,上述处理器81可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,简称为asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。
[0110]
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存
储器82可包括硬盘驱动器(hard disk drive,简称为hdd)、软盘驱动器、固态驱动器(solid state drive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在学习字向量装置的内部或外部。在特定实施例中,存储器82是非易失性(non
‑
volatile)存储器。在特定实施例中,存储器82包括只读存储器(read
‑
only memory,简称为rom)和随机存取存储器(random access memory,简称为ram)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmable read
‑
only memory,简称为prom)、可擦除prom(erasable programmable read
‑
only memory,简称为fprom)、电可擦除prom(electrically erasable programmableread
‑
only memory,简称为efprom)、电可改写rom(electrically alterableread
‑
only memory,简称为earom)或闪存(flash)或者两个或更多个以上这些的组合。在合适的情况下,该ram可以是静态随机存取存储器(static random
‑
access memory,简称为sram)或动态随机存取存储器(dynamic random access memory,简称为dram),其中,dram可以是快速页模式动态随机存取存储器(fast page mode dynamic random access memory,简称为fpmdram)、扩展数据输出动态随机存取存储器(extended date out dynamic random access memory,简称为edodram)、同步动态随机存取内存(synchronous dynamic random
‑
access memory,简称sdram)等。
[0111]
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
[0112]
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意学习字向量方法。
[0113]
在其中一些实施例中,电子设备还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
[0114]
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/学习字向量设备、数据库、外部存储以及图像/学习字向量工作站等之间进行数据通信。
[0115]
总线80包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(data bus)、地址总线(address bus)、控制总线(control bus)、扩展总线(expansion bus)、局部总线(local bus)。举例来说而非限制,总线80可包括图形加速接口(accelerated graphics port,简称为agp)或其他图形总线、增强工业标准架构(extended industry standard architecture,简称为eisa)总线、前端总线(front side bus,简称为fsb)、超传输(hyper transport,简称为ht)互连、工业标准架构(industry standard architecture,简称为isa)总线、无线带宽(infiniband)互连、低引脚数(low pin count,简称为lpc)总线、存储器总线、微信道架构(micro channel architecture,简称为mca)总线、外围组件互连(peripheralcomponent interconnect,简称为pci)总线、pci
‑
express(pci
‑
x)总线、串行高级技术附件(serial advanced technology attachment,简称为sata)总线、视频电子标准协会局部(video electronics standards association local bus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描
述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
[0116]
电子设备可连接学习字向量系统,从而实现结合图1至图2描述的方法。
[0117]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0118]
综上所述,本发明实现了将词向量转化为字向量后,用字向量进行文本表示,有效解决中文分词与预训练语言模型的分词标准不一致的问题,并避免了预训练词向量模型中的未登录词等问题。
[0119]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求的保护范围为准。