CN102253983A - 一种汉语高危词识别方法和*** - Google Patents
一种汉语高危词识别方法和*** Download PDFInfo
- Publication number
- CN102253983A CN102253983A CN2011101765878A CN201110176587A CN102253983A CN 102253983 A CN102253983 A CN 102253983A CN 2011101765878 A CN2011101765878 A CN 2011101765878A CN 201110176587 A CN201110176587 A CN 201110176587A CN 102253983 A CN102253983 A CN 102253983A
- Authority
- CN
- China
- Prior art keywords
- speech
- phonetic
- risk
- tabulation
- chinese character
- 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.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种汉语高危词识别方法和***。所述方法包括:建立第一列表和第二列表;第二列表中保存高危词的全拼音串;第一列表中保存高危词的首字拼音和词长信息之间的对应关系;然后对于汉语句子S逐字进行解析,对于S中的每个当前汉字:将该当前汉字转换成拼音,根据该拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C,将C转换成全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词。本发明的技术方案能够从给定的句子中快速查找出高危词。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种汉语高危词识别方法和***。
背景技术
目前,随着互联网信息的***式发展,需要对互联网应用中一些高危词(或又称为敏感词)进行过滤,并且需要对同音的高危词进行识别和过滤。
现有的同音高危词识别是采用“分词+拼音转换”的方法,但是这种方法中,分词大大降低了效率,容易造成短板效应,且很多分词器的效果并不好,容易产生噪声干扰。对于目前互联网中的高并发的海量数据还显得力不从心。
因此需要一种新的高危词识别方法,以提高效率。
发明内容
本发明提供了一种汉语高危词识别方法,该方法能够从给定的句子中快速查找出高危词。
本发明还提供了一种汉语高危词识别***,该***能够从给定的句子中快速查找出高危词。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种汉语高危词识别方法,建立第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;则对于汉语句子S进行高危词识别的过程包括:
步骤一,将S的当前汉字转换成拼音;其中,初始时S的当前汉字为S中的从左边数第一个汉字,之后,每次向右前进一个汉字,作为S的当前汉字,直到S的最右边的汉字;
步骤二,根据步骤一中转换得到拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则执行步骤三,否则返回步骤一;
步骤三,根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C;
步骤四,将C转换成全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词,退出流程,否则,返回步骤一。
本发明还公开了一种汉语高危词识别***,该***包括:存储模块、识别模块、汉字转拼音模块,其中:
存储模块,用于保存第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;
汉字转拼音模块,用于将输入的一个以上的汉字转换成对应的全拼音串后输出;
识别模块,用于根据以下步骤对输入的汉语句子S进行高危词识别:
步骤一:将S的当前汉字发送给汉字转拼音模块,并接收汉字转拼音模块返回的拼音;其中,初始时S的当前汉字为S中的从左边数第一个汉字,之后,每次向右前进一个汉字,作为S的当前汉字,直到S的最右边的汉字;
步骤二,根据步骤一中得到拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则执行步骤三,否则返回步骤一;
步骤三,根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C;
步骤四,将C发送给汉字转拼音模块,并接收汉字转拼音模块返回的C的全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词,退出流程,否则,返回步骤一。
由上述可见,本发明这种建立第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;然后对于汉语句子S逐字进行解析,对于S中的每个当前汉字:将该当前汉字转换成拼音,根据该拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C,将C转换成全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词。这种技术方案能够从给定的句子中快速查找出高危词。
附图说明
图1是本发明实施例中的一种汉语高危词识别方法的流程图;
图2是本发明实施例中的一种汉语高危词识别***的组成结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1是本发明实施例中的一种汉语高危词识别方法的流程图。如图1所示,该方法包括:
101,建立第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息。
在第一列表中,当一个首字拼音所对应的词长信息为多个时,按从小到大的顺序保存该多个词长信息。具体可以以链表的方式保存该多个词长信息,且最小的词长信息保存在链首,以此类推,最大的词长信息保存在链尾。
在本发明的一个实施例中,第一列表以首字哈希的存储结构(key/value)表现,具体可以如表1所示:
key | value | 备注 |
char* | struct node_lens* | 使用Hashtable存储 |
(首字汉语拼音) | (词语gb2312码长度) |
表1
词长集合单元(node_lens):
102,接收输入的汉语句子S。则对S进行高危词识别的过程如103~106所示。
在执行步骤103之前,还可以先对S进行去噪预处理,包括:去除标点符号、英文字母、中文符号和字母,中文全角转半角,繁体转简体。即经过去噪预处理后的S只包括简体的汉字。
103,将S的当前汉字转换成拼音;其中,初始时S的当前汉字为S中的从左边数第一个汉字,之后,每次向右前进一个汉字,作为S的当前汉字,直到S的最右边的汉字。
104,根据步骤103中转换得到拼音去查询第一列表。
105,判断第一列表中是否存在同样的拼音,是则执行步106,否则返回步骤103。
106,根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C。
本步骤中,如果对应的词长信息为多个,则按照对应的多个词长信息的从小到大的顺序分别对S进行截取,得到多个C;对多个C分别执行步骤107-108所述的过程。
107,将C转换成全拼音串后,查询第二列表。
108,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词,退出流程,否则,返回步骤103。
下面给出一个具体的例子对图1所示的方案进行说明。
假设“***”和“法国女人”都为高危词,且首字的拼音都为“fa”。则初始构建第一列表(即‘首字哈希+词长’列表)时,有高危词“***”,总词长(gb2312码)为6字节(一个汉字两个字节),则存储结构就是:key={“fa”},value={6};还有一个高危词“法国女人”,则此时的存储结构为:key={“fa”},value={6,8}。
在本实施例中假设首字拼音为“fa”的高危词就有“***”和“法国女人”两个,则对应的第一列表中内容如表2所示:
key | value | 备注 |
“fa” | 6,8 | 使用Hashtable存储 |
表2
将“***”和“法国女人”两个高危词的全拼音串保存到第二列表中,则第二列表中的相应内容如表3所示
faxisi |
faguonvren |
表3
当输入的汉语句子S为“法国女人漂亮!”时,根据图1所述的高危词识别过程具体如下:
首先进行去噪预处理,去掉其中感叹号“!”后,S变为“法国女人漂亮”;
将S的当前汉字“法”转换成拼音“fa”,以“fa”为key在第一列表(表2)查找,找到“fa”对应的词长为6字节和8字节;先按照6字节对S进行截取,得到的C为“法国女”,转成全拼音串后为“faguonv”,根据“faguonv”去匹配第二列表,没有匹配项;然后按照8字节对S进行截取,得到的C为“法国女人”,转成全拼音串后为“faguonvren”,根据“faguonvren”去匹配第二列表,有匹配的项,则确定S中存在高危词,该高危词的读音为“法国女人”。
假设在前面的步骤中,没有匹配到以“fa”开头的高危词,则对S向右移动一个汉字,以“国”为S的当前汉字,重复执行上述流程,判断是否存在以“guo”开头的高危词,以此类推。
图2是本发明实施例中的一种汉语高危词识别***的组成结构示意图。如图2所示,该***包括:存储模块201、识别模块202、汉字转拼音模块203,其中:
存储模块201,用于保存第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;
汉字转拼音模块203,用于将输入的一个以上的汉字转换成对应的全拼音串后输出;
识别模块202,用于根据以下步骤对输入的汉语句子S进行高危词识别:
步骤一:将S的当前汉字发送给汉字转拼音模块203,并接收汉字转拼音模块203返回的拼音;其中,初始时S的当前汉字为S中的从左边数第一个汉字,之后,每次向右前进一个汉字,作为S的当前汉字,直到S的最右边的汉字;
步骤二,根据步骤一中得到拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则执行步骤三,否则返回步骤一;
步骤三,根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C;
步骤四,将C发送给汉字转拼音模块203,并接收汉字转拼音模块203返回的C的全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词,退出流程,否则,返回步骤一。
在图2所示的汉语高危词识别***中,所述识别模块202,在步骤一之前还用于对S进行去噪预处理,包括:去除标点符号、英文字母、中文符号和字母,中文全角转半角,繁体转简体。
在图2所示的汉语高危词识别***中,在所述存储模块201中的第一列表中,当一个首字拼音所对应的词长信息为多个时,按从小到大的顺序保存该多个词长信息。
在图2所示的汉语高危词识别***中,所述识别模块202,用于在所述步骤三中,按照对应的多个词长信息的从小到大的顺序分别对S进行截取,得到多个C,然后对多个C分别执行步骤四所述的查询第二列表的过程。
在图2所示的汉语高危词识别***中,在所述存储模块201中的第一列表中,以链表的方式保存该多个词长信息,且最小的词长信息保存在链首,以此类推,最大的词长信息保存在链尾。
综上所述,本发明这种建立第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;然后对于汉语句子S逐字进行解析,对于S中的每个当前汉字:将该当前汉字转换成拼音,根据该拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C,将C转换成全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词。这种技术方案能够从给定的句子中快速查找出高危词。
本发明的技术方案,由于抛开的分词的过程,因此能以接近O(1)的速度进行快速查找,非常适用于海量数据、并高发的情况下的高危词识别。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种汉语高危词识别方法,其特征在于,建立第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;则对于汉语句子S进行高危词识别的过程包括:
步骤一,将S的当前汉字转换成拼音;其中,初始时S的当前汉字为S中的从左边数第一个汉字,之后,每次向右前进一个汉字,作为S的当前汉字,直到S的最右边的汉字;
步骤二,根据步骤一中转换得到拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则执行步骤三,否则返回步骤一;
步骤三,根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C;
步骤四,将C转换成全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词,退出流程,否则,返回步骤一。
2.根据权利要求1所述的方法,其特征在于,所述对于汉语句子S进行高危词识别的过程,在步骤一之前进一步包括:
对S进行去噪预处理,包括:去除标点符号、英文字母、中文符号和字母,中文全角转半角,繁体转简体。
3.根据权利要求1所述的方法,其特征在于,所述第一列表中保存首字拼音和词长信息之间的对应关系包括:
在第一列表中,当一个首字拼音所对应的词长信息为多个时,按从小到大的顺序保存该多个词长信息。
4.根据权利要求3所述的方法,其特征在于,所述步骤三包括:
按照对应的多个词长信息的从小到大的顺序分别对S进行截取,得到多个C;
对多个C分别执行步骤四所述的过程。
5.根据权利要求3所述的方法,其特征在于,所述从小到大的顺序保存该多个词长信息包括:以链表的方式保存该多个词长信息,且最小的词长信息保存在链首,以此类推,最大的词长信息保存在链尾。
6.一种汉语高危词识别***,其特征在于,该***包括:存储模块、识别模块、汉字转拼音模块,其中:
存储模块,用于保存第一列表和第二列表;第二列表中保存了所搜集的所有高危词的全拼音串;第一列表中保存首字拼音和词长信息之间的对应关系,其中首字拼音是高危词的首字拼音,词长信息是读音与该首字拼音相同的各高危词的词长信息;
汉字转拼音模块,用于将输入的一个以上的汉字转换成对应的全拼音串后输出;
识别模块,用于根据以下步骤对输入的汉语句子S进行高危词识别:
步骤一:将S的当前汉字发送给汉字转拼音模块,并接收汉字转拼音模块返回的拼音;其中,初始时S的当前汉字为S中的从左边数第一个汉字,之后,每次向右前进一个汉字,作为S的当前汉字,直到S的最右边的汉字;
步骤二,根据步骤一中得到拼音去查询第一列表,判断第一列表中是否存在同样的拼音,是则执行步骤三,否则返回步骤一;
步骤三,根据该存在的同样的拼音所对应的词长信息对S进行截取,得到C;
步骤四,将C发送给汉字转拼音模块,并接收汉字转拼音模块返回的C的全拼音串后,查询第二列表,判断第二列表中是否存在C的全拼音串,是则确定S中存在高危词,退出流程,否则,返回步骤一。
7.根据权利要求6所述的汉语高危词识别***,其特征在于,
所述识别模块,在步骤一之前还用于对S进行去噪预处理,包括:去除标点符号、英文字母、中文符号和字母,中文全角转半角,繁体转简体。
8.根据权利要求6所述的汉语高危词识别***,其特征在于,
在所述存储模块中的第一列表中,当一个首字拼音所对应的词长信息为多个时,按从小到大的顺序保存该多个词长信息。
9.根据权利要求8所述的汉语高危词识别***,其特征在于,
所述识别模块,用于在所述步骤三中,按照对应的多个词长信息的从小到大的顺序分别对S进行截取,得到多个C,然后对多个C分别执行步骤四所述的查询第二列表的过程。
10.根据权利要求8所述的汉语高危词识别***,其特征在于,
在所述存储模块中的第一列表中,以链表的方式保存该多个词长信息,且最小的词长信息保存在链首,以此类推,最大的词长信息保存在链尾。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101765878A CN102253983A (zh) | 2011-06-28 | 2011-06-28 | 一种汉语高危词识别方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101765878A CN102253983A (zh) | 2011-06-28 | 2011-06-28 | 一种汉语高危词识别方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102253983A true CN102253983A (zh) | 2011-11-23 |
Family
ID=44981247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101765878A Pending CN102253983A (zh) | 2011-06-28 | 2011-06-28 | 一种汉语高危词识别方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102253983A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609455A (zh) * | 2012-01-12 | 2012-07-25 | 北京中科大洋科技发展股份有限公司 | 一种实现汉语同音字检索的方法 |
CN109740053A (zh) * | 2018-12-26 | 2019-05-10 | 广州灵聚信息科技有限公司 | 基于nlp技术的敏感词屏蔽方法和装置 |
CN111259151A (zh) * | 2020-01-20 | 2020-06-09 | 广州多益网络股份有限公司 | 一种混合文本敏感词变体识别方法和装置 |
CN112052676A (zh) * | 2020-08-31 | 2020-12-08 | 国网山东省电力公司荣成市供电公司 | 一种文本内容的处理方法、计算机设备及存储介质 |
-
2011
- 2011-06-28 CN CN2011101765878A patent/CN102253983A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609455A (zh) * | 2012-01-12 | 2012-07-25 | 北京中科大洋科技发展股份有限公司 | 一种实现汉语同音字检索的方法 |
CN102609455B (zh) * | 2012-01-12 | 2014-12-03 | 北京中科大洋科技发展股份有限公司 | 一种实现汉语同音字检索的方法 |
CN109740053A (zh) * | 2018-12-26 | 2019-05-10 | 广州灵聚信息科技有限公司 | 基于nlp技术的敏感词屏蔽方法和装置 |
CN111259151A (zh) * | 2020-01-20 | 2020-06-09 | 广州多益网络股份有限公司 | 一种混合文本敏感词变体识别方法和装置 |
CN111259151B (zh) * | 2020-01-20 | 2023-05-30 | 广州多益网络股份有限公司 | 一种混合文本敏感词变体识别方法和装置 |
CN112052676A (zh) * | 2020-08-31 | 2020-12-08 | 国网山东省电力公司荣成市供电公司 | 一种文本内容的处理方法、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI636452B (zh) | 語音識別方法及系統 | |
CN101950284B (zh) | 中文分词方法及*** | |
US9959340B2 (en) | Semantic lexicon-based input method editor | |
CN103123618B (zh) | 文本相似度获取方法和装置 | |
CN104866478B (zh) | 恶意文本的检测识别方法及装置 | |
US7917353B2 (en) | Hybrid text segmentation using N-grams and lexical information | |
WO2012027262A4 (en) | Parallel document mining | |
JP2000231563A (ja) | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US20120330955A1 (en) | Document similarity calculation device | |
US20110258202A1 (en) | Concept extraction using title and emphasized text | |
CN105677661A (zh) | 一种检测社交媒体重复数据的方法 | |
CN106383814A (zh) | 一种英文社交媒体短文本分词方法 | |
WO2017166626A1 (zh) | 归一化方法、装置和电子设备 | |
CN103646029A (zh) | 一种针对博文的相似度计算方法 | |
CN103324612A (zh) | 一种分词的方法及装置 | |
WO2016041428A1 (zh) | 一种英文的输入方法和装置 | |
CN102375863A (zh) | 一种地理信息领域的关键字提取的方法及装置 | |
CN102253983A (zh) | 一种汉语高危词识别方法和*** | |
CN111190873B (zh) | 一种用于云原生***日志训练的日志模式提取方法及*** | |
CN109885641A (zh) | 一种数据库中文全文检索的方法及*** | |
CN104331400B (zh) | 一种蒙古文编码转换方法和装置 | |
CN104615714A (zh) | 基于文本相似度和微博频道特征的博文排重方法 | |
CN103365934A (zh) | 复杂命名实体抽取方法及装置 | |
CN102722526B (zh) | 基于词性分类统计的重复网页和近似网页的识别方法 | |
US9965546B2 (en) | Fast substring fulltext search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111123 |