[發明專利]一種基于文本內容的敏感詞過濾方法有效
| 申請號: | 201710651487.3 | 申請日: | 2017-08-02 |
| 公開(公告)號: | CN107463666B | 公開(公告)日: | 2019-12-06 |
| 發明(設計)人: | 李英祥;吳珊;胡志恒;李倩宇 | 申請(專利權)人: | 成都德爾塔信息科技有限公司 |
| 主分類號: | G06F16/335 | 分類號: | G06F16/335;G06F16/31;G06F16/9535;G06F17/27 |
| 代理公司: | 51200 成都信博專利代理有限責任公司 | 代理人: | 王沙沙<國際申請>=<國際公布>=<進入 |
| 地址: | 610225 四川省成都市雙流縣*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 文本 內容 敏感 過濾 方法 | ||
1.一種基于文本內容的敏感詞過濾方法,其特征在于,包括以下步驟:
構建中拼混合敏感詞庫,將中文敏感詞庫中的中文詞向中拼混合詞進行擴充,形成中拼混合敏感詞庫;
通過敏感詞查找樹結構建立確定有限狀態自動機中各個敏感詞的轉換函數,將中拼混合敏感詞庫中的敏感詞構建成敏感詞樹;
根據敏感詞樹的結構在被測文本中對敏感詞進行檢索,對檢索到的敏感詞使用指定符號進行替換,完成敏感詞過濾;
所述構建敏感詞樹包括以下步驟:
S1:以敏感詞文本中的一個詞語為一個單位添加到敏感詞集合中;
S2:獲取敏感詞集合中的元素個數,初始化Map容器,即sensitiveWordMap,初始化nowMap=null;
S3:判斷敏感詞集合中的所有元素是否被訪問,如果是,則結束,如果否,則轉入步驟S4;
S4:獲取敏感詞集合中的當前元素,即當前敏感詞,初始化開始標志位,start=0;
S5:使nowMap指向sensitiveWordMap;
S6:獲取當前敏感詞的長度length,初始化敏感詞的個數標j=0;
S7:若j≥length,則轉入步驟S3;若j<length,則轉入步驟S8;
S8:獲取敏感詞集合中的當前元素的第j個字符,若當前字符是“(”,則標志位start=j,j++并轉入步驟S7;若當前字符是“)”,則截取start+1到j的字符串,賦給臨時的字符串變量,并轉入步驟S9;若是字母,則j++,并轉入步驟S7;若為漢字,則把當前漢字賦給臨時字符串變量,并轉入步驟S9;
S9:將字符串變量給一個對象WordMap,若當前Map,中存在該敏感字,則nowMap指向WordMap,并轉入步驟S10;若WordMap中不存在當前敏感字,則構建新的Map,即newWordMap,使nowMap指向newWordMap,并先把結束標志位設置為0;
S10:判斷是否是該詞中的最后一個字,若是,則設置結束標志位設置為1,并轉入步驟S3;若不是,則j++,并轉入步驟S7;
中拼混合敏感詞庫構建過程如下:
S1:獲取中文敏感詞庫中的漢字詞語及對應的拼音;
S2:以漢字詞語的每個字為單位放入一個字符串數組,將拼音以分隔符為單位放入另一個字符串數組,并獲取詞語的長度length;
S3:將漢字詞語中的第一個字和拼音中的第一個拼音分裝進隊列,若length≥2時,初始化i=2,j=1,并轉入步驟S4;若length=1,則轉入步驟S9;
S4:若i<length,則轉入步驟S5,若i≥lengh,則轉入步驟S9;
S5:若j<2i,則轉入步驟S6,若j≥2i,則轉入步驟S9;
S6:取出隊列的頭元素;
S7:取出的頭元素后追加漢字數組中的第i個元素,并在取出的元素后追加拼音數組中的第i個元素,形成新的元素;
S8:將步驟S7中形成的元素分別插入隊尾,j++,并轉入步驟S5;
S9:以隊列中的一個元素為一行依次寫入敏感詞文本中,構成中拼混合敏感詞庫。
2.根據權利要求1所述的一種基于文本內容的敏感詞過濾方法,其特征在于,所述敏感詞查找樹結構如下:
根節點不包含任何字符;除根節點以外的每個節點記錄不定量的字符數以及結束標志位符號,子節點采用哈希機制;從跟節點到某一個節點路徑上的所有字符串連接起來構成新的字符串;每個詞的公共前綴共享一個分支。
3.根據權利要求1所述的一種基于文本內容的敏感詞過濾方法,其特征在于,所述敏感詞檢索過程如下:
S1:初始化敏感詞結束標識flag=false,匹配標識數matchFlag=0,獲取的文本內容中的當前字符word=0,word轉化為字符串的標識key=null,nowMap=sensitiveWordMap,i=beinIndex開始檢測的位置,新建一個字符串變量StringBuffer對象給pinyin變量;
S2:若i<txt.length()被檢測文本內容長度,則轉入步驟S3,否則執行S4;
S3:獲取被檢測文本內容中的當前字符給獲取的文本內容中的當前字符word,將word轉化為字符串變量String類型給key,檢測當前的key是否為漢字,若為漢字,則轉入步驟S4,若不是漢字,則轉入步驟S5;
S4:在nowMap中獲取指定的key對應的value,若nowMap中不存在指定的key,即nowMap=null,則轉入步驟S7;若nowMap!=null,則轉入步驟S6;
S5:若獲取的文本內容中的當前字符word是字母,則在pinyin后追加當前的字母,并且matchFlag++,i++,并轉入步驟S3;若獲取的文本內容中的當前字符word是空格并且當前的pinyin.length()>0,則把pinyin轉換為String數據類型并給Key,同時清空pinyin中的內容,并轉入步驟S4;若既不是漢字也不是拼音則判定為無意義符號,此時匹配標識數matchFlag++,i++,并轉入步驟S3;
S6:對匹配標識數matchFlag加1后,判斷結束標識isEnd是否為1,若isEnd=1,結束標識flag設置為true,同時判斷匹配類型是否為指定的匹配類型matchType,若滿足則轉入步驟S7;若isEnd!=1,i++,則轉入步驟S3;
S7:若匹配標識數matchFlag<1或flag的值為真,則判斷不是敏感詞,使matchFlag=0,并返回matchFlag的值,否則直接返回matchFlag的值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都德爾塔信息科技有限公司,未經成都德爾塔信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710651487.3/1.html,轉載請聲明來源鉆瓜專利網。
- 內容再現系統、內容提供方法、內容再現裝置、內容提供裝置、內容再現程序和內容提供程序
- 內容記錄系統、內容記錄方法、內容記錄設備和內容接收設備
- 內容服務系統、內容服務器、內容終端及內容服務方法
- 內容分發系統、內容分發裝置、內容再生終端及內容分發方法
- 內容發布、內容獲取的方法、內容發布裝置及內容傳播系統
- 內容提供裝置、內容提供方法、內容再現裝置、內容再現方法
- 內容傳輸設備、內容傳輸方法、內容再現設備、內容再現方法、程序及內容分發系統
- 內容發送設備、內容發送方法、內容再現設備、內容再現方法、程序及內容分發系統
- 內容再現裝置、內容再現方法、內容再現程序及內容提供系統
- 內容記錄裝置、內容編輯裝置、內容再生裝置、內容記錄方法、內容編輯方法、以及內容再生方法





