CN114416213B - 词向量文件加载方法、装置及存储介质 - Google Patents
词向量文件加载方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114416213B CN114416213B CN202210315190.0A CN202210315190A CN114416213B CN 114416213 B CN114416213 B CN 114416213B CN 202210315190 A CN202210315190 A CN 202210315190A CN 114416213 B CN114416213 B CN 114416213B
- Authority
- CN
- China
- Prior art keywords
- word
- word vector
- length
- file
- index corresponding
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- 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/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种词向量文件加载方法、装置及存储介质,其中方法包括:在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;加载映射到内存后的词向量文件,构造词向量词典。本申请实施例提供的词向量文件加载方法、装置及存储介质,通过将原始词向量文件格式化为二进制文件有效节省了内存,在Golang环境下通过Syscall指令将词向量文件映射到内存,提高了加载速率,使用映射的内存文件作为词向量的存储对象,避免了内存碎片,减少了GC压力。
Description
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种词向量文件加载方法、装置及存储介质。
背景技术
文本的原生信息计算机无法识别,为了便于计算和处理,出现了词向量,即以数字化向量的方式来表征一个字、词、短语或者文本,通过词向量可以进一步发现语义之间的内在关联。
在自然语言处理过程中,词向量是百万级别的,生成的词向量词典占用很高的内存,在加载词向量生成词向量词典的过程中,耗时较长,加载过程慢。
发明内容
针对现有技术存在的上述问题,本申请提供一种词向量文件加载方法、装置及存储介质。
第一方面,本申请提供一种词向量文件加载方法,包括:
在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;
加载映射到内存后的词向量文件,构造词向量词典。
可选地,所述通过Syscall指令将格式化完成的词向量文件映射到内存之前,还包括:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
可选地,所述加载映射到内存后的词向量文件,构造词向量词典,包括:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
可选地,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
可选地,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
可选地,所述构造词向量词典之后,还包括:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
第二方面,本申请还提供一种词向量文件加载装置,包括:
映射模块,用于在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;
加载模块,用于加载映射到内存后的词向量文件,构造词向量词典。
可选地,所述装置还包括格式化模块,用于:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
可选地,所述加载模块还用于:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
可选地,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
可选地,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
可选地,所述装置还包括查找模块,用于:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
第三方面,本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的词向量文件加载方法。
第四方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的词向量文件加载方法。
第五发明,本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的词向量文件加载方法。
本申请提供的词向量文件加载方法、装置及存储介质,通过将原始词向量文件格式化为二进制文件有效节省了内存,在Golang环境下通过Syscall指令将词向量文件映射到内存,提高了加载速率,使用映射的内存文件作为词向量的存储对象,避免了内存碎片,减少了GC压力。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的词向量文件加载方法的流程示意图;
图2是本申请实施例提供的词向量文件加载装置的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
首先对本申请实施例中将出现的一些英文及缩写进行解释说明:
NLP:Natural Language Processing,自然语言处理。
FAQ:Frequently Asked Question,快速问答。
CGO:Go语言和C语言相互调用的机制。
GC:Garbage Collection,垃圾回收。
Key:词内容。
Value:词向量对应的索引。
Redis:Remote Dictionary Server,远程字典服务,是一个开源的使用标准c语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用程序编程接口。
Golang:又称Go,一种静态强类型、编译型语言,可并行化,且具有垃圾回收功能。
Syscall:从应用层到内核层的系统调用。
在Golang环境下,现有技术加载词向量的过程及存在的问题如下:
(1)程序启动时将词向量加载到内存中,生成词向量词典,词典Key为词内容,Value是128个浮点数。
①词向量的数量级达到百万级别,生成的词向量词典占用内存大,约18G。
②加载词向量生成词向量词典过程中,程序启动慢,耗时约5分钟。
(2)利用Redis存储词向量。
①在NLP过程中进行FAQ匹配时,会产生大量的查询操作,一词对话查询词向量上百词,查询频繁导致Redis压力大,设置导致异常。
②频繁查询Redis导致网络开销剧增。
(3)生成C内存,通过CGO调用。
①Golang频繁调用CGO,导致程序性能变差,产生大量的GC操作。
②Golang调用CGO导致程序可读性差,不易于维护。
针对现有技术存在的词向量占用内存高及加载慢的问题,本申请实施例提供一种词向量文件加载方法、装置及存储介质,通过将原始词向量文件格式化为二进制文件有效节省了内存,在Golang环境下通过Syscall指令将词向量文件映射到内存,提高了加载速率,使用映射的内存文件作为词向量的存储对象,避免了内存碎片,减少了GC压力。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例提供的词向量文件加载方法的流程示意图,如图1所示,该方法至少包括如下步骤:
步骤101、在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量。
具体地,Golang程序启动后,通过Syscall指令将词向量文件映射到内存,以提高读取速率。
原始词向量文件格式为:词+分隔符+词向量,词向量中间也通过分隔符隔开,一行词向量数据对应一条词向量。将原始词向量文件格式化,并转为二进制文件,可以有效节省内存空间。
格式化完成的词向量文件包括词长度、词、词向量长度和词向量,其中词长度是指存储词对应的长度,词是指具体词内容,词向量长度是指存储词向量对应的长度,词向量是指具体词向量。
只要原始词向量文件不修改,对应的格式化完成的二进制的词向量文件也不会修改,因此格式化完成的二进制的词向量文件可以提前格式化完成,在程序启动时无需重新格式化,进一步节省程序启动消耗。
步骤102、加载映射到内存后的词向量文件,构造词向量词典。
具体地,构造词向量词典的过程中,读取索引是通过词向量文件映射到内存中来实现,以提高读取或加载速度。
格式化完成的词向量文件映射到内存,获取词向量对应的索引,然后获取词,从而构造词向量词典。其中,Key:词,Value:词向量对应的索引。使用映射的内存文件作为词向量的存储对象,可以避免造成内存碎片,减少GC压力。
本申请实施例提供的词向量文件加载方法,通过将原始词向量文件格式化为二进制文件有效节省了内存,在Golang环境下通过Syscall指令将词向量文件映射到内存,提高了加载速率,使用映射的内存文件作为词向量的存储对象,避免了内存碎片,减少了GC压力。
可选地,所述通过Syscall指令将格式化完成的词向量文件映射到内存之前,还包括:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
具体地,在通过Syscall指令将格式化完成的词向量文件映射到内存之前,完成词向量文件的格式化。词向量文件的格式化可以在Golang程序启动时进行,也可以在Golang程序启动前提前格式化完成。
格式化词向量文件的具体格式如下:
词长度(固定为32字节)+词+词向量长度(固定32字节)+词向量(根据词向量训练模型不同而变化,NLP为128维模型,对应128个浮点数,每个词向量通过空格隔开),具体参见表1。
表1:格式化词向量文件的具体格式
词向量文件格式化的具体过程至少包括:
①原始词向量文件的格式为:词+分隔符+词向量,词向量中间也通过分隔符隔开,一行词向量数据对应一条词向量。
②读取一行词向量数据,计算词长度,获取词,计算词向量长度(包括分隔符),获取词向量,写入格式化文件转为二进制文件。
③获取格式化完成的词向量文件。只要原始词向量文件不修改,对应的格式化完成的二进制的词向量文件也不会修改,因此格式化完成的二进制的词向量文件可以提前格式化完成,在程序启动时无需重新格式化,可以节省程序启动消耗。
本申请实施例提供的词向量文件加载方法,通过将原始词向量文件格式化为二进制文件有效节省了内存,同时可以通过提前将词向量文件格式化完成来节省程序启动消耗,提高加载速度。
可选地,所述加载映射到内存后的词向量文件,构造词向量词典,包括:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
具体地,构造Golang的词向量词典,至少包括:
①读取映射到内存后的词向量文件,获取当前词向量对应的索引。
第一条词向量对应的索引计算:词长度变量(固定32字节)+具体词长度。
当前词向量对应的索引计算:上一个词向量对应的索引+上一个词的词向量长度变量(固定32字节)+上一个词的词向量长度+当前词的词长度变量(固定32字节)+当前词的词长度。
②获取当前词对应的索引。
第一条词对应的索引计算:默认索引从0开始。
当前词对应的索引计算:上一个词对应的索引+上一个词的词长度变量(固定32字节)+上一个词的词长度+上一个词的词向量长度变量(固定32字节)+上一个词的词向量长度。
③基于当前词对应的索引获取当前词的词长度。基于②中获取的当前词对应的索引,获取词长度。
④基于当前词对应的索引和当前词的词长度获取当前词。基于②中获取的词对应的索引,③中获取的词长度,获取具体的词。
⑤构造词向量词典,Key:词,Value:词向量对应的索引。
构造完成的Golang的词向量词典占用内存为2G,相较于原有的词典占用内存为18G,节省了大量的内存空间。
可选地,所述构造词向量词典之后,还包括:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
具体地,词向量词典构造完成后,可以查询词向量词典,查询的步骤至少包括:
①基于目标词查询得到目标词向量对应的索引。基于具体的词查询得到词向量对应的索引。
②基于目标词向量对应的索引查找目标词向量长度。基于词向量对应的索引查找词向量长度。
③基于目标词向量长度和目标词向量对应的索引查找目标词向量。基于①中得到的词向量对应的索引和②中得到的词向量长度获取具体的词向量。
可选地,本申请实施例提供的词向量文件加载方法,可以适用于各种语言(例如中文、英文等)的词向量外,还可以适用于模型文件。
本申请实施例提供的词向量文件加载方法,通过将原始词向量文件格式化为二进制文件有效节省了内存,在Golang环境下通过Syscall指令将词向量文件映射到内存,提高了加载速率,使用映射的内存文件作为词向量的存储对象,避免了内存碎片,减少了GC压力,解决了Golang词向量词典占用内存大及加载慢的问题。通过该方法,内存占用3G,相较于原本的18G整体降低了15G内存;对于程序加载速度,原来耗时5分钟,优化后耗时1分钟左右。
下面对本申请提供的词向量文件加载装置进行描述,下文描述的词向量文件加载装置与上文描述的词向量文件加载方法可相互对应参照。
图2是本申请实施例提供的词向量文件加载装置的结构示意图,如图2所示,该装置至少包括:
映射模块201,用于在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;
加载模块202,用于加载映射到内存后的词向量文件,构造词向量词典。
可选地,所述装置还包括格式化模块,用于:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
可选地,所述加载模块还用于:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
可选地,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
可选地,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
可选地,所述装置还包括查找模块,用于:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
图3是本申请实施例提供的电子设备的结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行词向量文件加载方法,该方法包括:
在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;
加载映射到内存后的词向量文件,构造词向量词典。
可选地,所述通过Syscall指令将格式化完成的词向量文件映射到内存之前,还包括:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
可选地,所述加载映射到内存后的词向量文件,构造词向量词典,包括:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
可选地,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
可选地,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
可选地,所述构造词向量词典之后,还包括:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的词向量文件加载方法,该方法包括:
在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;
加载映射到内存后的词向量文件,构造词向量词典。
可选地,所述通过Syscall指令将格式化完成的词向量文件映射到内存之前,还包括:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
可选地,所述加载映射到内存后的词向量文件,构造词向量词典,包括:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
可选地,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
可选地,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
可选地,所述构造词向量词典之后,还包括:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的词向量文件加载方法,该方法包括:
在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;
加载映射到内存后的词向量文件,构造词向量词典。
可选地,所述通过Syscall指令将格式化完成的词向量文件映射到内存之前,还包括:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
可选地,所述加载映射到内存后的词向量文件,构造词向量词典,包括:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
可选地,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
可选地,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
可选地,所述构造词向量词典之后,还包括:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种词向量文件加载方法,其特征在于,包括:
在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;所述词长度对应的字节数为32字节,所述词向量长度对应的字节数为32字节;
加载映射到内存后的词向量文件,构造词向量词典;
所述加载映射到内存后的词向量文件,构造词向量词典,包括:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
2.根据权利要求1所述的词向量文件加载方法,其特征在于,所述通过Syscall指令将格式化完成的词向量文件映射到内存之前,还包括:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
3.根据权利要求1所述的词向量文件加载方法,其特征在于,所述当前词向量对应的索引基于上一个词向量对应的索引、上一个词的词向量长度变量、所述上一个词的词向量长度、当前词的词长度变量和所述当前词的词长度确定。
4.根据权利要求1所述的词向量文件加载方法,其特征在于,所述当前词对应的索引基于上一个词对应的索引、所述上一个词的词长度变量、所述上一个词的词长度、所述上一个词的词向量长度变量和所述上一个词的词向量长度确定。
5.根据权利要求1所述的词向量文件加载方法,其特征在于,所述构造词向量词典之后,还包括:
基于目标词查询得到目标词向量对应的索引;
基于所述目标词向量对应的索引查找目标词向量长度;
基于所述目标词向量长度和所述目标词向量对应的索引查找所述目标词向量。
6.一种词向量文件加载装置,其特征在于,包括:
映射模块,用于在Golang程序启动后,通过Syscall指令将格式化完成的词向量文件映射到内存;所述格式化完成的词向量文件为二进制文件,所述格式化完成的词向量文件包括词长度、词、词向量长度和词向量;所述词长度对应的字节数为32字节,所述词向量长度对应的字节数为32字节;
加载模块,用于加载映射到内存后的词向量文件,构造词向量词典;
所述加载模块还用于:
读取所述映射到内存后的词向量文件,获取当前词向量对应的索引;
获取当前词对应的索引;
基于所述当前词对应的索引获取所述当前词的词长度;
基于所述当前词对应的索引和所述当前词的词长度获取所述当前词;
以词为Key,以词向量对应的索引为Value,构造所述词向量词典。
7.根据权利要求6所述的词向量文件加载装置,其特征在于,所述装置还包括格式化模块,用于:
读取原始词向量数据,计算词长度,获取词,计算词向量长度,获取词向量;
写入格式化文件转为二进制文件;
获取所述格式化完成的词向量文件。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述词向量文件加载方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述词向量文件加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210315190.0A CN114416213B (zh) | 2022-03-29 | 2022-03-29 | 词向量文件加载方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210315190.0A CN114416213B (zh) | 2022-03-29 | 2022-03-29 | 词向量文件加载方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114416213A CN114416213A (zh) | 2022-04-29 |
CN114416213B true CN114416213B (zh) | 2022-06-28 |
Family
ID=81263369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210315190.0A Active CN114416213B (zh) | 2022-03-29 | 2022-03-29 | 词向量文件加载方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416213B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559711A (zh) * | 2020-12-23 | 2021-03-26 | 作业帮教育科技(北京)有限公司 | 一种同义文本提示方法、装置及电子设备 |
CN112988964A (zh) * | 2021-02-20 | 2021-06-18 | 平安科技(深圳)有限公司 | 文本韵律边界预测的方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9342479B2 (en) * | 2012-08-23 | 2016-05-17 | Qualcomm Incorporated | Systems and methods of data extraction in a vector processor |
CN109918497A (zh) * | 2018-12-21 | 2019-06-21 | 厦门市美亚柏科信息股份有限公司 | 一种基于改进textCNN模型的文本分类方法、装置及存储介质 |
CN109933652A (zh) * | 2019-01-17 | 2019-06-25 | 深圳壹账通智能科技有限公司 | 智能问答方法、装置、计算机设备及存储介质 |
CN110852077B (zh) * | 2019-11-13 | 2023-03-31 | 泰康保险集团股份有限公司 | 动态调整Word2Vec模型词典的方法、装置、介质及电子设备 |
CN111209747B (zh) * | 2020-01-16 | 2023-02-28 | 北京明略软件系统有限公司 | 一种词向量文件加载方法、装置、存储介质及电子设备 |
-
2022
- 2022-03-29 CN CN202210315190.0A patent/CN114416213B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559711A (zh) * | 2020-12-23 | 2021-03-26 | 作业帮教育科技(北京)有限公司 | 一种同义文本提示方法、装置及电子设备 |
CN112988964A (zh) * | 2021-02-20 | 2021-06-18 | 平安科技(深圳)有限公司 | 文本韵律边界预测的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114416213A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115061721A (zh) | 一种报表生成方法、装置、计算机设备及存储介质 | |
US20080010238A1 (en) | Index having short-term portion and long-term portion | |
CN102202242A (zh) | 基于机顶盒浏览器的JavaScript解释器实现方法 | |
CN110362593B (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN113254588B (zh) | 一种数据搜索方法及系统 | |
CN114610845A (zh) | 基于多系统的智能问答方法、装置和设备 | |
CN109299471A (zh) | 一种文本匹配的方法、装置及终端 | |
US20140129543A1 (en) | Search service including indexing text containing numbers in part using one or more number index structures | |
CN111259038A (zh) | 一种数据库查询及数据导出方法、系统、介质及设备 | |
CN111191469A (zh) | 大规模语料清洗对齐方法及装置 | |
CN114416213B (zh) | 词向量文件加载方法、装置及存储介质 | |
CN107832341B (zh) | Agnss用户去重统计方法 | |
CN109684357B (zh) | 信息处理方法及装置、存储介质、终端 | |
CN110795617A (zh) | 一种搜索词的纠错方法及相关装置 | |
CN111046636A (zh) | 筛选pdf文件信息的方法、装置、计算机设备及存储介质 | |
US12093234B2 (en) | Data processing method, apparatus, electronic device, and computer storage medium | |
CN115840803A (zh) | 文献检索方法、系统、计算机设备及存储介质 | |
CN115221266A (zh) | 生语料检索方法、装置、电子设备和存储介质 | |
CN113627129B (zh) | 一种文字复制方法、装置、电子设备及可读存储介质 | |
CN114064007A (zh) | 程序语句处理方法、装置、设备及存储介质 | |
CN113821533A (zh) | 数据查询的方法、装置、设备以及存储介质 | |
CN113392628A (zh) | 一种文本解析结果的核查方法及装置 | |
US11720531B2 (en) | Automatic creation of database objects | |
CN112836477B (zh) | 代码注释文档的生成方法、装置、电子设备及存储介质 | |
CN111427938B (zh) | 数据转存的方法和装置 |
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 |