CN116628143B - 一种语言模型的处理方法及装置 - Google Patents
一种语言模型的处理方法及装置 Download PDFInfo
- Publication number
- CN116628143B CN116628143B CN202310925971.6A CN202310925971A CN116628143B CN 116628143 B CN116628143 B CN 116628143B CN 202310925971 A CN202310925971 A CN 202310925971A CN 116628143 B CN116628143 B CN 116628143B
- Authority
- CN
- China
- Prior art keywords
- word
- words
- order
- information
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000003491 array Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
本申请公开了一种语言模型的处理方法及装置,包括:构建N个存储结构以存储N元语言模型。对于第i个结构,若i大于等于1且小于等于N‑1,则第i个存储结构包括多个第一节点,第一节点用于承载第一词中的i阶词的信息,第一词为i元词,第一节点承载的信息包括:第一词中的i阶词的标识、第一词的i元概率、以第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置。若i等于N,第i个存储结构包括多个第二节点,第二节点承载第二词的信息,第二词为N元词,第二节点承载的信息包括:第二词中的N阶词的标识、以及第二词的N元概率。利用本方案,可以有效节省N元语言模型的存储量,并提升存储性能。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种语言模型的处理方法及装置。
背景技术
N元语言模型是统计自然语言处理中的一种常用技术,用于建模句子中词汇之间的关系。N元语言模型的基本思想是:给定前 N-1 个词,给出第N个词在统计意义上出现的概率。其中,N称为模型的“阶数”。
N元语言模型可以用于很多自然语言处理任务,如语音识别、文本生成、机器翻译、信息检索等。一个常用的场景是文本生成,基于前面N-1个词,将N元语言模型中概率最高的k个词作为第N个词的候选项。
目前,N元语言模型所需存储的数据量巨大,导致存储性能较低。因此,急需一种方案,能够解决上述问题。
发明内容
为了解决或者至少部分解决上述技术问题,本申请实施例提供了一种语言模型的处理方法及装置。
第一方面,本申请实施例提供了一种语言模型的处理方法,所述方法包括:
针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数;
基于所述N个存储结构,存储所述N元语言模型;其中:
对于所述N个存储结构中的第i个结构:
当i大于或者等于1且小于或者等于N-1时,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,第一节点承载的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,所述i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,所述i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词;
当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,第二节点承载的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
可选的,所述N元存储结构为数组,所述N个数组中的第一个数组中第一节点所承载的第一词的标识,为所述第一节点对应在所述数组中的元素的下标。
可选的,所述以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中连续存储,所述存储位置包括:起始存储位置和结束存储位置。
可选的,所述基于所述N个存储结构,存储所述N元语言模型,包括:
首先写入第一个存储结构;
当i大于等于1且小于或者等于N-1时,按照第i个存储结构中的存储顺序,针对第i个存储结构中存储的每个第一词的信息,按序在第i+1个存储结构中写入以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息。
可选的,所述方法还包括:
获取目标搜索词,所述目标搜索词为M元词,M小于或者等于N;
利用所述M元词的一阶词的标识为索引,在第一个存储结构中查找得到第一目标节点,并获得所述第一目标节点所承载的信息。
可选的,当所述M大于或者等于2时,所述方法还包括:
当i大于或者等于1且小于或者等于M-1时,根据在第i个存储结构中查找得到的第二目标节点所承载的信息中的存储位置,确定第i+1个存储结构中的待检索节点;
利用所述M元词的i+1阶词的标识为索引,在所述待检索节点中查找得到第三目标节点,并获得所述第三目标节点所承载的信息;
将在第M个存储结构中查找得到的所述第三目标节点所承载的信息,确定为查询结果。
可选的,所述方法还包括:
输出所述第M个存储结构中的所述待检索节点中各个节点所承载的信息。
第二方面,本申请实施例提供了一种语言模型的处理装置,所述装置包括:
构建单元,用于针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数;
存储单元,用于基于所述N个存储结构,存储所述N元语言模型;其中:
对于所述N个存储结构中的第i个结构:
当i大于或者等于1且小于或者等于N-1时,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,第一节点承载的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,所述i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,所述i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词;
当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,第二节点承载的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
可选的,所述N元存储结构为数组,所述N个数组中的第一个数组中第一节点所承载的第一词的标识,为所述第一节点对应在所述数组中的元素的下标。
可选的,所述以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中连续存储,所述存储位置包括:起始存储位置和结束存储位置。
可选的,所述存储单元,用于:
首先写入第一个存储结构;
当i大于等于1且小于或者等于N-1时,按照第i个存储结构中的存储顺序,针对第i个存储结构中存储的每个第一词的信息,按序在第i+1个存储结构中写入以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息。
可选的,所述装置还包括:
获取单元,用于获取目标搜索词,所述目标搜索词为M元词,M小于或者等于N;
第一查找单元,用于利用所述M元词的一阶词的标识为索引,在第一个存储结构中查找得到第一目标节点,并获得所述第一目标节点所承载的信息。
可选的,当所述M大于或者等于2时,所述装置还包括:
第一确定单元,用于当i大于或者等于1且小于或者等于M-1时,根据在第i个存储结构中查找得到的第二目标节点所承载的信息中的存储位置,确定第i+1个存储结构中的待检索节点;
第二查找单元,用于利用所述M元词的i+1阶词的标识为索引,在所述待检索节点中查找得到第三目标节点,并获得所述第三目标节点所承载的信息;
第二确定单元,用于将在第M个存储结构中查找得到的所述第三目标节点所承载的信息,确定为查询结果。
可选的,所述装置还包括:
输出单元,用于输出所述第M个存储结构中的所述待检索节点中各个节点所承载的信息。
第三方面,本申请实施例提供了一种设备,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如以上第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括指令,所述指令指示设备执行如以上第一方面中任一项所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行以上第一方面任一项所述的方法。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供了一种语言模型的处理方法,该方法包括:针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数。对于所述N个存储结构中的第i个结构,若i大于或者等于1且小于或者等于N-1,则第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,第一节点承载的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词。当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,第二节点承载的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。构建N个存储结构之后,可以基于所述N个存储结构,存储所述N元语言模型。在本申请实施例中,对于多个词而言,即使该多个词的前1个或者前几个词相同,相同的部分也不会重复存储,存储一次即可,因此,利用本方案,可以有效节省N元语言模型的存储量,从而提升了存储性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种语言模型的处理方法的流程示意图;
图2为本申请实施例提供的一种存储结构的示意图;
图3为本申请实施例提供的一种检索方法的流程示意图;
图4为本申请实施例提供的又一种检索方法的流程示意图;
图5为本申请实施例提供的一种语言模型的处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统技术中,N元语言模型通常以键-值(key-value)的方式存储,其中,其中key存放上下文信息,如三元语言模型中可以使用w1-w2-w3作为key,value存放其概率信息。其中: w1、w2、w3分别为第一个词、第二个词和第三个词,“-”为分隔符。
当前语言模型的存储方式,N元语言模型所需存储的数据量巨大,导致存储性能较低。例如,对于w1-w2-w3和w1-w2-w4两个key,都重复存储了w1和w2。
另外,在文本生成的场景中,语言模型对应的检索性能低下,若要获得概率最高的k个词,需要执行多次检索操作,检索出所有可能情况,从而确定概率最高的k个词。
为了解决上述问题,本申请实施例提供了一种语言模型的处理方法及装置。
下面结合附图,详细说明本申请的各种非限制性实施方式。
参见图1,该图为本申请实施例提供的一种语言模型的处理方法的流程示意图。在本实施例中,所述方法可以应用于客户端,也可以应用于服务端,本申请实施例不做具体限定。
在一个示例中,所述例如可以包括以下步骤:S101-S102。
S101:针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数,对于所述N个存储结构中的第i个结构:当i大于或者等于1且小于或者等于N-1时,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,第一节点承载的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词;当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,第二节点承载的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
在本申请实施例中,N元语言模型涉及的词汇,也叫做N元词,N元词指的是包括N个词的词,例如,3元词指的是包括3个词的词,词w1-w2-w3可以认为是一个三元词。
在本申请实施例中,对于N元词而言,该N元词中的第i个词,也叫做i阶词,例如,对于三元词w1-w2-w3而言,w1是该三元词的一阶词,w2是该三元词的二阶词,w3是该三元词的三阶词。
在本申请实施例中,为了避免在对N元语言模型进行存储时,存在大量重复存储的情况,可以针对N元语言模型,构建N个存储结构,一个存储结构用于存储某阶词的信息。例如,对于3元语言模型而言,可以构建3个存储结构,第一个存储结构用于存储一阶词,第二个存储结构用于存储二阶词,第三个存储结构用于存储三阶词。
接下来,对所述N个存储结构进行说明。
在本申请实施例中,每个存储结构可以包括多个节点,每个节点均用于承载词的信息。
对于所述N个存储结构而言,前N-1个存储结构中节点所承载的内容类型是相同的,第N个存储结构中节点所承载的内容类型区别于前N-1个存储结构中节点所承载的内容类型。
对于所述N个存储结构中的第i个结构而言:
若i大于或者等于1且小于或者等于N-1,则所述第i个存储结构可以包括多个第一节点,每个第一节点均用于承载第一词中的i阶词的信息,所述第一词为i元词。例如,当i等于1时,第一词为一元词,第一节点用于承载一元词的一阶词的信息,当i等于2时,第一词为二元词,第一节点用于承载二元词的二阶词的信息。
所述第一节点用于承载第一词中的i阶词的信息,第一词中的i阶词的信息包括:第一词中的i阶词的标识、所述第一词的i元概率、以及所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置。
第一词的中的i阶词标识,可以用于唯一标识所述第一词中的i阶词。
第一词的i元概率,指的是第一词的i阶词的条件概率。例如,第一词为w1,则第一词的i阶概率可以是:p(w1)。第一词为w1-w2,则第一词的i阶概率可以是:p(w2|w1);又如,第一词为w1-w2-w3,则第一词的i阶概率可以是:p(w3|w1w2)。在一个示例中,p(w1)、p(w2|w1)以及p(w3|w1w2)可以分别通过如下公式(1)、公式(2)和公式(3)计算得到。
p(w1) = n(w1)/n(T) 公式(1)
p(w2|w1)=n(w1w2)/n(w1) 公式(2)
p(w3|w1w2)=n(w1w2w3)/n(w1w2) 公式(3)
在公式(1)至公式(3)中:
n(T)表示所有词的频率;
n(w1)为词w1的频率;
n(w1w2)为词w1w2出现的频率;
n(w1w2w3)为词w1w2w3出现的频率。在本申请实施例中,由第一词作为前i阶词的i+1元词的数量有很多,由第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息可以存储在第i+1个存储结构中。所述第一节点承载的信息还可以包括由第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置。
在一个示例中,所述若干个i+1元词中的i+1阶词的信息在所述第i+1个存储结构中可以分散存储,对于这种情况,所述若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,可以包括各个i+1元词中的i+1阶词的信息在第i+1个存储结构中分别对应的存储位置。
在又一个示例中,所述若干个i+1元词中的i+1阶词的信息在所述第i+1个存储结构中可以连续存储,对于这种情况,所述若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,可以包括所述若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的起始存储位置和结束存储位置。对于这种情况,在检索由第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息时,可以从第i+1个存储结构中的连续存储区域中获得所有由第一词作为前i阶词的i+1元词中的i+1阶词的信息,从而提升检索效率。
若i等于N,则第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,第二节点承载的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
关于N元概率,可以参考前文对于i元概率的描述部分,此处不做重复描述。在一个示例中,所述N个存储结构可以是数组,节点(例如第一节点或者第二节点)可以对应数组中的元素。如前描述可知,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词。当i等于1时,第一词为1元词,则第一节点实际用于承载第一词的信息。对于这种情况,在一个示例中,第一个数组中第一节点所承载的第一词的标识,可以是第一节点对应在所述数组中的元素的下标。例如,第一节点对应第一个数组中的元素1,元素1对应数组下标a,第一节点用于承载词b的信息,则词b的标识,可以是a。这样一来,在第一个数组中查询第一词的信息时,可以直接以第一词的标识作为数组下标读取数组即可,可以提升数据查询的效率。
关于所述N个存储结构,现以N等于3为例进行说明。参见图2,该图为本申请实施例提供的一种存储结构的示意图。
图2示出了3个存储结构。第一个存储结构A1用于存储一阶词的信息,第二个存储结构A2用于存储二阶词的信息,第三个存储结构A3用于存储三阶词的信息。
如图2所示,第一个存储结构A1包括若干个节点,每个节点用于存储一元词的一阶词的信息,一阶词的信息包括4个部分,分别为:一阶词的标识(例如图2所示的id(w1))、一元词的一元概率(例如图2所示的p(w1))、以一元词为一阶词的二元词的二阶词的信息在第二个存储结构A2中的起始存储位置和结束存储位置(例如图2所示的b(w1)和e(w1))。如图2所示,对于节点210而言,其承载的信息中的起始位置可以对应图2中的220和230。
在一个示例中,数组A1的长度可以等于一元元组的枚举个数m1。
第二个存储结构A2包括若干个节点,每个节点用于存储二元词的二阶词的信息,二元词的二阶词的信息包括4个部分,分别为:二阶词的标识(例如图2所示的id(w2))、二元词的二元概率(例如图2所示的p(w2|w1))、以二元词为前二阶词的三元词的三阶词的信息在第三个存储结构A3中的起始存储位置和结束存储位置(例如图2所示的b(w1w2)和e(w1w2))。如图2所示,对于节点240而言,其承载的信息中的起始位置可以对应图2中的250和260。
在一个示例中,数组A2的长度可以等于二元元组的枚举个数m2。
第三个存储结构A3包括若干个节点,每个节点用于存储三元词的三阶词的信息,三元词的三阶词的信息包括2个部分,分别为:三阶词的标识(例如图2所示的id(w3))、三元词的三元概率(例如图2所示的p(w3|w1w2))。
在一个示例中,数组A3的长度可以等于三元元组的枚举个数m3。
S102:基于所述N个存储结构,存储所述N元语言模型。
构建所述N个存储结构之后,可以存储所述N元语言模型。
在一个示例中,可以预先确定各个存储结构中各个节点所承载的内容,而后,并行写入各个节点所承载的内容,从而实现N元语言模型的存储。
在又一个示例中,可以按照一定顺序写入所述N个存储结构。
在一个具体的示例中,可以依次写入所述N个存储结构。具体的,可以首先写入第一个存储结构,而后,当i大于等于1且小于或者等于N-1时,按照第i个存储结构中的存储顺序,针对第i个存储结构中存储的每个第一词的信息,按序在第i+1个存储结构中写入以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息。
以N为2为例进行说明:
首先写入第一个存储结构。
在一个示例中,可以按照词的标识对一元词进行升序排序。对于排序后的每个一元词w,在第一个存储结构中写入对应的信息:id(w)、p(w)、begin(w)=b2、end(w)=b2+n2(w)-1,每次写入后执行b2=b2+n2(w)-1。其中:
id(w)为一元词的标识;
p(w)为一元词w的一元概率;
n2(w)为以w为一阶词的二元词的个数;
begin(w)为以w为一阶词的二元词的二阶词的信息在第二个存储结构中的起始存储位置;
end(w)为以w为一阶词的二元词的二阶词的信息在第二个存储结构中的结束存储位置;
b2的初始值为0。第一个存储结构写入完成之后,针对第一个存储结构中存储的第一个第一词的信息,可以在第二个存储结构中写入以第一个第一词作为一阶词的若干个二元词的二阶词的信息。而后,针对第一个存储结构中存储的第二个第一词的信息,可以在第二个存储结构中写入以第二个第一词作为一阶词的若干个二元词的二阶词的信息。依次类推,直至在第二个存储结构中写入以第一个存储结构中最后一个第一词作为一阶词的若干个二元词的二阶词的信息,至此,第二存储结构写入完成。
在一个示例中,针对第一个存储结构中存储的每个第一词w1的信息,在第二个存储结构中写入以该第一词(例如w1)作为一阶词的若干个二元词的二阶词的信息在具体实现时,可以对以w1作为一阶词的二元词(w1, w2)集合,按照id(w2)进行升序排序。对于排序后的每个二元词,在第二个存储结构中写入对应的元素信息:id(w2)、p(w2|w1)、begin(w1w2)=b3、end(w1w2)=b3+n3(w1w2)-1,每次写入后执行b3=b3+n3(w1w2)-1。其中:
id(w2)为二阶词的标识;
p(w2|w1)为二元词的二元概率;
begin(w1w2)为以w1w2为前二阶词的三元词的三阶词的信息在第三个存储结构中的起始存储位置;
end(w1w2)为以w1w2为前二阶词的三元词的三阶词的信息在第三个存储结构中的结束存储位置;
n3(w1w2)为以w1w2为前二阶词的三元词个数;
b3的初始值为0。
类似的,第二个存储结构写入完成之后,针对第二个存储结构中存储的第一个二阶词的信息,可以在第三个存储结构中写入以第一个二阶词作为前二阶词的若干个三元词的三阶词的信息。而后,针对第二个存储结构中存储的第二个二阶词的信息,可以在第三个存储结构中写入以第二个二阶词作为前二阶词的若干个三元词的三阶词的信息。依次类推,直至在第三个存储结构中写入以第二个存储结构中最后一个二阶词作为前二阶词的若干个三元词的三阶词的信息,至此,第三存储结构写入完成。
在一个示例中,针对第二个存储结构中存储的每个二元词中二阶词的信息,在第三个存储结构中写入以该二元词(例如w1w2)作为前二阶词的若干个三元词的三阶词的信息在具体实现时,可以对于以w1w2作为前二阶词的三元词(w1, w2,w3)集合,按照id(w3)进行升序排序。对于排序后的每个三元词(w1, w2, w3),在第三个存储结构中写入对应的元素信息:id(w3)、p(w3|w1w2)。其中:
id(w3)为三阶词的标识;
p(w3|w1w2)为三元词的三元概率。
通过以上描述可知,在本申请实施例中,对于多个词而言,即使该多个词的前1个或者前几个词相同,相同的部分也不会重复存储,存储一次即可,因此,利用本方案,可以有效节省N元语言模型的存储量,从而提升了存储性能。
在一个示例中,存储所述N元语言模型之后,还可以基于所述N元语言模型进行检索。对于这种情况,本申请实施例提供的方案,还可以包括图3所示的S301-S302。图3为本申请实施例提供的一种检索方法的流程示意图。
S301:获取目标搜索词,所述目标搜索词为M元词,M小于或者等于N。
在本申请实施例中,获得目标搜索词之后,可以对所述 目标搜索词进行分词,从而得到所述目标搜索词所包括的M个词。
S302:利用所述M元词的一阶词的标识为索引,在第1个存储结构中查找得到第一目标节点,并获得所述第一目标节点所承载的信息。
获取所述目标搜索词之后,可以首先利用所述M元词的一阶词的标识为索引,在第一个存储结构中查找得到用于承载所述M元词的一阶词的信息的第一目标节点。
在一个示例中,可以利用所述M元词的一阶词的标识为索引,以二分查找的方式,在第一个存储结构中查找得到所述第一目标节点。
在又一个示例中,若第一个数组中各个第一节点所承载的第一词的标识,为所述第一节点对应在所述数组中的元素的下标。则可以直接以所述M元词的一阶词的标识作为数组下标,将该数组下标对应的元素所对应的节点确定为所述第一目标节点,采用这种方式,可以高效确定第一目标节点。
在本申请实施例中,查找得到第一目标节点之后,可以获取所述第一目标节点所承载的信息,所述第一目标节点所承载的信息,可以包括所述M元词的一阶词的一元概率,以及存储位置。第一目标节点所承载的存储位置,指的是以所述M元词的一阶词为一阶词的二元词的二阶词在第二个存储结构中的存储位置。
在一个示例中,若所述M大于或者等于2,则在执行S302之后,还可以执行图4所示的S303-S305。图4为本申请实施例提供的又一种检索方法的流程示意图。
S303:当i大于或者等于1且小于或者等于M-1时,根据在第i个存储结构中查找得到的第二目标节点所承载的信息中的存储位置,确定第i+1个存储结构中的待检索节点。
S304:利用所述M元词的i+1阶词的标识为索引,在所述待检索节点中查找得到第三目标节点,并获得所述第三目标节点所承载的信息。
S305:将在第M个存储结构中查找得到的第三目标节点所承载的信息,确定为查询结果。
在一个示例中,当第二目标节点承载的信息中的存储位置包括起始存储位置和结束存储位置时,可以将第i+1个存储结构中前述起始存储位置和结束存储位置之间的节点,确定为待检索节点。
确定待检索节点之后,可以以所述M元词的i+1阶词的标识为索引,在所述待检索节点中查找得到与所述M元词的i+1阶词的标识匹配的第三目标节点,并获得第三目标节点所承载的信息。关于第三目标节点所承载的信息,可以参考前文对于第一目标节点所承载的信息的描述部分,此处不做重复描述。
针对第2个存储结构至第M个存储结构均执行S303-S304之后,可以将在第M个存储结构中查找得到的第三目标节点所承载的信息,确定为查询结果。例如,可以将第三目标节点所承载的概率,确定为查询结果。
在一个示例中,还可以输出第M个存储结构中的所述待检索节点中各个节点所承载的信息。采用这种方式,无需通过多次检索,即可以确定出以所述目标搜索词的前M-1阶词为前(M-1)阶词的所有M元词,检索效率高。
关于S301-S305现举例说明:
假设M等于2,目标搜索词为 (w1, w2),则首先确定w1、w2分别对应的标识id(w1)和id(w2)。在第一个存储结构中使用id(w1)查找得到对应的节点,获得该节点承载的位置信息b(w1)和e(w1)。将第二个存储结构中范围[b(w1), e(w1)]之间的节点确定为待检索节点,以id(w2)为索引对待检索节点进行检索,找到对应的节点,获得该节点承载的概率p(w2|w1)。
在一个示例中,在获取w1作为一阶词的所有二元词的场景下, 可以直接输出第二个存储结构中在[b(w1), e(w1)]范围内的所有节点的信息。
假设M等于3,目标搜索词为 (w1, w2,w3),则首先确定w1、w2、w3分别对应的标识id(w1)、id(w2)和id(w3)。在第一个存储结构中使用id(w1)查找得到对应的节点,获得该节点承载的位置信息b(w1)和e(w1)。将第二个存储结构中范围[b(w1), e(w1)]之间的节点确定为待检索节点,以id(w2)为索引对待检索节点进行检索,找到对应的节点,获得该节点承载的位置信息b(w1w2)和 e(w1w2)。将第三个存储结构中范围[b(w1w2), e(w1w2)]之间的节点确定为待检索节点,以id(w3)为索引对待检索节点进行检索,找到对应的节点,获得该节点承载的概率p(w3|w1 w2)。
在一个示例中,在获取w1w2作为前二阶词的所有三元词的场景下, 可以直接输出第三个存储结构中在[b(w1w2), e(w1w2)]范围内的所有节点的信息。
基于以上实施例提供的方法,本申请实施例还提供了一种装置,以下结合附图介绍该装置。
参见图5,该图为本申请实施例提供的一种语言模型的处理装置的结构示意图。如图5所示,所述语言模型的处理装置500包括:构建单元501和存储单元502。
构建单元501,用于针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数;
存储单元502,用于基于所述N个存储结构,存储所述N元语言模型;其中:
对于所述N个存储结构中的第i个结构:
当i大于或者等于1且小于或者等于N-1时,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,第一节点承载的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,所述i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,所述i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词;
当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,第二节点承载的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
可选的,所述N元存储结构为数组,所述N个数组中的第一个数组中第一节点所承载的第一词的标识,为所述第一节点对应在所述数组中的元素的下标。
可选的,所述以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中连续存储,所述存储位置包括:起始存储位置和结束存储位置。
可选的,所述存储单元502,用于:
首先写入第一个存储结构;
当i大于等于1且小于或者等于N-1时,按照第i个存储结构中的存储顺序,针对第i个存储结构中存储的每个第一词的信息,按序在第i+1个存储结构中写入以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息。
可选的,所述装置还包括:
获取单元,用于获取目标搜索词,所述目标搜索词为M元词,M小于或者等于N;
第一查找单元,用于利用所述M元词的一阶词的标识为索引,在第一个存储结构中查找得到第一目标节点,并获得所述第一目标节点所承载的信息。
可选的,当所述M大于或者等于2时,所述装置还包括:
第一确定单元,用于当i大于或者等于1且小于或者等于M-1时,根据在第i个存储结构中查找得到的第二目标节点所承载的信息中的存储位置,确定第i+1个存储结构中的待检索节点;
第二查找单元,用于利用所述M元词的i+1阶词的标识为索引,在所述待检索节点中查找得到第三目标节点,并获得所述第三目标节点所承载的信息;
第二确定单元,用于将在第M个存储结构中查找得到的所述第三目标节点所承载的信息,确定为查询结果。
可选的,所述装置还包括:
输出单元,用于输出所述第M个存储结构中的所述待检索节点中各个节点所承载的信息。
由于所述装置500是与以上方法实施例提供的方法对应的装置,所述装置500的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置500的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
本申请实施例还提供了一种设备,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行以上方法实施例提供的语言模型的处理方法。
本申请实施例提供了一种计算机可读存储介质,包括指令,所述指令指示设备执行以上方法实施例提供的语言模型的处理方法。
本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行以上方法实施例提供的语言模型的处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种语言模型的处理方法,其特征在于,所述方法包括:
针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数;
基于所述N个存储结构,存储所述N元语言模型;其中:
对于所述N个存储结构中的第i个结构:
当i大于或者等于1且小于或者等于N-1时,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,所述第一词中的i阶词的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,所述i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,所述i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词;
当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,所述第二词的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
2.根据权利要求1所述的方法,其特征在于,N元存储结构为数组,N个数组中的第一个数组中第一节点所承载的第一词的标识,为所述第一节点对应在所述数组中的元素的下标。
3.根据权利要求2所述的方法,其特征在于,所述以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中连续存储,所述存储位置包括:起始存储位置和结束存储位置。
4.根据权利要求1所述的方法,其特征在于,所述基于所述N个存储结构,存储所述N元语言模型,包括:
首先写入第一个存储结构;
当i大于等于1且小于或者等于N-1时,按照第i个存储结构中的存储顺序,针对第i个存储结构中存储的每个第一词的信息,按序在第i+1个存储结构中写入以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标搜索词,所述目标搜索词为M元词,M小于或者等于N;
利用所述M元词的一阶词的标识为索引,在第一个存储结构中查找得到第一目标节点,并获得所述第一目标节点所承载的信息。
6.根据权利要求5所述的方法,其特征在于,当所述M大于或者等于2时,所述方法还包括:
当i大于或者等于1且小于或者等于M-1时,根据在第i个存储结构中查找得到的第二目标节点所承载的信息中的存储位置,确定第i+1个存储结构中的待检索节点;
利用所述M元词的i+1阶词的标识为索引,在所述待检索节点中查找得到第三目标节点,并获得所述第三目标节点所承载的信息;
将在第M个存储结构中查找得到的所述第三目标节点所承载的信息,确定为查询结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
输出所述第M个存储结构中的所述待检索节点中各个节点所承载的信息。
8.一种语言模型的处理装置,其特征在于,所述装置包括:
构建单元,用于针对N元语言模型,构建N个存储结构,N为大于或者等于2的整数;
存储单元,用于基于所述N个存储结构,存储所述N元语言模型;其中:
对于所述N个存储结构中的第i个结构:
当i大于或者等于1且小于或者等于N-1时,第i个存储结构包括多个第一节点,每个第一节点用于承载第一词中的i阶词的信息,所述第一词为i元词,所述第一词中的i阶词的信息包括:所述第一词中的i阶词的标识、所述第一词的i元概率、以所述第一词作为前i阶词的若干个i+1元词中的i+1阶词的信息在第i+1个存储结构中的存储位置,其中,所述i元词包括i个词,所述i元词中的i阶词为所述i元词中的第i个词,所述i+1元词包括i+1个词,所述i+1元词中的i+1阶词为所述i+1元词中的第i+1个词;
当i等于N时,第i个存储结构包括多个第二节点,每个第二节点用于承载第二词的信息,所述第二词为N元词,所述第二词的信息包括:所述第二词中的N阶词的标识、以及所述第二词的N元概率。
9.一种语言模型的处理设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示设备执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310925971.6A CN116628143B (zh) | 2023-07-26 | 2023-07-26 | 一种语言模型的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310925971.6A CN116628143B (zh) | 2023-07-26 | 2023-07-26 | 一种语言模型的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116628143A CN116628143A (zh) | 2023-08-22 |
CN116628143B true CN116628143B (zh) | 2023-10-03 |
Family
ID=87610363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310925971.6A Active CN116628143B (zh) | 2023-07-26 | 2023-07-26 | 一种语言模型的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116628143B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010077041A (ko) * | 2000-01-31 | 2001-08-17 | 구자홍 | 트리구조의 언어모델을 갖는 연속 음성 인식 장치 |
CN103871404A (zh) * | 2012-12-13 | 2014-06-18 | 北京百度网讯科技有限公司 | 一种语言模型的训练方法、查询方法和对应装置 |
CN113591456A (zh) * | 2021-07-23 | 2021-11-02 | 北京小米移动软件有限公司 | 文本纠错方法及装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091427A1 (en) * | 2006-10-11 | 2008-04-17 | Nokia Corporation | Hierarchical word indexes used for efficient N-gram storage |
-
2023
- 2023-07-26 CN CN202310925971.6A patent/CN116628143B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010077041A (ko) * | 2000-01-31 | 2001-08-17 | 구자홍 | 트리구조의 언어모델을 갖는 연속 음성 인식 장치 |
CN103871404A (zh) * | 2012-12-13 | 2014-06-18 | 北京百度网讯科技有限公司 | 一种语言模型的训练方法、查询方法和对应装置 |
CN113591456A (zh) * | 2021-07-23 | 2021-11-02 | 北京小米移动软件有限公司 | 文本纠错方法及装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于词序列拼积木模型的图像句子标注研究;张红斌;殷依;姬东鸿;任亚峰;;北京理工大学学报(第11期);全文 * |
张雪英.情报检索语言的兼容转换.东南大学出版社,2009,第21-23页. * |
Also Published As
Publication number | Publication date |
---|---|
CN116628143A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102485179B1 (ko) | 설명 정보 확정 방법, 장치, 전자 기기 및 컴퓨터 저장 매체 | |
US7689588B2 (en) | Method of syntactic pattern recognition of sequences | |
US10289717B2 (en) | Semantic search apparatus and method using mobile terminal | |
US8793121B2 (en) | Information processing apparatus, natural language analysis method, program and recording medium | |
US11366840B2 (en) | Log-aided automatic query expansion approach based on topic modeling | |
US9298693B2 (en) | Rule-based generation of candidate string transformations | |
KR20080068844A (ko) | 텍스트 메타데이터를 갖는 음성문서의 인덱싱 및 검색방법, 컴퓨터 판독가능 매체 | |
US8356065B2 (en) | Similar text search method, similar text search system, and similar text search program | |
CN102819601B (zh) | 信息检索方法和信息检索设备 | |
CN111191002A (zh) | 一种基于分层嵌入的神经代码搜索方法及装置 | |
US8874428B2 (en) | Method and apparatus for fast translation memory search | |
CN116431837B (zh) | 基于大型语言模型和图网络模型的文档检索方法和装置 | |
CN116628143B (zh) | 一种语言模型的处理方法及装置 | |
US9697830B2 (en) | Method and system for order-free spoken term detection | |
CN114003685B (zh) | 分词位置索引构建方法及其装置、文档检索方法及其装置 | |
CN116028626A (zh) | 文本匹配方法、装置、存储介质以及电子设备 | |
CN113553398A (zh) | 搜索词纠正方法、装置、电子设备及计算机存储介质 | |
CN111583910B (zh) | 模型更新方法、装置、电子设备及存储介质 | |
CN114357977B (zh) | 一种反抄袭实现方法、系统、设备及存储介质 | |
JP6040141B2 (ja) | キーワード付与装置、キーワード付与方法及びプログラム | |
KR101538131B1 (ko) | 버그 정정 개발자 추천을 위한 하이브리드 버그 할당 시스템 및 방법 | |
Allam et al. | Managed N-gram language model based on Hadoop framework and a Hbase tables | |
CN116186038A (zh) | 搜索方法、系统、电子设备及存储介质 | |
CN117933242A (zh) | 一种文本新词发现分析方法、系统、装置和介质 | |
Yu | Estimating language models using Hadoop and HBase |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |