專利名稱:短信匹配及去重方法
技術(shù)領(lǐng)域:
本發(fā)明涉及短信匹配及去重方法,特別涉及到ー種更準確、迅速的短信匹配及去重方法。
背景技術(shù):
一般來說,重復(fù)短信包括以下幾類短信文字、標點符號以及句子語序基本相似;文字和語序基本相似,而標點符號不同;文字和標點符號相似,而語句被打亂順序;文字相似,而標點符號與語序都不同;因此可以看出,判別是否為重復(fù)短信主要在于短信文字的相似程度?,F(xiàn)有的短信匹配方法中大多基于分詞或者特征進行,即通過標點符號將短信分為多個片段,從片段中提取分詞或特征,再進行匹配;但是在該類方法中,分詞或特征的提取易受標定符號位置的影響;且分辨度好的特征較難選取和衡量;此外,匹配結(jié)果與短信文字的位置有夫,對于句子文字相似但順序不同的短信難以得到滿意的匹配結(jié)果。因此在短信文本匹配過程中,不需要考慮標點符號以及語句順序就能獲得好的匹配效果的方法是目前所缺乏的。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決上述技術(shù)的不足,提供了ー種短信匹配及去重方法,對于待查詢的短信,本發(fā)明可以從海量的短信庫中快速地找出與之相似的短信,并給出匹配相似度以及相應(yīng)的去重處理。本技術(shù)方案提供了ー種短信匹配及去重方法,包括以下步驟
步驟I:服務(wù)器中初始短信庫為空,短信庫對應(yīng)于ー平衡ニ叉樹,且平衡ニ叉樹初始化為空;
步驟2 :設(shè)置匹配的相似度閾值;
步驟3 :對新增的一條待測短信,首先計算該短信匹配成功所需的最少匹配字符數(shù)=待測短信長度X相似度閾值;
步驟4 :其次建立一匹配數(shù)組,長為短信庫中已有短信條數(shù),記錄待測短信與對應(yīng)已有短信的匹配字符數(shù),初始為O ;
步驟5 :接著對待測短信進行排序,排序結(jié)果為非重復(fù)的順序字符以及對應(yīng)字符出現(xiàn)的次數(shù)N,不包含標點符號;
步驟6 :在平衡ニ叉樹中查找相應(yīng)的字符,對排序后的待測短信的每個字符進行匹配,同時更新匹配數(shù)組和平衡ニ叉樹;
步驟7 :待測短信匹配過程結(jié)束后,匹配數(shù)組中數(shù)值與最少匹配字符數(shù)相比較,根據(jù)比較的結(jié)果進行去重操作。
進ー步的,所述的平衡ニ叉樹包括結(jié)點S、結(jié)點T和指針域,所述結(jié)點S的第一部分為保存短信字符的值域,第二、三部分分別為指向左右子樹結(jié)點S的相應(yīng)的指針域,第四部分為指向結(jié)點T的指針域;所述結(jié)點T第一部分為結(jié)點S中字符的短信序號,第二部分為結(jié)點S中的字符在該條短信中出現(xiàn)的次數(shù),第三部分為指向下一個結(jié)點T的指針域。進ー步的,所述步驟6中在平衡ニ叉樹中查找相應(yīng)的字符,若已存在該字符,則進行以下步驟更新匹配數(shù)組和平衡ニ叉樹
步驟6. I :首先獲取該字符對應(yīng)的結(jié)點S指向的所有結(jié)點T中的短信序號以及該字符在對應(yīng)短信中出現(xiàn)的次數(shù)M,將匹配數(shù)組中對應(yīng)短信序號的匹配字符數(shù)加上M和N中較小的數(shù); 步驟6. 2 :新建結(jié)點T,第一部分置為待測短信序號,即已有的短信最大序號加1,第二部分置為N。進ー步的,所述步驟6中在平衡ニ叉樹中查找相應(yīng)的字符,若不存在該字符,則進行以下步驟更新平衡ニ叉樹
步驟6. I :新建結(jié)點S和結(jié)點T,結(jié)點S中第一部分置為該字符,結(jié)點T第一部分置為待測短信序號,即已有的短信最大序號加1,第二部分置為N,S中第四部分指向結(jié)點T ;
步驟6. 2 :將新建的結(jié)點S插入至平衡ニ叉樹相應(yīng)位置,并保持ニ叉排序樹的平衡性。進ー步的,所述步驟7中的去重操作包括以下步驟
步驟7. I :匹配數(shù)組中數(shù)值大于最少匹配字符數(shù)的對應(yīng)短信序列即為自定義的重復(fù)短信,其匹配相似度為匹配數(shù)值/短信長度,則服務(wù)器不保存該條短信,且只將短信號碼、已有的重復(fù)短信序號以及相應(yīng)的匹配相似度發(fā)送給手機用戶;
步驟7. 2 :若匹配數(shù)組中數(shù)值小于最少匹配字符數(shù)的對應(yīng)短信序列,即匹配相似度小于自定義閾值,則不存在自定義的重復(fù)短信,服務(wù)器保存該條短信,并將該短信以及短信號碼直接發(fā)送給手機用戶。本發(fā)明短信去重方案,能夠?qū)崿F(xiàn)對短信文本的重復(fù)性查詢以及對重復(fù)短信的處理以節(jié)省存儲空間,具體的包括如下有益效果1、不需要通過標點符號對短信分片來進行分詞或提取特征,避免標點符號位置的不同對結(jié)果造成影響;2、能夠避免分詞或特征提取方法對結(jié)果的影響;3、匹配結(jié)果不受字符出現(xiàn)順序的影響;4、用戶可以自定義匹配相似度,根據(jù)需要進行靈活調(diào)節(jié);5、本發(fā)明可以大大降低短信匹配的復(fù)雜度,加速匹配過程;6、根據(jù)匹配結(jié)果可以智能化節(jié)省服務(wù)器以及用戶的存儲空間。
圖I短信庫對應(yīng)的平衡ニ叉樹結(jié)構(gòu)示意 圖2本發(fā)明的總體流程示意 圖3短信匹配過程流程示意 圖4短信去重過程流程示意 圖5本發(fā)明的實施例示意圖。
圖6為本發(fā)明實施例的另一不意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明的短信去重模型進ー步詳細說明。應(yīng)當理解,此處所描述的具體實施案例僅僅用以解釋本發(fā)明,并不用干限定本發(fā)明。
如圖I所示的平衡ニ叉樹的結(jié)構(gòu)示意圖,平衡ニ叉樹包括結(jié)點S、結(jié)點T和指針域,結(jié)點S的第一部分為保存短信字符的值域,第二、三部分分別為指向左右子樹結(jié)點S的相應(yīng)的指針域,第四部分為指向結(jié)點T的指針域;結(jié)點T第一部分為結(jié)點S中字符的短信序號,第二部分為結(jié)點S中的字符在該條短信中出現(xiàn)的次數(shù),第三部分為指向下一個結(jié)點T的指針域。如圖2所示的本發(fā)明流程總體示意圖,總體可以概括為四個過程種子庫初始化,即將短信庫和平衡ニ叉樹初始化為O ;用戶按照需要進行參數(shù)設(shè)置,即設(shè)置匹配的相似度閥值;短信匹配;短信去重。然后根據(jù)待比較的短信條數(shù)循環(huán)進行以上步驟。如圖3所示的短信匹配流程示意圖,包括以下過程
1、輸入一條待測短信,并計算最少匹配字符數(shù),最少匹配字符數(shù)=待測短信長度X相似度閾值,相似度閾值由用戶設(shè)定;
2、初始匹配數(shù)組各值為0,匹配數(shù)組的長為短信庫中已有短信條數(shù),值為待測短信與對應(yīng)已有短信的匹配字符數(shù);
3、對待測短信進行排序,排序結(jié)果為非重復(fù)的順序字符以及對應(yīng)字符出現(xiàn)的次數(shù),不包含標點符號;
4、輸入排序后短信的字符,并在平衡ニ叉樹中查找該字符;
4. I、若存在該字符,則更新匹配數(shù)組對應(yīng)值;更新平衡ニ叉樹中該字符對應(yīng)的結(jié)點T ;4. I. I、短信字符處理完畢,將匹配數(shù)組與最少匹配字符數(shù)相比較,得到自定義重復(fù)短信,并計算匹配相似度;
4. I. 2、短信字符未處理完畢,返回步驟4 ;
4. 2、若不存在該字符,則新建該字符對應(yīng)的結(jié)點S和結(jié)點T,將結(jié)點S插入至平衡ニ叉樹,并調(diào)節(jié)樹平衡;
4. 2. I短信字符處理完畢,將匹配數(shù)組與最少匹配字符數(shù)相比較,得到自定義重復(fù)短信,并計算匹配相似度;
4. 2. 2、短信字符未處理完畢,返回步驟4。如圖4所示的短信去重過程示意圖,包括以下過程
1、匹配數(shù)組中數(shù)值大于最少匹配字符數(shù)的對應(yīng)短信序列即為自定義的重復(fù)短信,其匹配相似度為匹配數(shù)值/短信長度,則服務(wù)器不保存該條短信,且只將短信號碼、已有的重復(fù)短信序號以及相應(yīng)的匹配相似度發(fā)送給手機用戶;
2、匹配數(shù)組中數(shù)值小于最少匹配字符數(shù)的對應(yīng)短信序列,即匹配相似度小于自定義閾值,則不存在自定義的重復(fù)短信,服務(wù)器保存該條短信,并將該短信以及短信號碼直接發(fā)送給手機用戶。如圖5和圖6所示的實施例,設(shè)有abed和aabdc兩條待測短信,對應(yīng)的具體操作如下
步驟I :種子短信庫初始化。將短信庫以及對應(yīng)平衡ニ叉樹的初始化為空;
步驟2 :用戶參數(shù)設(shè)置。由用戶自定義匹配相似度閾值,如80% ;
首先對于第一條待測短信abed (如圖5所示)
步驟3. I :短信匹配-最小的字符匹配數(shù)為4X80% ^ 4 (取上限)。由于短信庫為空,對應(yīng)匹配數(shù)組為空。對待測短信abed排序得到a⑴b (I) c (I) d (I),即a、b、C、d各個字符對應(yīng)出現(xiàn)的次數(shù)分別為1,1,1,I。因為初始平衡ニ叉樹為空,對abed中的每個字符都新建結(jié)點S以及結(jié)點T,插入至平衡ニ叉樹,并調(diào)節(jié)保持ニ叉樹的平衡性,最終得到更新的平衡ニ叉樹如圖5所示。步驟4. I :短信去重-由于該條短信匹配數(shù)組中無數(shù)值,匹配相似度為0,不超過用戶自定義的匹配相似度閾值,因此服務(wù)器保存該條短信,并直接將該條短信以及短信號碼發(fā)送給用戶。接著對于第二條待測短信aabdc (如圖6所示)
步驟3. 2 :短信匹配-最小的字符匹配數(shù)為5X80%=4 (取上限)。由于短信庫已有一條短信,則對應(yīng)匹配數(shù)組只含ー個元素,初始化為O。對待測短信aabdc排序得到a(2)b (I)c(l)d(l),即a、b、c、d各個字符對應(yīng)出現(xiàn)的次數(shù)分別為2,1,1,1。對排序后短信a (2) b (I)c(l)d(l)每個字符,在已有的平衡ニ叉樹中進行查找。如對于字符a,經(jīng)過兩次比較即可查找成功,對應(yīng)的S結(jié)點后只有ー個T結(jié)點,短信序號為1,字符a在序號為I的短信中只出現(xiàn)I次,小于待測短信中字符a出現(xiàn)的次數(shù)2,因此在匹配數(shù)組中序號I的元素值加I。同時新建結(jié)點T,第一部分值為待測短信序號2,第二部分值為待測短信中字符a出現(xiàn)的次數(shù)2,添加至原來的結(jié)點T后。其他字符匹配如此類推,最終得到的匹配數(shù)組中的數(shù)值為4,最終得到更新的平衡ニ叉樹如圖6所示。步驟4. 2 :短信去重-由于該條短信與匹配數(shù)組中對應(yīng)短信庫中第一條短信的數(shù)值大于該短信的最少匹配字符數(shù),即匹配相似度為4/5=80%,超過用戶所設(shè)的匹配相似閾值,因此服務(wù)器只將該條短信號碼、重復(fù)的短信序列(I)以及對應(yīng)的匹配相似度(80%)發(fā)送給用戶。若還有更多待檢測短息,則以上四個步驟循環(huán)進行,既能大幅度加速短信匹配過程,又能對重復(fù)短信進行智能化處理,幫助節(jié)省服務(wù)器以及用戶的存儲空間。與常規(guī)短信字符匹配方法相比,本發(fā)明的短信匹配方法在短信匹配和更新平衡ニ叉樹中字符之前,先去除待測短信中的標點符號和空格字符,并對其余字符按照非重復(fù)的字符出現(xiàn)的次數(shù)排序,從而可以大大降低匹配過程的時間復(fù)雜度,更好的發(fā)揮平衡ニ叉樹簡化匹配過程的效果。例如,假設(shè)短信庫中共有D條短信,每條短信有U個字符,待測短信有V個字符,則常規(guī)短信字符匹配方法所需的時間復(fù)雜度為O(DXUXV)。本方法中,平衡ニ叉樹中僅保存著短信庫中非重復(fù)的字符,且不包括標點符號。而國家有關(guān)機構(gòu)作過統(tǒng)計,常用漢字大約是2500個到7000個之間。因此,ニ叉樹中最多有7000個節(jié)點。在最壞情況下,待測短信中的每個字符都在ニ叉樹底層出現(xiàn),且短信庫中每條短信中都出現(xiàn)該字符,即該字符的S節(jié)點后有D個后續(xù)T節(jié)點。則本方法所需的時間復(fù)雜度為O (VX IogV)+0 (VX (Iog7000+D))。其中O(VXlogV)為待測短信的排序時間復(fù)雜度,O(VX (Iog7000+D))為ニ叉樹的查找復(fù)雜度加上順序遍歷該字符S節(jié)點的D個后續(xù)T節(jié)點的時間復(fù)雜度。手機中每條短信最多有140字符,即U〈140,V〈140。當短信庫中存在 海量短信時,如D=10000000,則本方法的時間復(fù)雜度近似為O(VXD),遠小于O(DXUXV)。并且當待測短信中存在重復(fù)字符,如有1/3重復(fù)字符,則時間復(fù)雜度可以進ー步降為O (2/3 X V X D),且重復(fù)度越大,時間復(fù)雜度降幅越大。本發(fā)明不僅能夠獲取更有價值的短信,避免遭受重復(fù)短信的轟炸,同時實現(xiàn)智能管理短信,有效得節(jié)省存儲空間。本發(fā)明可用于移動通信等行業(yè)中。
以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領(lǐng)域 的普通技術(shù)人員應(yīng)當理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1.一種短信匹配及去重方法,其特征在于包括以下步驟 步驟I:服務(wù)器中初始短信庫為空,所述短信庫對應(yīng)于一平衡二叉樹,且平衡二叉樹初始化為空; 步驟2 :設(shè)置匹配的相似度閾值; 步驟3 :對新增的一條待測短信,首先計算該短信匹配成功所需的最少匹配字符數(shù)=待測短信長度X相似度閾值; 步驟4 :其次建立一匹配數(shù)組,長為短信庫中已有短信條數(shù),記錄待測短信與已有短信的匹配字符數(shù),初始為O ; 步驟5 :接著對待測短信進行排序,排序結(jié)果為非重復(fù)的順序字符以及對應(yīng)字符出現(xiàn)的次數(shù)N,不包含標點符號; 步驟6 :在平衡二叉樹中查找相應(yīng)的字符,對排序后的待測短信的每個字符進行匹配,同時更新匹配數(shù)組和平衡二叉樹; 步驟7 :待測短信匹配過程結(jié)束后,匹配數(shù)組中數(shù)值與相比較,根據(jù)比較的結(jié)果進行去重操作。
2.根據(jù)權(quán)利要求I所述的短信匹配及去重方法,其特征在于所述的平衡二叉樹包括結(jié)點S、結(jié)點T和指針域,所述結(jié)點S的第一部分為保存短信字符的值域,第二、三部分分別為指向左右子樹結(jié)點S的相應(yīng)的指針域,第四部分為指向結(jié)點T的指針域;所述結(jié)點T第一部分為結(jié)點S中字符的短信序號,第二部分為結(jié)點S中的字符在該條短信中出現(xiàn)的次數(shù),第三部分為指向下一個結(jié)點T的指針域。
3.根據(jù)權(quán)利要求I所述的短信匹配及去重方法,其特征在于所述步驟6中在平衡二叉樹中查找相應(yīng)的字符,若已存在該字符,則進行以下步驟更新匹配數(shù)組和平衡二叉樹 步驟6. I :首先獲取該字符對應(yīng)的結(jié)點S指向的所有結(jié)點T中的短信序號以及該字符在對應(yīng)短信中出現(xiàn)的次數(shù)M,將匹配數(shù)組中對應(yīng)短信序號的匹配字符數(shù)加上M和N中較小的數(shù); 步驟6.2 :新建結(jié)點T,第一部分置為待測短信序號,即已有的短信最大序號加1,第二部分置為N。
4.根據(jù)權(quán)利要求I所述的短信匹配及去重方法,其特征在于所述步驟6中在平衡二叉樹中查找相應(yīng)的字符,若不存在該字符,則進行以下步驟更新平衡二叉樹 步驟6. I :新建結(jié)點S和結(jié)點T,結(jié)點S中第一部分置為該字符,結(jié)點T第一部分置為待測短信序號,即已有的短信最大序號加1,第二部分置為N,S中第四部分指向結(jié)點T ; 步驟6. 2 :將新建的結(jié)點S插入至平衡二叉樹相應(yīng)位置,并保持二叉排序樹的平衡性。
5.根據(jù)權(quán)利要求I所述的短信匹配及去重方法,其特征在于所述步驟7中的去重操作包括以下步驟 步驟7. I :匹配數(shù)組中數(shù)值大于最少匹配字符數(shù)的對應(yīng)短信序列即為自定義的重復(fù)短信,其匹配相似度為匹配數(shù)值/短信長度,則服務(wù)器不保存該條短信,且只將短信號碼、已有的重復(fù)短信序號以及相應(yīng)的匹配相似度發(fā)送給手機用戶; 步驟7. 2 :若匹配數(shù)組中數(shù)值小于最少匹配字符數(shù)的對應(yīng)短信序列,即匹配相似度小于自定義閾值,則不存在自定義的重復(fù)短信,服務(wù)器保存該條短信,并將該短信以及短信號碼直接發(fā)送給手機用戶。
全文摘要
本發(fā)明公開了一種短信匹配及去重方法,包括以下步驟服務(wù)器中初始種子短信庫為空,短信庫對應(yīng)于一平衡二叉樹,且平衡二叉樹初始化為空;設(shè)置匹配的相似度閾值;對新增的一條待測短信,首先計算該短信匹配成功所需的最少匹配字符數(shù);建立一個匹配數(shù)組,長為短信庫中已有短信條數(shù),記錄待測短信與已有短信的匹配字符數(shù),初始為0;對待測短信進行排序,排序結(jié)果為非重復(fù)的順序字符以及對應(yīng)字符出現(xiàn)的次數(shù),不包含標點符號;在平衡二叉樹中查找相應(yīng)的字符,對排序后的待測短信的每個字符進行匹配,同時更新匹配數(shù)組和平衡二叉樹;待測短信匹配過程結(jié)束后,找出匹配數(shù)組中數(shù)值大于最少匹配字符數(shù)的對應(yīng)短信序列,進行去重操作。
文檔編號G06F17/30GK102662943SQ20121001543
公開日2012年9月12日 申請日期2012年1月18日 優(yōu)先權(quán)日2012年1月18日
發(fā)明者曹一清 申請人:蘇州酷動多媒體科技有限公司