CN117391070A - 一种乱码字符调整方法及系统 - Google Patents
一种乱码字符调整方法及系统 Download PDFInfo
- Publication number
- CN117391070A CN117391070A CN202311674321.5A CN202311674321A CN117391070A CN 117391070 A CN117391070 A CN 117391070A CN 202311674321 A CN202311674321 A CN 202311674321A CN 117391070 A CN117391070 A CN 117391070A
- Authority
- CN
- China
- Prior art keywords
- coding
- character
- characters
- paragraph
- encoding
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000002131 composite material Substances 0.000 claims abstract description 41
- 102100032202 Cornulin Human genes 0.000 claims description 40
- 101000920981 Homo sapiens Cornulin Proteins 0.000 claims description 40
- 238000012549 training Methods 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000013518 transcription Methods 0.000 claims description 7
- 230000035897 transcription Effects 0.000 claims description 7
- 230000010354 integration Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 239000013598 vector Substances 0.000 description 5
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/263—Language identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Character Discrimination (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开一种乱码字符调整方法及系统,包括:根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码;根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码;使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。采用本发明通过对乱码字符切换编码方式进行二次编码和组合编码,解决了多情景下的文本乱码问题。
Description
技术领域
本发明涉及文本处理技术领域,尤其涉及一种乱码字符调整方法及系统。
背景技术
现有技术中,为了避免文本文档中出现的乱码,一般在显示文本文档的内容之前,终端设备会让用户选择以哪种编码格式显示文档,若用户选择的编码格式与文本文档的编码格式相匹配,则终端设备判定编码格式正确并显示相关文本文档。若用户选择的编码格式与文本文档的编码格式不匹配,则会出现乱码。
然而乱码出现的情况还可能是文本文档采用编码格式进行编辑之前进行过错误地转码,也有可能是一个文档中采用了多种编码格式,用户选择单一编码格式并不能得到完整的文本内容。即切换单一的编码查看方式并不能解决多情景文本乱码问题。
发明内容
本发明实施例提供一种乱码字符调整方法及系统,通过对乱码字符切换编码方式进行二次编码和组合编码,解决了多情景下的文本乱码问题。
本申请实施例的第一方面提供了一种乱码字符调整方法,包括:
采用预设的文本语言模型分段识别目标文本各个段落的语言类型;
根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码;
采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型;
根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码;
使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
在第一方面的一种可能的实现方式中,所述采用预设的文本语言模型分段识别目标文本各个段落的语言类型,具体为:
根据预设自然语言模型和目标文本的标点符号,对目标文本进行分段,得到多个段落;
采用预设的文本语言模型确认各个段落的语言类型。
在第一方面的一种可能的实现方式中,所述根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码,具体包括:
若一个段落包括两个以上的语言类型,采用预设的文本语言模型对该段落逐行识别,根据各行的语言类型,对各行分别采用语言类型对应的默认编码方式分别进行一次编码;
若一个段落只有一种语言类型,根据该段落的语言类型,对各个段落分别采用对应的默认编码方式进行一次编码。
在第一方面的一种可能的实现方式中,所述采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型,具体包括:
对各个段落中各个一次编码失败的字符进行截图保存,得到多个字符截图;
对每个字符截图,根据预设CRNN模型中的卷积层提取字符截图的截图特征;
对每个字符截图,根据所述CRNN模型中的且训练好的循环层结合上下文循环提取截图特征,得到全部字符的概率分布;
对每个字符截图,根据所述CRNN模型中的转录层对全部字符的概率分布进行去重整合,得到对应一次编码失败的字符的语言类型。
在第一方面的一种可能的实现方式中,所述对每个字符截图,根据所述CRNN模型中的且训练好的循环层结合上下文循环提取截图特征,得到全部字符的概率分布,具体包括:
在一次编码失败的字符前文和后文分别提取多个上文字符和多个下文字符;
将所述多个上文字符、所述多个下文字符输入所述CRNN模型,利用所述CRNN模型中的且训练好的循环层循环提取截图特征。
在第一方面的一种可能的实现方式中,所述循环层的训练过程为:
将各国语言的常用字符组合成常用字符集;
获取所述常用字符集中每一个字符对应的多个常用词组成常用词集;
将所述常用词集和所述常用字符集作为训练样本输入所述循环层进行训练,训练时批大小的值根据每一个字符对应的常用词数量均值确定。
在第一方面的一种可能的实现方式中,所述根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码,具体包括:
将各个一次编码失败的字符还原成多个原字符;
所述根据各个一次编码失败的字符的语言类型,采用语言类型对应的默认编码方式对各个原字符进行二次编码。
在第一方面的一种可能的实现方式中,所述使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败,具体包括:
将Unicode字符集的默认编码方式和各国字符集的默认编码方式两两进行排列组合,得到多种复合编码组合;
使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
在第一方面的一种可能的实现方式中,所述将Unicode字符集的默认编码方式设置为UTF-8编码;将西欧国家字符集的默认编码方式设置为Windows-1252编码;将简体字符集的默认编码方式设置为GB18030编码;将繁体字符集的默认编码方式设置为Big5编码。
本申请实施例的第二方面提供了一种乱码字符调整系统,包括:
分段识别模块,用于采用预设的文本语言模型分段识别目标文本各个段落的语言类型;
一次编码模块,用于根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码;
再识别模块,用于采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型;
二次编码模块,用于根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码;
复合编码模块,用于使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
相比于现有技术,本发明实施例提供了一种乱码字符调整方法及系统,针对未知编码格式的文本,先是通过预设的文本语言模型进行分段识别,得到各个段落的语言类型(汉语简体、汉语繁体、日文等),再结合各个分段语言类型对应的默认编码格式对各个分段进行一次编码,不同分段针对性地采用不同的编码格式,避免对存在多编码格式的单文档采用单一编码方式产生的乱码现象。针对一次编码失败的字符,采用预设CRNN模型进行识别字符所属的语言类型,再根据该语言类型的默认编码格式对一次编码失败的字符进行二次编码。通过CRNN模型训练好的卷积层结合上下文字符进行识别,提高对一次编码失败的字符识别速度和准确率,避免了同段文字中出现其他语言类型的字符集字符所造成的乱码问题。针对一次编码失败的字符,使用多种复合编码组合对二次编码失败的字符多次进行编码,通过复合编码将错误的文本先进行还原再解码。通过三次不同方式的解码方式解决了多情景下的文本乱码问题,能使采用本发明的系统支持对采用了多编码格式的文本以及进行过错误编码的文本的完整查看。
附图说明
图1是本发明一实施例提供一种乱码字符调整方法的流程示意图;
图2是本发明一实施例提供一种乱码字符调整系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,本发明实施例提供了一种乱码字符调整方法,包括:
S10、采用预设的文本语言模型分段识别目标文本各个段落的语言类型。
S11、根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码。
S12、采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型。
S13、根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码。
S14、使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
在本实施例中,S10采用预设文本语言模型对目标文本进行处理,这里的预设文本语言模型起到了两个作用,第一个作用是根据目标文本内容对目标文本进行分段,第二个作用是识别出各个分段所主要采用的语言类型(可能存在一个段落出现多种语言类型文本的情况)。不同的语言类型,比如汉语简体、汉语繁体、日文等,它们的字符集并不相同,编码格式也不相同。在查看相关文档时,需要采用不同的编码格式才能识别出完整的文本内容同时避免乱码的产生。
S10-S11、S12-S13、S14分别采用三种不同的编码方式进行编码查看,S11根据S10中得到的识别结果对各个分段分别进行编码查看,避免了对不同分段采用同一编码查看产生乱码的情况。此外,分段编码查看也能够加快编码速度,避免宕机的风险。会出现一次编码失败的原因是可能是同一分段中采用了多种编码方式,为此,在S12-S13对各个一次编码失败的字符分别采用语言类型对应的默认编码方式进行二次编码,而语言类型和字符编号则是通过预设CRNN模型识别获取的。
除了上述的单文档采用多编码格式导致乱码的情况,还有一种乱码可能是S10-S13的过程中对目标文本的编码格式选择并没有出错,而是在进行编码查看之前目标文本已经出现错误(实施本实施例之前),后续在错误解析目标文本在的基础上还进行了编码转换进一步放大了乱码的情况。举例来说,两个字“老马”,本来的编码格式是GB18030,编码(十六进制)是C0CF C2ED。这个二进制形式被错误当成了Windows-1252编码,解读成了字符“ÀÏÂí”。随后这个字符进行了编码转换,转换成了UTF-8编码,形式还是“ ÀÏÂí”,但二进制变成了C380C38F C382C3AD,每个字符两个字节。这个时候再按照GB18030解析,字符就变成了乱码形式“脌脧脗铆”,而且这时无论怎么切换查看编码的方式,这个二进制看起来都是乱码。于是,在S14中采用了复合编码的形式,尝试多种编码组合,编码组合中的第一编码用于还原目标文本内容,编码组合中的第二编码则是用于正常地编码查看。由于编码组合中的第一编码、第二编码均可以使用高兼容的编码方式进行组合(以简体字符为例,GB18030编码兼容ASCII、GB2312、GBK三种编码,针对简体字符可以采用GB18030编码),可以最大程度地保证对目标文本的还原和编码查看。
相比于现有技术,本发明实施例提供了一种乱码字符调整方法,针对未知编码格式的文本,先是通过预设的文本语言模型进行分段识别,得到各个段落的语言类型(汉语简体、汉语繁体、日文等),再结合各个分段语言类型对应的默认编码格式对各个分段进行一次编码,不同分段针对性地采用不同的编码格式,避免对存在多编码格式的单文档采用单一编码方式产生的乱码现象。针对一次编码失败的字符,采用预设CRNN模型进行识别字符所属的语言类型,再根据该语言类型的默认编码格式对一次编码失败的字符进行二次编码。通过CRNN模型训练好的卷积层结合上下文字符进行识别,提高对一次编码失败的字符识别速度和准确率,避免了同段文字中出现其他语言类型的字符集字符所造成的乱码问题。针对一次编码失败的字符,使用多种复合编码组合对二次编码失败的字符多次进行编码,通过复合编码将错误的文本先进行还原再解码。通过三次不同方式的解码方式解决了多情景下的文本乱码问题,能使采用本发明的系统支持对采用了多编码格式的文本以及进行过错误编码的文本的完整查看。
示例性地,所述采用预设的文本语言模型分段识别目标文本各个段落的语言类型,具体为:
根据预设自然语言模型和目标文本的标点符号,对目标文本进行分段,得到多个段落。
采用预设的文本语言模型确认各个段落的语言类型。
预设自然语言模型是一种比较成熟的语言模型,可以用于对文本的分段以及语言识别,这里就不赘述。需要说明的是,运行自然语言模型时,若能够确认并输入目标文本的标点符号,能够极大提高自然语言模型的识别速度。
示例性地,所述根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码,具体包括:
若一个段落包括两个以上的语言类型,采用预设的文本语言模型对该段落逐行识别,根据各行的语言类型,对各行分别采用语言类型对应的默认编码方式分别进行一次编码。
若一个段落只有一种语言类型,根据该段落的语言类型,对各个段落分别采用对应的默认编码方式进行一次编码。
正如上面的实施所提及的,不同语言类型的字符需要使用不同的编码方式进行编码查看。本实施例为了避免乱码产生,对存在多语言类型的分段进行逐行编码。
示例性地,所述采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型,具体包括:
对各个段落中各个一次编码失败的字符进行截图保存,得到多个字符截图。
对每个字符截图,根据预设CRNN模型中的卷积层提取字符截图的截图特征。
对每个字符截图,根据所述CRNN模型中的且训练好的循环层结合上下文循环提取截图特征,得到全部字符的概率分布。
对每个字符截图,根据所述CRNN模型中的转录层对全部字符的概率分布进行去重整合,得到对应一次编码失败的字符的语言类型。
CRNN模型属于端到端的文本识别模型,可以有效解决了图像序列的识别问题。本实施例选择将一次编码失败的字符先转换成字符截图,再对字符截图进行图像特征识别,这是为了采用字符截图的图片特征尽可能将将一次编码失败的字符的信息进行保存,采用其他文本识别模型需要进行预处理会导致一次编码失败的字符的信息不可逆地损失。
本实施例中的CRNN模型包括卷积层、循环层和转录层,其中,卷积层是一个普通的CNN网络,用于特征提取,AlexNet、ResNet、MobileNet都可以;循环层可以是一个深层双向LSTM网络,在卷积特征的基础上继续提取文字序列特征;转录层,把从循环层获取的标签分布通过去重整合等操作转换成最终的识别结果。
本实施例中,使字符截图依次通过CRNN模型的卷积层、循环层和转录层从而获取字符的所属字符集、字符编号和字符所属语言。
示例性地,所述对每个字符截图,根据所述CRNN模型中的且训练好的循环层结合上下文循环提取截图特征,得到全部字符的概率分布,具体包括:
在一次编码失败的字符前文和后文分别提取多个上文字符和多个下文字符;
将所述多个上文字符、所述多个下文字符输入所述CRNN模型,利用所述CRNN模型中的且训练好的循环层循环提取截图特征。
提取多个上文字符和多个下文字符包括了上下文特征,将包含上下文特征的字符输入到所述CRNN模型中可以充分调用循环层的上下文提取能力提高特征向量提取的准确性。在基于图像的序列中,两个方向的上下文是相互有用且互补的。为了利用上下文信息,循环层可以采用双向LSTM,即将两个LSTM,一个向前和一个向后组合到一个双向LSTM中。除此之外,可以堆叠多层双向LSTM,深层结构允许比浅层抽象更高层次的抽象。
假设本实施例中的字符截图为648x1x38,通过卷积层得到38个特征序列向量,需要检测的字符类别数为A。每个特征序列向量通过双向LSTM输出所有字符的概率分布,是一个维度为A的向量。最终将38个特征序列向量的输出结果(38xA)送到转录层。
示例性地,所述循环层的训练过程为:
将各国语言的常用字符组合成常用字符集;
获取所述常用字符集中每一个字符对应的多个常用词组成常用词集;
将所述常用词集和所述常用字符集作为训练样本输入所述循环层进行训练,训练时批大小的值根据每一个字符对应的常用词数量均值确定。
循环层中,LSTM的批大小可以根据训练数据集的大小和计算资源的限制来确定。一般而言,批大小越大,训练速度越快,但可能会导致过拟合和内存限制。批大小越小,训练速度越慢,但对于较大的数据集和内存限制较严格的情况下会更加稳定。
在实践中,可以通过尝试不同的批大小来找到最优的批大小。一种常用的方法是开始使用较小的批大小,然后逐渐增加批大小,直到达到性能和内存的平衡点。此外,还可以考虑使用动态批大小调整技术(如学习率调度器),在训练过程中自动调整批大小以获得最佳性能。
而本实施例将值根据训练样本中每一个字符对应的常用词数量均值确定批大小,平衡了性能和内存,由于批大小跟每一个字符对应的常用词数量,这意味着常用词数量越大精确度越高,也避免了批大小与训练样本训练得到LSTM过度割裂,以至于在识别特征向量产生过多无意义的寻值过程。
示例性地,所述根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码,具体包括:
将各个一次编码失败的字符还原成多个原字符;
所述根据各个一次编码失败的字符的语言类型,采用语言类型对应的默认编码方式对各个原字符进行二次编码。
示例性地,所述使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败,具体包括:
将Unicode字符集的默认编码方式和各国字符集的默认编码方式两两进行排列组合,得到多种复合编码组合;
使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
一个字符经历了二次编码还是乱码,这意味着目标文本在输入前可能存在错误的编码转档。举例说,可以先按照B编码(Windows-1252)获取字符串的二进制,然后按A编码(GB18030)解读这个二进制,得到一个新的字符串,然后输出这个字符串的形式,输出为“老马”。采用不同的编码作为A编码和B编码,直至各种编码组合均尝试完毕。实际应用中,可以写一个循环,测试不同的A/B编码中的结果形式。
示例性地,所述将Unicode字符集的默认编码方式设置为UTF-8编码;将西欧国家字符集的默认编码方式设置为Windows-1252编码;将简体字符集的默认编码方式设置为GB18030编码;将繁体字符集的默认编码方式设置为Big5编码。
ASCII码是基础,使用一个字节表示,最高位设为0,其他7位表示128个字符。其他编码都是兼容ASCII的,最高位使用1来进行区分。西欧主要使用Windows-1252,使用一个字节,增加了额外128个字符。我国香港特别行政区和我国台湾地区的主要编码是Big5。我国其他地区的三个主要编码GB2312、GBK、GB18030有时间先后关系,表示的字符数越来越多,且后面的兼容前面的,GB2312和GBK都是用两个字节表示,而GB18030则使用两个或四个字节表示。如果文本里的字符都是ASCII码字符,那么采用以上所说的任一编码方式都是一样的。但如果有高位为1的字符,除了GB2312、GBK、GB18030外,其他编码都是不兼容的。比如,Windows-1252和中文的各种编码是不兼容的,即使Big5和GB18030都能表示繁体字。
本实施例对各国语言字符集分别设置好不同的高兼容编码方式,这是为了尽可能地减少编码尝试次数,若调用低兼容编码方式编码失败,后续还需要采用高兼容的编码方式再尝试编码。
相比于现有技术,本发明实施例提供了一种乱码字符调整方法,针对未知编码格式的文本,先是通过预设的文本语言模型进行分段识别,得到各个段落的语言类型(汉语简体、汉语繁体、日文等),再结合各个分段语言类型对应的默认编码格式对各个分段进行一次编码,不同分段针对性地采用不同的编码格式,避免对存在多编码格式的单文档采用单一编码方式产生的乱码现象。针对一次编码失败的字符,采用预设CRNN模型进行识别字符所属的语言类型,再根据该语言类型的默认编码格式对一次编码失败的字符进行二次编码。通过CRNN模型训练好的卷积层结合上下文字符进行识别,提高对一次编码失败的字符识别速度和准确率,避免了同段文字中出现其他语言类型的字符集字符所造成的乱码问题。针对一次编码失败的字符,使用多种复合编码组合对二次编码失败的字符多次进行编码,通过复合编码将错误的文本先进行还原再解码。通过三次不同方式的解码方式解决了多情景下的文本乱码问题,能使采用本发明的系统支持对采用了多编码格式的文本以及进行过错误编码的文本的完整查看。
本申请实施例的第二方面提供了一种乱码字符调整系统,包括:分段识别模块20、一次编码模块21、再识别模块22、二次编码模块23和复合编码模块24。
分段识别模块20,用于采用预设的文本语言模型分段识别目标文本各个段落的语言类型。
一次编码模块21,用于根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码。
再识别模块22,用于采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型。
二次编码模块23,用于根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码。
复合编码模块24,用于使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的识别系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
相比于现有技术,本发明实施例提供了一种乱码字符调整系统,针对未知编码格式的文本,先是通过预设的文本语言模型进行分段识别,得到各个段落的语言类型(汉语简体、汉语繁体、日文等),再结合各个分段语言类型对应的默认编码格式对各个分段进行一次编码,不同分段针对性地采用不同的编码格式,避免对存在多编码格式的单文档采用单一编码方式产生的乱码现象。针对一次编码失败的字符,采用预设CRNN模型进行识别字符所属的语言类型,再根据该语言类型的默认编码格式对一次编码失败的字符进行二次编码。通过CRNN模型训练好的卷积层结合上下文字符进行识别,提高对一次编码失败的字符识别速度和准确率,避免了同段文字中出现其他语言类型的字符集字符所造成的乱码问题。针对一次编码失败的字符,使用多种复合编码组合对二次编码失败的字符多次进行编码,通过复合编码将错误的文本先进行还原再解码。通过三次不同方式的解码方式解决了多情景下的文本乱码问题,能使采用本发明的系统支持对采用了多编码格式的文本以及进行过错误编码的文本的完整查看。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种乱码字符调整方法,其特征在于,包括:
采用预设的文本语言模型分段识别目标文本各个段落的语言类型;
根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码;
采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型;
根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码;
使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
2.如权利要求1所述乱码字符调整方法,其特征在于,所述采用预设的文本语言模型分段识别目标文本各个段落的语言类型,具体为:
根据预设自然语言模型和目标文本的标点符号,对目标文本进行分段,得到多个段落;
采用预设的文本语言模型确认各个段落的语言类型。
3.如权利要求1所述乱码字符调整方法,其特征在于,所述根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码,具体包括:
若一个段落包括两个以上的语言类型,采用预设的文本语言模型对该段落逐行识别,根据各行的语言类型,对各行分别采用语言类型对应的默认编码方式分别进行一次编码;
若一个段落只有一种语言类型,根据该段落的语言类型,对各个段落分别采用对应的默认编码方式进行一次编码。
4.如权利要求1所述乱码字符调整方法,其特征在于,所述采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型,具体包括:
对各个段落中各个一次编码失败的字符进行截图保存,得到多个字符截图;
对每个字符截图,根据预设CRNN模型中的卷积层提取字符截图的截图特征;
对每个字符截图,根据所述CRNN模型中的且训练好的循环层结合上下文循环提取截图特征,得到全部字符的概率分布;
对每个字符截图,根据所述CRNN模型中的转录层对全部字符的概率分布进行去重整合,得到对应一次编码失败的字符的语言类型。
5.如权利要求4所述乱码字符调整方法,其特征在于,所述对每个字符截图,根据所述CRNN模型中的且训练好的循环层结合上下文循环提取截图特征,得到全部字符的概率分布,具体包括:
在一次编码失败的字符前文和后文分别提取多个上文字符和多个下文字符;
将所述多个上文字符、所述多个下文字符输入所述CRNN模型,利用所述CRNN模型中的且训练好的循环层循环提取截图特征。
6.如权利要求4或5所述乱码字符调整方法,其特征在于,所述循环层的训练过程为:
将各国语言的常用字符组合成常用字符集;
获取所述常用字符集中每一个字符对应的多个常用词组成常用词集;
将所述常用词集和所述常用字符集作为训练样本输入所述循环层进行训练,训练时批大小的值根据每一个字符对应的常用词数量均值确定。
7.如权利要求1所述乱码字符调整方法,其特征在于,所述根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码,具体包括:
将各个一次编码失败的字符还原成多个原字符;
所述根据各个一次编码失败的字符的语言类型,采用语言类型对应的默认编码方式对各个原字符进行二次编码。
8.如权利要求1所述乱码字符调整方法,其特征在于,所述使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败,具体包括:
将Unicode字符集的默认编码方式和各国字符集的默认编码方式两两进行排列组合,得到多种复合编码组合;
使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
9.如权利要求8所述乱码字符调整方法,其特征在于,所述将Unicode字符集的默认编码方式设置为UTF-8编码;将西欧国家字符集的默认编码方式设置为Windows-1252编码;将简体字符集的默认编码方式设置为GB18030编码;将繁体字符集的默认编码方式设置为Big5编码。
10.一种乱码字符调整系统,其特征在于,包括:
分段识别模块,用于采用预设的文本语言模型分段识别目标文本各个段落的语言类型;
一次编码模块,用于根据各个段落的语言类型,对各个段落分别采用对应的默认编码方式分别进行一次编码;
再识别模块,用于采用预设CRNN模型对各个段落中各个一次编码失败的字符进行字符识别,识别各个一次编码失败的字符的语言类型;
二次编码模块,用于根据各个一次编码失败的字符的语言类型,对各个一次编码失败的字符分别采用对应的默认编码方式进行二次编码;
复合编码模块,用于使用多种复合编码组合对二次编码失败的字符依次进行编码,直至得到正常字符或者全部复合编码组合均编码失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311674321.5A CN117391070B (zh) | 2023-12-08 | 2023-12-08 | 一种乱码字符调整方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311674321.5A CN117391070B (zh) | 2023-12-08 | 2023-12-08 | 一种乱码字符调整方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117391070A true CN117391070A (zh) | 2024-01-12 |
CN117391070B CN117391070B (zh) | 2024-03-22 |
Family
ID=89472374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311674321.5A Active CN117391070B (zh) | 2023-12-08 | 2023-12-08 | 一种乱码字符调整方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117391070B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567293A (zh) * | 2010-12-13 | 2012-07-11 | 汉王科技股份有限公司 | 文本文件的编码格式探测方法和装置 |
US20120254181A1 (en) * | 2011-03-31 | 2012-10-04 | Clearswift Limited | Text, character encoding and language recognition |
CN104092514A (zh) * | 2014-07-08 | 2014-10-08 | 深圳市同洲电子股份有限公司 | 一种编码方式的切换方法及装置 |
WO2015117407A1 (zh) * | 2014-08-26 | 2015-08-13 | 中兴通讯股份有限公司 | 终端信息的处理方法及装置 |
CN105243168A (zh) * | 2015-11-11 | 2016-01-13 | 中国建设银行股份有限公司 | 一种数据迁移方法及系统 |
CN108108267A (zh) * | 2016-11-25 | 2018-06-01 | 北京国双科技有限公司 | 数据的恢复方法和装置 |
CN108197087A (zh) * | 2018-01-18 | 2018-06-22 | 北京奇安信科技有限公司 | 字符编码识别方法及装置 |
US11449794B1 (en) * | 2005-09-28 | 2022-09-20 | Trend Micro Incorporated | Automatic charset and language detection with machine learning |
CN115712599A (zh) * | 2022-11-30 | 2023-02-24 | 中国电信股份有限公司 | 检测文件编码的方法、装置、存储介质以及电子设备 |
-
2023
- 2023-12-08 CN CN202311674321.5A patent/CN117391070B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449794B1 (en) * | 2005-09-28 | 2022-09-20 | Trend Micro Incorporated | Automatic charset and language detection with machine learning |
CN102567293A (zh) * | 2010-12-13 | 2012-07-11 | 汉王科技股份有限公司 | 文本文件的编码格式探测方法和装置 |
US20120254181A1 (en) * | 2011-03-31 | 2012-10-04 | Clearswift Limited | Text, character encoding and language recognition |
CN104092514A (zh) * | 2014-07-08 | 2014-10-08 | 深圳市同洲电子股份有限公司 | 一种编码方式的切换方法及装置 |
WO2015117407A1 (zh) * | 2014-08-26 | 2015-08-13 | 中兴通讯股份有限公司 | 终端信息的处理方法及装置 |
CN105243168A (zh) * | 2015-11-11 | 2016-01-13 | 中国建设银行股份有限公司 | 一种数据迁移方法及系统 |
CN108108267A (zh) * | 2016-11-25 | 2018-06-01 | 北京国双科技有限公司 | 数据的恢复方法和装置 |
CN108197087A (zh) * | 2018-01-18 | 2018-06-22 | 北京奇安信科技有限公司 | 字符编码识别方法及装置 |
CN115712599A (zh) * | 2022-11-30 | 2023-02-24 | 中国电信股份有限公司 | 检测文件编码的方法、装置、存储介质以及电子设备 |
Non-Patent Citations (1)
Title |
---|
贾晓芳等: "Java Web应用开发中的常见乱码形式及解决方法", 软件导刊, no. 04, 31 December 2017 (2017-12-31), pages 218 - 220 * |
Also Published As
Publication number | Publication date |
---|---|
CN117391070B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU702207B2 (en) | Method of and apparatus for compressing and decompressing data and data processing apparatus and network system using the same | |
CN111753532B (zh) | 西文文本的纠错方法和装置、电子设备及存储介质 | |
CN114662476B (zh) | 一种融合词典与字符特征的字符序列识别方法 | |
CN112329482A (zh) | 机器翻译方法、装置、电子设备和可读存储介质 | |
CN110516125B (zh) | 识别异常字符串的方法、装置、设备及可读存储介质 | |
US10120843B2 (en) | Generation of parsable data for deep parsing | |
CN113609824A (zh) | 基于文本编辑和语法纠错的多轮对话改写方法及系统 | |
KR101143650B1 (ko) | 분석용 디스플레이 문서 준비 장치 | |
CN111027553A (zh) | 一种圆形印章文字识别方法 | |
CN113064863B (zh) | 自动识别文件编码的方法及计算机可读存储介质 | |
JP2014197844A (ja) | テキストをマトリクスコードシンボルに符号化するためのエンコーダ、およびマトリクスコードシンボルを復号化するためのデコーダ | |
CN111159394A (zh) | 一种文本摘要生成方法和装置 | |
CN113553847A (zh) | 用于对地址文本进行解析的方法、装置、系统和存储介质 | |
CN110825874A (zh) | 一种中文文本分类方法和装置及计算机可读存储介质 | |
CN117391070B (zh) | 一种乱码字符调整方法及系统 | |
CN110750669A (zh) | 一种图像字幕生成的方法及系统 | |
CN111104484B (zh) | 文本相似度检测方法、装置及电子设备 | |
CN109002423A (zh) | 文本搜索方法及装置 | |
CN111695350B (zh) | 一种文本的分词方法及分词装置 | |
CN114638241B (zh) | 数据匹配方法、装置、设备及存储介质 | |
CN116484802B (zh) | 字符串颜色标记方法、装置、计算机设备及存储介质 | |
CN115437511B (zh) | 一种拼音汉字转换方法、转换模型训练方法及存储介质 | |
JP3203544B2 (ja) | テキスト最尤復号方法及び最尤復号装置と、データ通信ネットワーク装置 | |
CN115169344A (zh) | 中文文本纠错方法、装置、设备与介质 | |
JP5060334B2 (ja) | 文字認識装置および文字認識プログラム、並びに、文字認識装置における文字学習方法および文字認識方法 |
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 |