CN113190657B - NLP数据预处理方法、jvm及spark端服务器 - Google Patents

NLP数据预处理方法、jvm及spark端服务器 Download PDF

Info

Publication number
CN113190657B
CN113190657B CN202110539452.7A CN202110539452A CN113190657B CN 113190657 B CN113190657 B CN 113190657B CN 202110539452 A CN202110539452 A CN 202110539452A CN 113190657 B CN113190657 B CN 113190657B
Authority
CN
China
Prior art keywords
rule
word
processing
data
tfidf
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
Application number
CN202110539452.7A
Other languages
English (en)
Other versions
CN113190657A (zh
Inventor
李瑞男
张岩
王鹏程
狄潇然
卢伟
田林
朱阿龙
豆敏娟
张亚泽
张小乐
刘琦
张靖羚
石慧彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202110539452.7A priority Critical patent/CN113190657B/zh
Publication of CN113190657A publication Critical patent/CN113190657A/zh
Application granted granted Critical
Publication of CN113190657B publication Critical patent/CN113190657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种NLP数据预处理方法、jvm及spark端服务器,涉及人工智能技术领域,该方法包括:对待处理数据进行初步处理,得到初始输入数据,初步处理包括去停用词和切词;接收spark端服务器发送的字典规则,字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果;将PCA处理的输出结果确定为待处理数据的预处理结果。本发明可以简化jvm获取NLP数据预处理结果的过程,同时能够利用各种算法模型得到更加准确的预处理结果。

Description

NLP数据预处理方法、jvm及spark端服务器
技术领域
本发明涉及人工智能技术领域,尤其涉及一种NLP数据预处理方法、jvm及spark端服务器。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,对于文本的自然语言处理(Natural Language Processing,NLP)处理,需要先用到spark.ml或者sklearn等机器学习框架进行预处理操作。但是目前大多服务的后台都是运行在Java虚拟机(Java Virtual Machine,jvm)上,由于jvm与spark.ml等机器学习框架的开发语言并不相同,导致基于spark或者python的sklearn机器学习框架无法完整部署到jvm平台上。
现有的机器学习跨平台实现方法有预言模型标记语言(Predictive ModelMarkup Language,pmml),通过pmml在spark端生成机器学习模型的xml数据包,之后将xml数据包导入jvm端,在jvm端将xml数据包解析为java语言的机器学习模型并使用。但是上述过程需要先生成数据包、再解析数据包,实现过程较为繁琐,同时,受到解析程序的限制,xml数据包中可以包含较为简单的运算模型,复杂的运算模型无法复用到jvm端,导致NLP数据的预处理无法达到令人满意的效果。
发明内容
本发明实施例提供一种NLP数据预处理方法,用以解决目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据,导致预处理结果无法达到令人满意的效果的问题,该方法应用于jvm,该jvm与spark端服务器连接,该方法包括:
对待处理数据进行初步处理,得到初始输入数据,初步处理包括去停用词和切词;
接收spark端服务器发送的字典规则,所述字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;
通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果;
将PCA处理的输出结果确定为待处理数据的预处理结果。
本发明实施例还提供一种NLP数据预处理方法,用以解决目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据,导致预处理结果无法达到令人满意的效果的问题,该方法应用于spark端服务器,该spark端服务器与jvm连接,该方法包括:
对获取的训练数据进行初步处理,得到初始训练数据,初步处理包括去停用词和切词;
对初始训练数据执行预处理的各个步骤,将各个操作步骤的输入和输出的对应关系分别持久化为字典规则,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;
向jvm发送所述字典规则,以供jvm通过字典规则的读取确定待处理数据的预处理结果。
本发明实施例还提供一种jvm,用以解决目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据,导致预处理结果无法达到令人满意的效果的问题,该jvm与spark端服务器连接,该jvm包括:
第一处理模块,用于对待处理数据进行初步处理,得到初始输入数据,初步处理包括去停用词和切词;
第一通信模块,用于接收spark端服务器发送的字典规则,所述字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;
确定模块,用于通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果;
确定模块,还用于将PCA处理的输出结果确定为待处理数据的预处理结果。
本发明实施例还提供一种spark端服务器,用以解决目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据,导致预处理结果无法达到令人满意的效果的问题,该spark端服务器与jvm连接,该spark端服务器包括:
第二处理模块,用于对获取的训练数据进行初步处理,得到初始训练数据,初步处理包括去停用词和切词;
规则持久化模块,用于对初始训练数据执行预处理的各个步骤,将各个操作步骤的输入和输出的对应关系分别持久化为字典规则,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;
第二通信模块,用于向jvm发送所述字典规则,以供jvm通过字典规则的读取确定待处理数据的预处理结果。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述NLP数据预处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述NLP数据预处理方法的计算机程序。
本发明实施例中,将spark端服务器将预处理数据的各个操作步骤的输入输出对应关系持久化为字典规则,这里的逻辑类似黑箱原理,不关心具体某一个预处理操作步骤具体的实现方式,而是只关注该操作步骤的输入和输出的对应关系,在jvm中解析并读取字典规则,可以实现无需进行中间过程的算法处理即得到与输入对应的输出结果,从而实现跨平台的数据处理。简而言之,各个预处理操作步骤的算法模型训练交给spark端服务器完成,jvm直接应用计算结果,从而实现解决了目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据的问题,提升了数据预处理的速度,同时能够利用各种算法模型得到更加准确的预处理结果。此外,本发明实施例中字典规则的持久化和解析,只涉及文本文件的写入和读取,而且还原字典规则的代码和读取字典规则的代码都是可见的,并且逻辑简单,实现方便,还方便了开发人员根据需要进行灵活修改,也容易扩展到其他平台。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中一种应用于jvm的NLP数据预处理方法的流程图;
图2为本发明实施例中一种应用于spark端服务器的NLP数据预处理方法的流程图;
图3为本发明实施例中一种jvm和spark端服务器协同完成NLP数据预处理方法的示意图;
图4为本发明实施例中一种jvm的结构示意图;
图5为本发明实施例中一种spark端服务器的结构示意图;
图6为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供了一种NLP数据预处理方法,应用于jvm,jvm与spark端服务器连接,如图1所示,该方法包括步骤101至步骤104:
步骤101、对待处理数据进行初步处理,得到初始输入数据。
其中,初步处理包括去停用词和切词。
本发明实施例中,可以采用ansj对待处理数据进行初步处理,或者还可以采用其他具备去停用词和切词功能的工具进行上述初步处理。一般情况下,待处理数据为句子,进行初步处理后,得到的初始输入数据为多个词语,比如说,对于一个短句“我和你。”,进行切词后,得到“我”、“和”、“你”三个词语。
步骤102、接收spark端服务器发送的字典规则,字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理。
需要说明的是,字典规则以文本文件的格式存在,jvm通过scala(一种编程语言)解析这些字典规则。
字典规则包括第一规则、第二规则、第三规则和第四规则,其中第一规则为TFIDF(Term Frequency–Inverse Document Frequency)处理中每个词语与词向量维度的对应关系;第二规则为TFIDF处理中每个词向量维度与IDF值的对应关系;第三规则为基于信息增益的降维处理中每个词向量维度与各自重要性顺序的对应关系;第四规则为PCA(Principal Component Analysis,主成分分析)处理中输入和输出进行词向量维度空间映射的转换矩阵。
具体的,预先设定了一个长度为n的初始值全部为0的词向量,在TFIDF处理中,spark端服务器通过对大量训练数据的处理,确定了训练数据中n个词语的词向量维度,也即n个词语中各个词语在词向量中的所处位置,比如说,对于一个长度为10的词向量,其中包含10个词语,10个词语在词向量中有一个先后顺序,“我”在词向量中排序为2的位置,则2即为词语“我”的词向量维度,“微笑”在词向量中排序为9的位置,则词语“微笑”的词向量维度即为9。上述词语与词向量维度的对应关系即为本发明实施例中的第一规则。
需要说明的是,词向量的长度n由用户设定,且其在设定后为固定值。考虑到当词向量过长时会导致计算量增长,同时一些词语的出现较少,该些词语对于预处理结果的影响较小,所设定的词向量长度可以少于实际由训练数据切分得到的词语的数量,将较少出现的词语不纳入词向量中,以此来平衡计算量与预处理结果的准确度。在另一些情况下,也可能由于训练数据较少导致切分的词语数量少于词向量的长度,在此种情况下,缺少词语对应的词向量维度设置为空。
在确定词语与词向量维度的对应关系之后,spark端服务器利用TFIDF算法,确定了每个词向量维度与IDF值的对应关系,也即第二规则。
第三规则为每个词向量维度与其重要性顺序的对应关系,也即对n个词语进行了重要性的排序,每个词语的词向量维度得到其在该n个词语中的重要性序号,比如说,“我”的词向量维度2在10个词语中的重要性顺序为4,“微笑”的词向量维度9在10个词语中的重要性顺序为8。
PCA处理为预处理过程中的最后一个步骤,结合前两个步骤中得到的结果进行运算,得到一个将PCA处理的输入转换为输出的转换矩阵,利用输入与转换矩阵进行运算,即可得到PCA处理的输出结果,也即待处理数据的预处理结果。
在得到待处理数据的预处理结果之后,可以将该预处理结果输入机器学习模型进行结果预测,比如说,机器学习模型为进行积极情绪与消极情绪预测的二分类模型,将预处理结果输入该二分类模型,即可得到对于待处理数据为积极或消极的模型预测结果。
步骤103、通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果。
下面将对各个操作步骤得到输出结果的具体实现过程进行介绍。
①、操作步骤为TFIDF处理
由于字典规则无法直接读取,需要先将字典规则还原为字典类型数据,也即将第一规则和第二规则分别还原为字典类型数据。第一规则记为rule_map_word_to_vector_1,还原得到的字典类型数据为word_to_vector;第二规则记为rule_map_vector_to_idf_2,还原得到的字典类型数据为vector_to_idf。
读取word_to_vector,确定词向量维度数量,构建容纳与词向量维度数量等数量元素的空数组,空数组中各个元素所在位置与第一规则中词向量所在位置一一对应。其中,词向量维度数量也即词向量长度,根据第一规则中每个词语与词向量维度的对应关系,可以统计的得到词向量中包含多少个词语,构建一个等长的空数组。
模型预测阶段,遍历从待处理数据中得到的初始输入数据,确定初始输入数据中每个词语出现的次数(也即TF的值),根据词语与词向量维度的对应关系,将每个词语出现的次数填入空数组中与词语对应的词向量所在位置。比如说,根据第一规则读取的词向量的长度为5,词语我、他、她、你、和分别对应词向量维度0、1、2、3、4,初始输入数据为“我和你和我”,切分后的词语为我、和、你,其中我、和出现的次数均为2次,你出现的次数为1次,则向构建的长度为5的空数组中与词语对应的位置填入词语的出现次数,未出现的词语记为0,得到的数组为{2,0,0,1,2}。
读取vector_to_idf,确定初始输入数据中每个词语的词向量维度对应的IDF值。示例性的,也即从第二规则还原的字典类型数据中读出词向量维度0(对应的词语为“我”)、词向量维度3(对应的词语为“你”)、词向量维度4(对应的词语为“和”)分别对应的IDF值。每个词向量维度的IDF值已预先在spark端服务器计算得到,因此,通过读取第二规则还原的字典类型数据,无需进行其他计算即可确定每个词向量维度对应的IDF值。
计算初始输入数据中每个词语出现的次数与对应IDF值的乘积,作为每个词语的TFIDF值,也即TF×IDF=TFIDF值。
利用TFIDF值替换数组中每个词语的出现的次数,将得到的数组作为TFIDF的输出结果。比如说,IDF值为2,则得到的TFIDF的输出结果为数组{4,0,0,2,4}。
②、操作步骤为基于信息增益的降维处理
将第三规则还原为字典类型数据。将第三规则记为rule_map_vector_to_IGsort_3,还原得到的字典类型数据为vector_to_Igsort。
spark端计算信息增益(Information Gain,IG)得到词向量维度的重用性排序。读取vector_to_Igsort,确定初始输入数据中每个词语的每个词向量维度对应的重要性顺序。第三规则中定义了词向量所有维度的重要性顺序,某一维度携带的信息越多,其重要性越高,重要性顺序越靠前。初始输入数据中一般只包含其中部分词语,按照各个词语对应的词向量维度在所有词向量维度中的重要性顺序,确定各个词语的词向量维度的排序,比如说,词向量维度为100,初始输入数据中包含3个词“我”、“和”、“你”,该3个词在所有词向量维度中的重要性排序分别为25、16、40,则确定初始输入数据中词语重要性递减的顺序为“和”、“我”、“你”。
考虑到选择重要性顺序在前K个的词语,按照重要性顺序递减的顺序将词语对应的TFIDF值存入新建数组中,得到基于信息增益的降维处理的输出结果。其中,K由用户设置,该输出结果为一数组。也就是说,为了提升计算速度,对数组进行降维处理,比如说,初始输入数据的词语总数量为20,现选择重要性顺序在前10的词语,舍弃重要性顺序在后10的词语,这样就将原数组的维度降低至10,达到了降维处理的目的。
④、操作步骤为PCA处理
将第四规则还原为转换矩阵,将第四规则记为rule_matrix_of_pca_4,还原后的转换矩阵为Matrix。Matrix为K×M的矩阵,M为spark端进行PCA转换时,选择的希望降低到的降维数。
对基于信息增益的降维处理的输出结果与转换矩阵做向量叉乘运算,得到PCA处理的输出结果。将基于信息增益的降维处理中得到的输出结果记为afterIGArray,则PCA处理的输出结果为afterIGArray×Matrix。
步骤104、将PCA处理的输出结果确定为待处理数据的预处理结果。
也就是说,将afterIGArray×Matrix的结果确定为待处理数据的预处理结果。
本发明实施例中,将spark端服务器将预处理数据的各个操作步骤的输入输出对应关系持久化为字典规则,这里的逻辑类似黑箱原理,不关心具体某一个预处理操作步骤具体的实现方式,而是只关注该操作步骤的输入和输出的对应关系,在jvm中解析并读取字典规则,可以实现无需进行中间过程的算法处理即得到与输入对应的输出结果,从而实现跨平台的数据处理。简而言之,各个预处理操作步骤的算法模型训练交给spark端服务器完成,jvm直接应用计算结果,从而实现解决了目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据的问题,提升了数据预处理的速度,同时能够利用各种算法模型得到更加准确的预处理结果。此外,本发明实施例中字典规则的持久化和解析,只涉及文件的写入和读取,而且还原字典规则的代码和读取字典规则的代码都是可见的,并且逻辑简单,实现方便,还方便了开发人员根据需要进行灵活修改,也容易扩展到其他平台。
本发明实施例还提供了一种NLP数据预处理方法,应用于spark端服务器,spark端服务器与jvm连接,如图2所示,该方法包括步骤201至步骤203:
步骤201、对获取的训练数据进行初步处理,得到初始训练数据。
其中,初步处理包括去停用词和切词。
需要说明的是,为了确保spark端服务器确定的字典规则能够应用于jvm,spark端服务器初步处理训练数据所使用的方法与jvm初步处理待处理数据所使用的方法需相同。比如说,spark端服务器和jvm均使用ansj方法进行初步处理。
步骤202、对初始训练数据执行预处理的各个步骤,将各个操作步骤的输入和输出的对应关系分别持久化为字典规则,操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理。
步骤203、向jvm发送字典规则,以供jvm通过字典规则的读取确定待处理数据的预处理结果。
如图3所示,本发明实施例还提供了一种jvm和spark端服务器协同完成NLP数据预处理方法的示意图,如图3所示,spark端服务器将每个操作步骤的规则持久化后,jvm直接利用持久化的规则确定初始输入数据每个操作步骤的输出结果,从而令用户明确每个操作步骤执行了什么数据转换过程。
本发明实施例中,将spark端服务器将预处理数据的各个操作步骤的输入输出对应关系持久化为字典规则,这里的逻辑类似黑箱原理,不关心具体某一个预处理操作步骤具体的实现方式,而是只关注该操作步骤的输入和输出的对应关系,在jvm中解析并读取字典规则,可以实现无需进行中间过程的算法处理即得到与输入对应的输出结果,从而实现跨平台的数据处理。简而言之,各个预处理操作步骤的算法模型训练交给spark端服务器完成,jvm直接应用计算结果,从而实现解决了目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据的问题,提升了数据预处理的速度,同时能够利用各种算法模型得到更加准确的预处理结果。此外,本发明实施例中字典规则的持久化和解析,只涉及文件的写入和读取,而且还原字典规则的代码和读取字典规则的代码都是可见的,并且逻辑简单实现方便,还方便了开发人员根据需要进行灵活修改,也容易扩展到其他平台。
本发明实施例中还提供了一种jvm,该jvm与spark端服务器连接,如下面的实施例所述。由于该装置解决问题的原理与NLP数据预处理方法相似,因此该装置的实施可以参见NLP数据预处理方法的实施,重复之处不再赘述。
如图4所示,该jvm400包括第一处理模块401、第一通信模块402和确定模块403。
其中,第一处理模块401,用于对待处理数据进行初步处理,得到初始输入数据,初步处理包括去停用词和切词;
第一通信模块402,用于接收spark端服务器发送的字典规则,字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;
确定模块403,用于通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果;
确定模块403,还用于将PCA处理的输出结果确定为待处理数据的预处理结果。
在本发明实施例的一种实现方式中,字典规则包括第一规则、第二规则、第三规则和第四规则,其中第一规则为TFIDF处理中每个词语与词向量维度的对应关系;第二规则为TFIDF处理中每个词向量维度与IDF值的对应关系;第三规则为基于信息增益的降维处理中每个词向量维度与各自重要性顺序的对应关系;第四规则为PCA处理中输入和输出进行词向量维度空间映射的转换矩阵。
在本发明实施例的一种实现方式中,当操作步骤为TFIDF处理时,确定模块403,用于:
将第一规则和第二规则分别还原为字典类型数据;
读取第一规则还原的字典类型数据,确定词向量维度数量,构建容纳与词向量维度数量等数量元素的空数组,空数组中各个元素所在位置与第一规则中词向量所在位置一一对应;
遍历初始输入数据,确定初始输入数据中每个词语出现的次数,根据词语与词向量维度的对应关系,将每个词语出现的次数填入空数组中与词语对应的词向量所在位置;
读取第二规则还原的字典类型数据,确定初始输入数据中每个词语的词向量维度对应的IDF值;
计算初始输入数据中每个词语出现的次数与对应IDF值的乘积,作为每个词语的TFIDF值;
利用TFIDF值替换数组中每个词语的出现的次数,将得到的数组作为TFIDF的输出结果。
在本发明实施例的一种实现方式中,当操作步骤为基于信息增益的降维处理时,确定模块403,用于:
将第三规则还原为字典类型数据;
读取第三规则还原的字典类型数据,确定初始输入数据中每个词语的每个词向量维度对应的重要性顺序;
选择重要性顺序在前K个的词语,按照重要性顺序递减的顺序将词语对应的TFIDF值存入新建数组中,得到基于信息增益的降维处理的输出结果。
在本发明实施例的一种实现方式中,当操作步骤为PCA处理时,确定模块403,用于:
将第四规则还原为转换矩阵;
对基于信息增益的降维处理的输出结果与转换矩阵做向量叉乘运算,得到PCA处理的输出结果。
本发明实施例中,将spark端服务器将预处理数据的各个操作步骤的输入输出对应关系持久化为字典规则,这里的逻辑类似黑箱原理,不关心具体某一个预处理操作步骤具体的实现方式,而是只关注该操作步骤的输入和输出的对应关系,在jvm中解析并读取字典规则,可以实现无需进行中间过程的算法处理即得到与输入对应的输出结果,从而实现跨平台的数据处理。简而言之,各个预处理操作步骤的算法模型训练交给spark端服务器完成,jvm直接应用计算结果,从而实现解决了目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据的问题,提升了数据预处理的速度,同时能够利用各种算法模型得到更加准确的预处理结果。此外,本发明实施例中字典规则的持久化和解析,只涉及文件的写入和读取,而且还原字典规则的代码和读取字典规则的代码都是可见的,并且逻辑简单实现方便,还方便了开发人员根据需要进行灵活修改,也容易扩展到其他平台。
本发明实施例中还提供了一种spark端服务器,该spark端服务器与jvm连接,如下面的实施例所述。由于该装置解决问题的原理与NLP数据预处理方法相似,因此该装置的实施可以参见NLP数据预处理方法的实施,重复之处不再赘述。
如图5所示,该spark端服务器500包括第二处理模块501、规则持久化模块502和第二通信模块503。
其中,第二处理模块501,用于对获取的训练数据进行初步处理,得到初始训练数据,初步处理包括去停用词和切词;
规则持久化模块502,用于对初始训练数据执行预处理的各个步骤,将各个操作步骤的输入和输出的对应关系分别持久化为字典规则,操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;
第二通信模块503,用于向jvm发送字典规则,以供jvm通过字典规则的读取确定待处理数据的预处理结果。
本发明实施例中,将spark端服务器将预处理数据的各个操作步骤的输入输出对应关系持久化为字典规则,这里的逻辑类似黑箱原理,不关心具体某一个预处理操作步骤具体的实现方式,而是只关注该操作步骤的输入和输出的对应关系,在jvm中解析并读取字典规则,可以实现无需进行中间过程的算法处理即得到与输入对应的输出结果,从而实现跨平台的数据处理。简而言之,各个预处理操作步骤的算法模型训练交给spark端服务器完成,jvm直接应用计算结果,从而实现解决了目前jvm得到NLP数据预处理结果的过程较为繁琐,且无法利用较为复杂的运算模型预处理NLP数据的问题,提升了数据预处理的速度,同时能够利用各种算法模型得到更加准确的预处理结果。此外,本发明实施例中字典规则的持久化和解析,只涉及文件的写入和读取,而且还原字典规则的代码和读取字典规则的代码都是可见的,并且逻辑简单,实现方便,还方便了开发人员根据需要进行灵活修改,也容易扩展到其他平台。
本发明实施例还提供一种计算机设备,图6为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的NLP数据预处理方法中全部步骤,该计算机设备具体包括如下内容:
处理器(processor)601、存储器(memory)602、通信接口(CommunicationsInterface)603和通信总线604;
其中,所述处理器601、存储器602、通信接口603通过所述通信总线604完成相互间的通信;所述通信接口603用于实现相关设备之间的信息传输;
所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的NLP数据预处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述NLP数据预处理方法的计算机程序。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种NLP数据预处理方法,其特征在于,应用于jvm,所述jvm与spark端服务器连接,所述方法包括:
对待处理数据进行初步处理,得到初始输入数据,初步处理包括去停用词和切词;
接收spark端服务器发送的字典规则,所述字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;所述字典规则包括第一规则、第二规则、第三规则和第四规则,其中所述第一规则为TFIDF处理中每个词语与词向量维度的对应关系;所述第二规则为TFIDF处理中每个词向量维度与IDF值的对应关系;所述第三规则为基于信息增益的降维处理中每个词向量维度与各自重要性顺序的对应关系;所述第四规则为PCA处理中输入和输出进行词向量维度空间映射的转换矩阵;
通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果;
将PCA处理的输出结果确定为待处理数据的预处理结果;
当操作步骤为TFIDF处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:
将第一规则和第二规则分别还原为字典类型数据;
读取第一规则还原的字典类型数据,确定词向量维度数量,构建容纳与词向量维度数量等数量元素的空数组,空数组中各个元素所在位置与第一规则中词向量所在位置一一对应;
遍历初始输入数据,确定初始输入数据中每个词语出现的次数,根据词语与词向量维度的对应关系,将每个词语出现的次数填入空数组中与词语对应的词向量所在位置;
读取第二规则还原的字典类型数据,确定初始输入数据中每个词语的词向量维度对应的IDF值;
计算初始输入数据中每个词语出现的次数与对应IDF值的乘积,作为每个词语的TFIDF值;
利用TFIDF值替换数组中每个词语的出现的次数,将得到的数组作为TFIDF的输出结果;
当操作步骤为基于信息增益的降维处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:
将第三规则还原为字典类型数据;
读取第三规则还原的字典类型数据,确定初始输入数据中每个词语的每个词向量维度对应的重要性顺序;
选择重要性顺序在前K个的词语,按照重要性顺序递减的顺序将词语对应的TFIDF值存入新建数组中,得到基于信息增益的降维处理的输出结果;
当操作步骤为PCA处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:
将第四规则还原为转换矩阵;
对基于信息增益的降维处理的输出结果与转换矩阵做向量叉乘运算,得到PCA处理的输出结果。
2.一种NLP数据预处理方法,其特征在于,应用于spark端服务器,所述spark端服务器与jvm连接,所述方法包括:
对获取的训练数据进行初步处理,得到初始训练数据,初步处理包括去停用词和切词;
对初始训练数据执行预处理的各个步骤,将各个操作步骤的输入和输出的对应关系分别持久化为字典规则,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;所述字典规则包括第一规则、第二规则、第三规则和第四规则,其中所述第一规则为TFIDF处理中每个词语与词向量维度的对应关系;所述第二规则为TFIDF处理中每个词向量维度与IDF值的对应关系;所述第三规则为基于信息增益的降维处理中每个词向量维度与各自重要性顺序的对应关系;所述第四规则为PCA处理中输入和输出进行词向量维度空间映射的转换矩阵;
向jvm发送所述字典规则,以供jvm通过字典规则的读取确定待处理数据的预处理结果;
当操作步骤为TFIDF处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:
将第一规则和第二规则分别还原为字典类型数据;
读取第一规则还原的字典类型数据,确定词向量维度数量,构建容纳与词向量维度数量等数量元素的空数组,空数组中各个元素所在位置与第一规则中词向量所在位置一一对应;
遍历初始输入数据,确定初始输入数据中每个词语出现的次数,根据词语与词向量维度的对应关系,将每个词语出现的次数填入空数组中与词语对应的词向量所在位置;
读取第二规则还原的字典类型数据,确定初始输入数据中每个词语的词向量维度对应的IDF值;
计算初始输入数据中每个词语出现的次数与对应IDF值的乘积,作为每个词语的TFIDF值;
利用TFIDF值替换数组中每个词语的出现的次数,将得到的数组作为TFIDF的输出结果;
当操作步骤为基于信息增益的降维处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:
将第三规则还原为字典类型数据;
读取第三规则还原的字典类型数据,确定初始输入数据中每个词语的每个词向量维度对应的重要性顺序;
选择重要性顺序在前K个的词语,按照重要性顺序递减的顺序将词语对应的TFIDF值存入新建数组中,得到基于信息增益的降维处理的输出结果;
当操作步骤为PCA处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:
将第四规则还原为转换矩阵;
对基于信息增益的降维处理的输出结果与转换矩阵做向量叉乘运算,得到PCA处理的输出结果。
3.一种jvm设备,其特征在于,所述jvm与spark端服务器连接,所述jvm包括:
第一处理模块,用于对待处理数据进行初步处理,得到初始输入数据,初步处理包括去停用词和切词;
第一通信模块,用于接收spark端服务器发送的字典规则,所述字典规则包含对待处理数据进行预处理时,各个操作步骤的输入与输出的对应关系,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;所述字典规则包括第一规则、第二规则、第三规则和第四规则,其中所述第一规则为TFIDF处理中每个词语与词向量维度的对应关系;所述第二规则为TFIDF处理中每个词向量维度与IDF值的对应关系;所述第三规则为基于信息增益的降维处理中每个词向量维度与各自重要性顺序的对应关系;所述第四规则为PCA处理中输入和输出进行词向量维度空间映射的转换矩阵;
确定模块,用于通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果;
确定模块,还用于将PCA处理的输出结果确定为待处理数据的预处理结果;
当操作步骤为TFIDF处理时,所述确定模块,用于:
将第一规则和第二规则分别还原为字典类型数据;
读取第一规则还原的字典类型数据,确定词向量维度数量,构建容纳与词向量维度数量等数量元素的空数组,空数组中各个元素所在位置与第一规则中词向量所在位置一一对应;
遍历初始输入数据,确定初始输入数据中每个词语出现的次数,根据词语与词向量维度的对应关系,将每个词语出现的次数填入空数组中与词语对应的词向量所在位置;
读取第二规则还原的字典类型数据,确定初始输入数据中每个词语的词向量维度对应的IDF值;
计算初始输入数据中每个词语出现的次数与对应IDF值的乘积,作为每个词语的TFIDF值;
利用TFIDF值替换数组中每个词语的出现的次数,将得到的数组作为TFIDF的输出结果;
当操作步骤为基于信息增益的降维处理时,所述确定模块,用于:
将第三规则还原为字典类型数据;
读取第三规则还原的字典类型数据,确定初始输入数据中每个词语的每个词向量维度对应的重要性顺序;
选择重要性顺序在前K个的词语,按照重要性顺序递减的顺序将词语对应的TFIDF值存入新建数组中,得到基于信息增益的降维处理的输出结果;
当操作步骤为PCA处理时,所述确定模块,用于:
将第四规则还原为转换矩阵;
对基于信息增益的降维处理的输出结果与转换矩阵做向量叉乘运算,得到PCA处理的输出结果。
4.一种spark端服务器,其特征在于,所述spark端服务器与jvm连接,所述spark端服务器包括:
第二处理模块,用于对获取的训练数据进行初步处理,得到初始训练数据,初步处理包括去停用词和切词;
规则持久化模块,用于对初始训练数据执行预处理的各个步骤,将各个操作步骤的输入和输出的对应关系分别持久化为字典规则,所述操作步骤包括依次进行的TFIDF处理、基于信息增益的降维处理以及PCA处理;所述字典规则包括第一规则、第二规则、第三规则和第四规则,其中所述第一规则为TFIDF处理中每个词语与词向量维度的对应关系;所述第二规则为TFIDF处理中每个词向量维度与IDF值的对应关系;所述第三规则为基于信息增益的降维处理中每个词向量维度与各自重要性顺序的对应关系;所述第四规则为PCA处理中输入和输出进行词向量维度空间映射的转换矩阵;当操作步骤为TFIDF处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:将第一规则和第二规则分别还原为字典类型数据;读取第一规则还原的字典类型数据,确定词向量维度数量,构建容纳与词向量维度数量等数量元素的空数组,空数组中各个元素所在位置与第一规则中词向量所在位置一一对应;遍历初始输入数据,确定初始输入数据中每个词语出现的次数,根据词语与词向量维度的对应关系,将每个词语出现的次数填入空数组中与词语对应的词向量所在位置;读取第二规则还原的字典类型数据,确定初始输入数据中每个词语的词向量维度对应的IDF值;计算初始输入数据中每个词语出现的次数与对应IDF值的乘积,作为每个词语的TFIDF值;利用TFIDF值替换数组中每个词语的出现的次数,将得到的数组作为TFIDF的输出结果;当操作步骤为基于信息增益的降维处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:将第三规则还原为字典类型数据;读取第三规则还原的字典类型数据,确定初始输入数据中每个词语的每个词向量维度对应的重要性顺序;选择重要性顺序在前K个的词语,按照重要性顺序递减的顺序将词语对应的TFIDF值存入新建数组中,得到基于信息增益的降维处理的输出结果;当操作步骤为PCA处理时,通过字典规则的读取,确定对初始输入数据进行预处理时,每个操作步骤的输出结果,包括:将第四规则还原为转换矩阵;对基于信息增益的降维处理的输出结果与转换矩阵做向量叉乘运算,得到PCA处理的输出结果;
第二通信模块,用于向jvm发送所述字典规则,以供jvm通过字典规则的读取确定待处理数据的预处理结果。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2任一所述方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至2任一所述方法的计算机程序。
CN202110539452.7A 2021-05-18 2021-05-18 NLP数据预处理方法、jvm及spark端服务器 Active CN113190657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110539452.7A CN113190657B (zh) 2021-05-18 2021-05-18 NLP数据预处理方法、jvm及spark端服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110539452.7A CN113190657B (zh) 2021-05-18 2021-05-18 NLP数据预处理方法、jvm及spark端服务器

Publications (2)

Publication Number Publication Date
CN113190657A CN113190657A (zh) 2021-07-30
CN113190657B true CN113190657B (zh) 2024-02-27

Family

ID=76982622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110539452.7A Active CN113190657B (zh) 2021-05-18 2021-05-18 NLP数据预处理方法、jvm及spark端服务器

Country Status (1)

Country Link
CN (1) CN113190657B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214008A (zh) * 2018-09-28 2019-01-15 珠海中科先进技术研究院有限公司 一种基于关键词提取的情感分析方法及系统
CN111966702A (zh) * 2020-08-17 2020-11-20 中国银行股份有限公司 基于spark的金融资讯词袋模型增量更新方法及系统
CN112000929A (zh) * 2020-07-29 2020-11-27 广州智城科技有限公司 一种跨平台数据分析方法、系统、设备及可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11257592B2 (en) * 2019-02-26 2022-02-22 International Business Machines Corporation Architecture for machine learning model to leverage hierarchical semantics between medical concepts in dictionaries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214008A (zh) * 2018-09-28 2019-01-15 珠海中科先进技术研究院有限公司 一种基于关键词提取的情感分析方法及系统
CN112000929A (zh) * 2020-07-29 2020-11-27 广州智城科技有限公司 一种跨平台数据分析方法、系统、设备及可读存储介质
CN111966702A (zh) * 2020-08-17 2020-11-20 中国银行股份有限公司 基于spark的金融资讯词袋模型增量更新方法及系统

Also Published As

Publication number Publication date
CN113190657A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
CN111859960B (zh) 基于知识蒸馏的语义匹配方法、装置、计算机设备和介质
CN109271521B (zh) 一种文本分类方法及装置
CN109582956B (zh) 应用于句子嵌入的文本表示方法和装置
CN1910601B (zh) 限制条件解决方法、限制条件解决装置、以及限制条件解决系统
Bernico Deep Learning Quick Reference: Useful hacks for training and optimizing deep neural networks with TensorFlow and Keras
US20170351663A1 (en) Iterative alternating neural attention for machine reading
CN109447334B (zh) 货源信息的数据降维方法、装置、电子设备、存储介质
CN112463989B (zh) 一种基于知识图谱的信息获取方法及系统
CN111133458B (zh) 增强神经网络
CN116050425A (zh) 建立预训练语言模型的方法、文本预测方法及装置
CN111967253A (zh) 一种实体消歧方法、装置、计算机设备及存储介质
CN113986950A (zh) 一种sql语句处理方法、装置、设备及存储介质
CN117891930B (zh) 基于知识图谱增强大语言模型的图书知识问答方法
CN115525263A (zh) 代码补全模型的训练方法、代码补全方法和装置
CN113190657B (zh) NLP数据预处理方法、jvm及spark端服务器
CN117472431A (zh) 代码注释生成方法、装置、计算机设备、存储介质和产品
CN113723095A (zh) 文本审核方法、装置、电子设备和计算机可读介质
CN116644180A (zh) 文本匹配模型的训练方法、训练系统和文本标签确定方法
CN114490969B (zh) 基于表格的问答方法、装置以及电子设备
CN116400910A (zh) 一种基于api替换的代码性能优化方法
CN115688917A (zh) 神经网络模型的训练方法、装置、电子设备及存储介质
CN113392190B (zh) 一种文本识别方法、相关设备及装置
CN115859121A (zh) 文本处理模型训练方法及装置
CN111898762B (zh) 深度学习模型目录创建
CN109800438B (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