本申請涉及通信領域,尤其涉及一種將目標字符串轉化為規(guī)范化字符串的方法及裝置。
背景技術:
:在互聯(lián)網平臺中,用戶輸入的地址、公司名稱等短文本,與規(guī)范化的地址、公司名稱相比,通??赡軙嬖谝欢ǖ牟町悾欢呖赡苋匀皇窍嗤?。例如,假設從用戶在互聯(lián)網平臺中預留的簡歷中采集的公司名稱為“支付寶公司”,而支付寶公司的規(guī)范化的全稱實際為“支付寶網絡技術有限公司”,這兩個地址雖然存在一定的差異,但實際為同一個公司名稱。因此,針對這種情況,對用戶提供的這些短文本進行規(guī)范化,對于后續(xù)的數(shù)據(jù)處理和使用都具有非常重要的意義。技術實現(xiàn)要素:本申請?zhí)岢鲆环N將目標字符串轉化為規(guī)范化字符串的方法,該方法包括:基于指定的切分長度針對目標字符串進行遍歷切分,得到第一切分單元集合;在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;所述索引列表包括針對規(guī)范化字符串進行遍歷切分得到的切分單元、以及所述切分單元關聯(lián)的規(guī)范化字符串;計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串;將該目標字符串轉化為查找到的規(guī)范化字符串??蛇x的,所述預設的索引列表按照如下方式生成:基于所述指定的切分長度針對數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分,得到第二切分單元集合;針對所述第二切分單元集合中各切分單元分別生成對應的索引表項;其中,所述索引表項記錄的信息包括規(guī)范化字符串的各切分單元、以及所述各切分單元在所述數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串??蛇x的,所述索引表項記錄的信息還包括所述各切分單元在所述數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串的數(shù)量;所述方法還包括:基于所述數(shù)量針對所述索引列表中的索引表項進行排序;刪除所述索引列表中記錄的所述數(shù)量大于預設的第一閾值的索引表項??蛇x的,所述方法還包括:當任一規(guī)范化字符串的切分單元在所述索引列表中對應的索引表項均被刪除時,將該切分單元所對應的索引表項中記錄的所述數(shù)量最小的索引表項添加至所述索引列表中??蛇x的,所述在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合包括:將所述第一切分單元集合中的切分單元在所述索引列表中進行匹配;獲取所述第一切分單元集合中的切分單元在所述索引列表中匹配到的索引表項;提取獲取到的所述索引表項中記錄的所述規(guī)范化字符串,生成所述規(guī)范化字符串集合;或者,提取獲取到的索引表項中記錄的所述數(shù)量低于預設的第二閾值的索引 表項中記錄的所述規(guī)范化字符串,生成所述規(guī)范化字符串集合;其中,所述第二閾值小于所述第一閾值??蛇x的,所述計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度包括:計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的編輯距離;計算所述目標字符串與所述各字符串的長度中的最大值和最小值;計算減去所述編輯距離后的所述最大值與所述最小值的比值,基于該比值表征所述目標字符串與所述各字符串的相似度;或者計算所述最大值與加上所述編輯距離后的所述最小值的比值,基于該比值表征所述目標字符串與所述各字符串的相似度??蛇x的,所述基于編輯距離計算所述目標字符串與獲取到的所述規(guī)范化字符串的相似度包括:基于預設的相似度計算公式計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;所述相似度計算公式包括:或其中,x表示目標字符串,|x|表示目標字符的長度;y表示規(guī)范化字符串,|y|表示所述規(guī)范化字符串的長度;max(|x|,|y|)表示目標字符串與所述規(guī)范化字符串的長度中的最大值;min(|x|,|y|)表示表示目標字符串與所述規(guī)范化字符串長度中的最小值;ds表示目標字符串與所述規(guī)范化字符串的編輯距離;c表示修正參數(shù),為大于或者等于0的常數(shù)??蛇x的,所述基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串包括:判斷計算出的所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度是否達到預設的相似度閾值;當所述目標字符串與所述規(guī)范化字符串集合中任一字符串的相似度達到預設的相似度閾值時,則確定該字符串為與所述目標字符串對應的規(guī)范化字符串。本申請還提出一種將目標字符串轉化為規(guī)范化字符串的裝置,該裝置包括:第一切分模塊,用于基于指定的切分長度針對目標字符串進行遍歷切分,得到第一切分單元集合;獲取模塊,用于在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;所述索引列表包括針對規(guī)范化字符串進行遍歷切分得到的切分單元、以及所述切分單元關聯(lián)的規(guī)范化字符串;計算模塊,用于計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;查找模塊,用于基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串;轉化模塊,用于將該目標字符串轉化為查找到的規(guī)范化字符串。可選的,所述裝置還包括:第二切分模塊,用于基于所述指定的切分長度針對數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分,得到第二切分單元集合;生成模塊,用于針對所述第二切分單元集合中各切分單元分別生成對應的索引表項;其中,所述索引表項記錄的信息包括規(guī)范化字符串的各切分單元、以及所述各切分單元在所述數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串??蛇x的,所述索引表項記錄的信息還包括所述各切分單元在所述數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串的數(shù)量;所述裝置還包括:排序模塊,用于基于所述數(shù)量針對所述索引列表中的索引表項進行排序;刪除模塊,用于刪除所述索引列表中記錄的所述數(shù)量大于預設的第一閾 值的索引表項??蛇x的,所述裝置還包括:添加模塊,用于在任一規(guī)范化字符串進行字符切分得到的切分單元,在所述索引列表中對應的索引表項均被刪除時,將該切分單元所對應的索引表項中記錄的所述數(shù)量最小的索引表項添加至所述索引列表中??蛇x的,所述獲取模塊具體用于:將所述第一切分單元集合中的切分單元在所述索引列表中進行匹配;獲取所述第一切分單元集合中的切分單元在所述索引列表中匹配到的索引表項;提取獲取到的所述索引表項中記錄的所述規(guī)范化字符串,生成所述規(guī)范化字符串集合;或者,提取獲取到的索引表項中記錄的所述數(shù)量低于預設的第二閾值的索引表項中記錄的所述規(guī)范化字符串,生成所述規(guī)范化字符串集合;其中,所述第二閾值小于所述第一閾值??蛇x的,所述計算模塊具體用于:計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的編輯距離;計算所述目標字符串與所述各字符串的長度中的最大值和最小值;計算減去所述編輯距離后的所述最大值與所述最小值的比值,基于該比值表征所述目標字符串與所述各字符串的相似度;或者計算所述最大值與加上所述編輯距離后的所述最小值的比值,基于該比值表征所述目標字符串與所述各字符串的相似度??蛇x的,所述計算模塊進一步用于:基于預設的相似度計算公式計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;所述相似度計算公式包括:或其中,x表示目標字符串,|x|表示目標字符的長度;y表示規(guī)范化字符串,|y|表示所述規(guī)范化字符串的長度;max(|x|,|y|)表示目標字符串與所述規(guī)范化字符串的長度中的最大值;min(|x|,|y|)表示表示目標字符串與所述規(guī)范化字符串長度中的最小值;ds表示目標字符串與所述規(guī)范化字符串的編輯距離;c表示修正參數(shù),為大于或者等于0的常數(shù)??蛇x的,所述查找模塊具體用于:判斷計算出的所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度是否達到預設的相似度閾值;當所述目標字符串與所述規(guī)范化字符串集合中任一字符串的相似度達到預設的相似度閾值時,則確定該字符串為與所述目標字符串對應的規(guī)范化字符串。本申請中,在將目標字符串轉化為規(guī)范化字符串時,通過基于指定的切分長度針對目標字符串進行字符切分,得到第一切分單元集合,在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;然后基于編輯距離計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度,并基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串,實現(xiàn)了在數(shù)據(jù)庫中查找與目標字符串關聯(lián)的規(guī)范化字符串時,可以通過索引列表快速查找與該目標字符串關聯(lián)的規(guī)范化字符串集合,并基于編輯距離來計算目標字符串與該規(guī)范化字符串集合中各字符串的相似度,然后基于計算得到的相似度在該規(guī)范化字符串集合中查找與該目標字符串對應的規(guī)范化字符串,從而在查找與目標字符串對應的規(guī)范化字符串時,不再需要逐一計算目標字符串與數(shù)據(jù)庫中存儲的各規(guī)范化字符串的相似度,可以減少計算量,提升規(guī)范化字符串的查找效率。附圖說明圖1是本申請一實施例提供的一種將目標字符串轉化為規(guī)范化字符串的方法的流程圖;圖2是本申請一實施例提供的一種將目標字符串轉化為規(guī)范化字符串的裝置的邏輯框圖;圖3是本申請一實施例提供的承載所述一種將目標字符串轉化為規(guī)范化字符串的裝置的服務端的硬件結構圖。具體實施方式在相關技術中,在針對用戶輸入的諸如地址、公司名等短文本進行規(guī)范化時,通常會提供一個存儲了規(guī)范化文本的數(shù)據(jù)庫,通過分別計算用戶提供的短文本與該數(shù)據(jù)庫中各規(guī)范化文本之間的相似度,然后基于計算得到的相似度在該數(shù)據(jù)庫查找與用戶提供的短文本對應的規(guī)范化文本。然而,通過這種方式,通常需要逐一計算用戶提供的短文本與該數(shù)據(jù)庫中各規(guī)范化文本的相似度,計算量很大,從而造成規(guī)范化文本的查找效率不高。有鑒于此,本申請?zhí)峁┮环N將目標字符串轉化為規(guī)范化字符串的方法,在將目標字符串轉化為規(guī)范化字符串時,通過基于指定的切分長度針對目標字符串進行字符切分,得到第一切分單元集合,在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;然后基于編輯距離計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度,并基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串,實現(xiàn)了在數(shù)據(jù)庫中查找與目標字符串關聯(lián)的規(guī)范化字符串時,可以通過索引列表快速查找與該目標字符串關聯(lián)的規(guī)范化字符串集合,并基于編輯距離來計算目標字符串與該規(guī)范化字符串集合中各字符串的相似度,然后基于計算 得到的相似度在該規(guī)范化字符串集合中查找與該目標字符串對應的規(guī)范化字符串,從而在查找與目標字符串對應的規(guī)范化字符串時,不再需要逐一計算目標字符串與數(shù)據(jù)庫中存儲的各規(guī)范化字符串的相似度,可以減少計算量,提升規(guī)范化字符串的查找效率。下面通過具體實施例并結合具體的應用場景對本申請進行描述。請參考圖1,圖1是本申請一實施例提供的一種將目標字符串轉化為規(guī)范化字符串的方法,應用于服務端,所述方法執(zhí)行以下步驟:步驟101,基于指定的切分長度針對目標字符串進行遍歷切分,得到第一切分單元集合;上述服務端可以包括服務器、服務器集群或者基于服務器集群構建的云平臺;上述目標字符串可以包括用戶輸入的不規(guī)范的短文本。例如,以電子商務的應用場景為例,上述服務端可以是電子商務提供商的云平臺,上述目標字符串可以包括用戶輸入的地址、公司名等不規(guī)范的短文本,該云平臺可以采集用戶輸入的地址、公司名等短文本,并在云端對用戶輸入的短文本進行規(guī)范化處理。在本例中,服務端在采集到用戶輸入的目標字符串時,可以基于指定的切分長度對該目標字符串進行遍歷切分,得到若干切分單元。其中,上述指定的切分長度,可以由用戶根據(jù)實際的業(yè)務需求進行設定;上述遍歷切分,是指在對字符串進行切分時,逐個字符遍歷字符串,按照字符順序對字符串進行字符切分,當切分得到一個切分單元后,將切分位置右移一個字符繼續(xù)進行切分,直到切分完成,從而使得切分得到的切分單元能夠涵蓋該字符串中所有字符的組合。例如,以上述目標字符串為用戶輸入的地址短文本“支付寶公司”為例,假設用戶設定的切分長度為3,那么基于該切分長度對用戶輸入的上述短文本“支付寶公司”進行遍歷切分后,可以得到“支付寶”“付寶公”“寶公司”等三個切分單元。當服務端針對目標字符串進行遍歷切分后,服務端可以基于切分得到的 所有切分單元生成第一切分單元集合。其中,該第一切分單元集合包括對目標字符串進行字符切分后得到的切分單元,該第一切分單元集合中存儲的切分單元的數(shù)量與服務端針對目標字符串進行字符切分得到的切分單元的數(shù)量一致。步驟102,在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;所述索引列表包括針對規(guī)范化字符串進行遍歷切分得到的切分單元、以及所述切分單元關聯(lián)的規(guī)范化字符串;在本例中,服務端可以在本地預先提供一個存儲了規(guī)范化字符串的數(shù)據(jù)庫。例如,以上述目標字符串為用戶輸入的公司名為例,該數(shù)據(jù)庫可以是一個存儲了規(guī)范化的公司名稱(即公司名稱的全稱)的黃頁數(shù)據(jù)庫。在初始狀態(tài)下,服務端也可以基于指定的切分長度針對該數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分,得到若干切分單元。其中,服務端在針對數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分時,所使用的切分長度,以及具體的切分方式,與服務端針對上述目標字符串進行遍歷切分時的切分長度保持相同。當服務端針對數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分后,服務端可以基于切分得到的切分單元生成第二切分單元集合。其中,該第二切分單元集合包括對數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分后得到的切分單元。例如,以上述數(shù)據(jù)庫為黃頁數(shù)據(jù)庫為例,服務端可以針對該數(shù)據(jù)庫中存儲的規(guī)范化的公司名稱逐一進行遍歷切分,然后基于遍歷切分后得到的切分單元生成上述第二切分單元集合。當服務端對數(shù)據(jù)庫中存儲的規(guī)范化字符串切分完成后,服務端可以統(tǒng)計第二切分單元集合中每一個切分單元在數(shù)據(jù)庫所關聯(lián)的規(guī)范化字符串,以及所關聯(lián)的規(guī)范化字符串的數(shù)量。其中,服務端在數(shù)據(jù)庫中統(tǒng)計關聯(lián)的規(guī)范化字符串時,可以遍歷第二切 分單元集合,從第二切分單元集合中按順序讀取切分單元,然后將讀取到的切分單元與數(shù)據(jù)庫中存儲的規(guī)范化字符串依次進行匹配。當在數(shù)據(jù)庫中任意一個規(guī)范化字符串中匹配到讀取到的切分單元時,那么服務端可以認為該切分單元與該規(guī)范化字符串存在關聯(lián)關系。當讀取到的該切分單元與數(shù)據(jù)庫中存儲的所有規(guī)范化字符串全部匹配完成后,服務端可以統(tǒng)計通過匹配確定出的與該切分單元存在關聯(lián)關系的規(guī)范化字符串,以及與該切分單元存在關聯(lián)關系的規(guī)范化字符串的具體數(shù)量。例如,以上述數(shù)據(jù)庫為黃頁數(shù)據(jù)庫為例,假設該數(shù)據(jù)庫中存儲了支付寶公司的規(guī)范化公司名稱“支付寶網絡技術有限公司”,服務端在按照指定的切分長度為3,針對該規(guī)范化的公司名稱進行字符切分后,可以得到“支付寶”、“付寶網”、“寶網絡”、“網絡技”、“絡技術”、“技術有”、“有限公”以及“限公司”等8個切分單元。服務端在確定該8個切分單元在數(shù)據(jù)庫中所關聯(lián)的規(guī)范化的公司名稱時,可以依次讀取這8個切分單元,與數(shù)據(jù)庫中存儲的規(guī)范化的公司名稱逐一進行匹配;比如,假設用戶讀取的切分單元為“網絡技”,如果數(shù)據(jù)庫中當前還存儲了“阿里巴巴網絡技術有限公司”這一規(guī)范化的公司名稱,服務端在將切分單元“網絡技”與“阿里巴巴網絡技術有限公司”這一規(guī)范化的公司名稱進行匹配時,由于該公司名稱中包含“網絡技”這一切分單元,在該公司名稱中能夠匹配到“網絡技”這一切分單元,在這種情況下,服務端可以確定“網絡技”這一切分單元與“阿里巴巴網絡技術有限公司”存在關聯(lián)關系。當“網絡技”這一切分單元與數(shù)據(jù)庫中所有規(guī)范化的公司名稱均匹配完成后,服務端可以記錄數(shù)據(jù)庫中與該切分單元存在關聯(lián)性的規(guī)范化的公司名稱的id,并統(tǒng)計與該切分單元存在關聯(lián)關系的規(guī)范化公司名稱的數(shù)量。在本例中,當服務端通過上述方式,統(tǒng)計出第二切分單元集合中每一個切分單元在數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串,以及關聯(lián)的規(guī)范化字符串的數(shù)量后,服務端可以基于統(tǒng)計出的信息,針對第二切分單元集合中每一個切分單元生成一個對應的索引表項,然后基于生成的索引表項來創(chuàng)建索引列表。上述索引表項用于對切分單元進行快速查找。該索引表項的基本結構可以包括切分單元字段、關聯(lián)的規(guī)范化字符串字段,以及關聯(lián)的規(guī)范化字符串數(shù)量字段等三個字段。其中,上述切分單元字段用于記錄切分單元;上述關聯(lián)的規(guī)范化字符串字段用于記錄統(tǒng)計出的與切分單元字段記錄的切分單元存在關聯(lián)關系的規(guī)范化字符串,上述關聯(lián)的規(guī)范化字符串數(shù)量字段用于記錄統(tǒng)計出的與切分單元字段記錄的切分單元存在關聯(lián)關系的規(guī)范化字符串的數(shù)量。例如,以上述字符串為公司名稱,上述數(shù)據(jù)庫為黃頁數(shù)據(jù)庫為例,假設切分單元“支付寶”在數(shù)據(jù)庫中僅關聯(lián)一個規(guī)范化的公司名稱“支付寶網絡技術有限公司”,該規(guī)范化的公司名稱“支付寶網絡技術有限公司”的id為120,那么該切分單元生成的索引列表可以如下表所示:切分單元關聯(lián)的公司名稱關聯(lián)的公司名稱數(shù)量支付寶1201當服務端基于上述基本結構為第二切分單元集合中的每一個切分單元分別生成了對應的索引表項后,服務端可以基于為第二切分單元集合中所有切分單元生成的索引表項,來創(chuàng)建索引列表。其中,該索引列表由為第二切分單元集合中所有切分單元生成的索引表項組成。在本例中,當索引列表創(chuàng)建完成后,后續(xù)服務端針對上述目標字符串進行字符切分,生成上述第一切分單元集合后,服務端可以遍歷第一切分單元集合,將第一切分單元集合中的切分單元與上述索引列表中的索引表項中的切分單元依次進行匹配,然后提取匹配到的索引表項中記錄的規(guī)范化字符串,為目標字符串生成對應的規(guī)范化字符串集合。此時,該規(guī)范化字符串集合中的規(guī)范化字符串,即為最終確定的可以查找到與上述目標字符串對應的規(guī)范化字符串的查找范圍,其中,需要指出的是,在實際應用中,上述索引列表中包含的索引表項的數(shù)量可能會非常巨大(比如對于黃頁數(shù)據(jù)庫來說,存儲的規(guī)范化的公司名稱可能達到千萬的數(shù)量級),在這種情況下,服務端在將第一切分單元集合 中的切分單元在上述索引列表中進行匹配時,如果將第一切分單元集合中的切分單元與上述索引列表中的索引表項中的切分單元逐一進行匹配,可能會造成匹配時長過長的問題。因此,為了降低匹配時長,避免將第一切分單元集合中的切分單元與上述索引表項中的切分單元逐一進行匹配,上述索引列表在創(chuàng)建完成后,服務端還可以對上述索引列表中的索引表項進行數(shù)量控制,對上述索引列表中部分索引表項執(zhí)行刪除。在示出的一種實施方式中,服務端可以預先設定一個第一閾值,其中該第一閾值的具體取值可以根據(jù)實際需求進行設定;比如1000。當在創(chuàng)建完成上述索引列表后,服務端可以以該列表中的“關聯(lián)的規(guī)范化字符串的數(shù)量”字段為基準進行排序,其中,服務端在進行排序時,可以是從大到小排序,也可以是從小到大排序,在實際應用中不進行特別限定。當排序完成后,此時該索引列表中的索引表項將按照記錄的關聯(lián)的規(guī)范化字符串的數(shù)量從大到小,或者從小到大排序,此時服務端可以基于該排序,將該索引列表中記錄的關聯(lián)的規(guī)范化字符串的數(shù)量大于上述第一閾值的索引表項刪除??梢?,通過這種方式,可以有效控制索引列表中索引表項中的數(shù)量,當服務端在將第一切分單元集合中的切分單元與索引列表中的索引表項中的切分單元進行匹配時,可以只針對列表中關聯(lián)的規(guī)范化字符串的數(shù)量小于第一閾值的部分索引表項中的切分單元進行匹配,從而可以在不影響匹配結果的情況下,盡可能的縮短匹配時長。例如,假設上述數(shù)據(jù)庫為黃頁數(shù)據(jù)庫,用戶輸入的目標字符串為“支付寶公司”,上述第一閾值為1000。服務端在針對該數(shù)據(jù)庫中存儲的一條規(guī)范化的公司名稱“支付寶網絡技術有限公司”進行字符切分后,統(tǒng)計出的各切分單元所關聯(lián)的公司名稱的數(shù)量分別為:支付寶:1;付寶網:1;寶網絡:5;網絡技:1819;絡技術:2120;技術有:6851;術有限:7654;有限公:9315;限公司:9968。服務端可以將關聯(lián)的公司名稱的數(shù)量超過1000的切分單元“網絡技”、“絡技術”、“技術有”、“術有限”、“有限公”以及“限公司”的索引表項從索引列表中刪除,只保留切分單元“支付寶”、“付寶網”以及“寶網絡”的索引表項。服務端在從第一切分單元集合中讀取切分單元,在索引列表中進行匹配時,雖然索引列表僅保留了切分單元“支付寶”、“付寶網”以及“寶網絡”的索引表項,但切分單元“支付寶”、“付寶網”以及“寶網絡”所關聯(lián)的規(guī)范化的公司名稱中包含“支付寶網絡技術有限公司”這一規(guī)范化的公司名稱。因此,服務端通過以上匹配過程最終確定的規(guī)范化字符串集合中,仍然會包含“支付寶網絡技術有限公司”這一規(guī)范化的公司名稱??梢?,通過這種方式,不僅可以提升匹配速度,而且并不影響匹配結果的準確性。當然,在實際應用中,如果數(shù)據(jù)庫中存儲的某一規(guī)范化字符串的切分單元,在數(shù)據(jù)庫中所關聯(lián)的規(guī)范化字符串的數(shù)量均大于上述第一閾值,那么該規(guī)范化字符串的切分單元在索引列表中對應的索引表項將會被全部刪除,此時該規(guī)范化字符串將無法出現(xiàn)在服務端為目標字符串創(chuàng)建的規(guī)范化字符串集合中。在這種情況下,如果該規(guī)范化字符串恰巧為與用戶輸入的目標字符串對應的規(guī)范化字符串,那么就可能會導致無法在規(guī)范化字符串集合中查找到與上述目標字符串對應的規(guī)范化字符串,或者查找到與該目標字符串對應的規(guī)范化字符串不準確的問題。在示出的一種實施方式中,為了避免以上情況發(fā)生,如果數(shù)據(jù)庫中存儲的某一規(guī)范化字符串的切分單元,在索引列表中對應的索引表項均被刪除時,服務端可以將該切分單元所對應的索引表項中,記錄的關聯(lián)的規(guī)范化字符串的數(shù)量最小的索引表項,重新添加至所述索引列表中。通過這種方式,可以在某一規(guī)范化字符串的切分單元,在數(shù)據(jù)庫中所關聯(lián)的規(guī)范化字符串的數(shù)量均大于上述第一閾值的情況下,確保該規(guī)范化字符串的切分單元中,至少有一個切分單元所對應的索引表項仍然能夠保留在索 引列表中,從而可以確保該規(guī)范化字符串最終出現(xiàn)在服務端為目標字符串創(chuàng)建的規(guī)范化字符串集合中。在本例中,服務端在將第一切分單元集合中的切分單元與上述索引列表中的索引表項中的切分單元依次進行匹配時,可以遍歷第一切分單元集合,將第一切分單元集合中的切分單元與上述索引表項中的切分單元依次進行匹配。當?shù)谝磺蟹謫卧械那蟹謫卧c索引列表中任一索引表項記錄的切分單元匹配時,服務端則可以獲取該索引表項。當?shù)谝磺蟹謫卧现械那蟹謫卧谏鲜鏊饕斜碇衅ヅ渫瓿蓵r,服務端可以提取獲取到的索引表項中記錄的規(guī)范化字符串,然后基于提取到的規(guī)范化字符串來為目標字符串生成對應的規(guī)范化字符串集合。此時,該規(guī)范化字符串集合中的規(guī)范化字符串,即為最終確定的可以查找到與上述目標字符串對應的規(guī)范化字符串的查找范圍,后續(xù)服務端可以分別計算目標字符串與該規(guī)范化字符串集合中各字符串的相似度,然后基于相似度來確定與目標字符關聯(lián)的規(guī)劃化字符串。其中,需要說明的是,服務端在提取獲取到的索引表項中記錄的規(guī)范化字符串時,除了可以默認提取所有獲取到的索引表項中記錄的規(guī)范化字符串,也可以只提取獲取到的索引表項中部分索引表項記錄的規(guī)范化字符串。在示出的一種實施方式中,服務端可以預設一個第二閾值;其中,該第二閾值可以低于第一閾值。例如,第一閾值為1000時,該第二閾值可以設置為100。服務端在提取獲取到的索引表項中記錄的規(guī)范化字符串時,可以統(tǒng)計獲取到的索引表項中記錄的關聯(lián)的規(guī)范化字符串的數(shù)量低于第二閾值的索引表項,然后僅提取統(tǒng)計出的這些索引表項中記錄的規(guī)范化字符串。例如,假設上述數(shù)據(jù)庫為黃頁數(shù)據(jù)庫,用戶輸入的目標字符串為“支付寶公司”,上述第二閾值為100,服務端獲取到的索引表項如下表所示:服務端在提取獲取到的索引表項中記錄的規(guī)范化字符串時,可以統(tǒng)計上述索引表項中記錄的關聯(lián)的規(guī)范化字符串的數(shù)量低于100的索引表項,然后僅提取上表中記錄的關聯(lián)的公司名稱的數(shù)量小于100的切分單元“支付寶”、“付寶網”、“寶網絡”的索引表項中記錄的關聯(lián)的公司名稱。通過這種方式,服務端可以對規(guī)范化字符串集合中的字符串的數(shù)量進行控制,從而可以縮小與上述目標字符串對應的規(guī)范化字符串的查找范圍。步驟103,計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;在本例中,當服務端基于提取到的規(guī)范化字符串,為目標字符串生成了對應的規(guī)范化字符串集合后,服務端可以計算目標字符串與該規(guī)范化字符串集合中各字符串之間的相似度。在示出的一種實施方式中,服務端可以基于編輯距離來計算目標字符串與該規(guī)范化字符串集合中各字符串之間的相似度。服務端在計算目標字符串和規(guī)范化字符串集合中各字符串的編輯距離時,可以統(tǒng)計將目標字符串轉換規(guī)范化字符串集合中各字符串時的編輯次數(shù),然后將統(tǒng)計出的編輯次數(shù)作為目標字符串轉換規(guī)范化字符串集合中各字符串的編輯距離。其中,上述編輯操作通??梢园ㄔ黾樱瑒h除,替換以及換位等操作。例如,在實現(xiàn)時,上述編輯距離可以采用通用的levenshtein距離,也可以采用damerau–levenshtein距離。通用的levenshtein距離通常只統(tǒng)計增加,刪除,替換等編輯操作的次數(shù),因此服務端采用通用的levenshtein距離時,可以統(tǒng)計將目標字符串通過 增加一個字符,刪除一個字符以及替換一個字符轉換為規(guī)范化字符串集合中各字符串時的編輯次數(shù),然后將該編輯次數(shù)設置為目標字符串與規(guī)范化字符串集合中各字符串之間的編輯距離。damerau–levenshtein距離通常需要統(tǒng)計增加,刪除,替換以及換位等編輯操作的次數(shù),因此服務端采用damerau–levenshtein距離時,可以統(tǒng)計將目標字符串通過增加一個字符,刪除一個字符、替換一個字符以及換位一個字符轉換為規(guī)范化字符串集合中各字符串時的編輯次數(shù),然后將該編輯次數(shù)設置為目標字符串與規(guī)范化字符串集合中各字符串之間的編輯距離。在本例中,當服務端計算出目標字符串與規(guī)范化字符串集合中各字符串的編輯距離后,可以基于計算出的編輯距離計算目標字符串與規(guī)范化字符串集合中各字符串的相似度。其中,由于目標字符串與規(guī)范化字符串集合中各字符串的字符串長度可能存在一定的差異,而字符串的長度差異可能會導致相似度的計算結果不準確。因此,為了提升相似度計算的準確度,服務端在基于編輯距離計算目標字符串與該規(guī)范化字符串集合中各字符串之間的相似度時,可以基于目標字符串與規(guī)范化字符串集合中各字符串的編輯距離,對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配,然后基于適配后的目標字符串以及規(guī)范化字符串集合中各字符串的長度計算相似度,從而在針對長度適配后的目標字符串和規(guī)范化字符串集合中各字符串進行相似度計算時,可以最大程度的降低字符串的長度差異對相似度計算結果的影響,提升相似度計算的準確度。在示出的一種實施方式中,服務端在基于計算出的編輯距離,對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配時,可以計算目標字符串和規(guī)范化字符串集合中各字符串的長度中的最大值和最小值,然后服務端可以將該最大值減去計算出的編輯距離,或者將該最小值加上計算出的編輯距離,來縮小目標字符串和規(guī)范化字符串集合中各字符串之間的長度差異, 從而達到對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配的目的。例如,假設目標字符串為abcd,規(guī)范化字符串集合中各字符串為afcdeg,目標字符串的長度為4,規(guī)范化字符串集合中各字符串的長度為6,二者的編輯距離為3(一次替換編輯,兩次新增編輯)。服務端在對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配時,可以將目標字符串的長度4加上編輯距離3,適配結束后,目標字符串的適配長度為7,與規(guī)范化字符串集合中各字符串的長度差異縮小。或者,服務端在對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配時,可以將規(guī)范化字符串集合中各字符串的長度6減去編輯距離3,適配結束后,規(guī)范化字符串集合中各字符串的適配長度為3,與規(guī)范化字符串集合中各字符串的長度差異縮小。當然,在實際應用中,服務端在基于編輯距離對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配時,除了通過將目標字符串和規(guī)范化字符串集合中各字符串的長度中的最大值減去二者的編輯距離,或者將目標字符串和規(guī)范化字符串集合中各字符串的長度中的最小值加上二者的編輯距離以外,也可以有其他的實現(xiàn)方式,在本實施例不再一一列舉。在本例中,當服務端對目標字符串的長度和規(guī)范化字符串集合中各字符串的長度進行適配完成后,此時服務端可以基于適配完成后的目標字符串以及規(guī)范化字符串集合中各字符串的長度計算相似度。在示出的一種實施方式中,目標字符串以及規(guī)范化字符串集合中各字符串的長度適配完成后,服務端可以計算適配完成后的目標字符串以及規(guī)范化字符串集合中各字符串的長度中的最小值與最大值之間的比值,此時該比值為介于0至1之間的一個數(shù)值,因此服務端可以基于該比值來表征目標字符串以及規(guī)范化字符串集合中各字符串。一方面,如果服務端通過將目標字符串和規(guī)范化字符串集合中各字符串中長度的最大值減去二者的編輯距離,對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配,那么服務端在計算二者的相似度時,可以計算減 去編輯距離后的最大值與最小值之間的比值,然后通過該比值來表征二者的相似度。另一方面,如果服務端通過將目標字符串和規(guī)范化字符串集合中各字符串中長度的最小值加上二者的編輯距離,對目標字符串和規(guī)范化字符串集合中各字符串的長度進行適配,那么服務端在計算二者的相似度時,可以計算最大值與加上了編輯距離的最小值之間的比值,然后通過該比值來表征二者的相似度。基于此,假設目標字符串為x,規(guī)范化字符串集合中各字符串長度為y,目標字符串x的長度為|x|,規(guī)范化字符串集合中各字符串的長度為|y|,二者的編輯距離為ds。如果服務端通過將|x|和|y|中的最大值減去ds,對|x|和|y|進行適配,那么服務端可以通過如下公式來計算目標字符串x與規(guī)范化字符串集合中各字符串y之間的相似度:如果服務端通過將|x|和|y|中的最小值加上ds,對|x|和|y|進行適配,那么服務端可以通過如下公式來計算目標字符串x與規(guī)范化字符串集合中各字符串y之間的相似度:上述兩個公式中,s表示目標字符串x與規(guī)范化字符串集合中各字符串y之間的相似度。max(|x|,|y|)表示目標字符串與規(guī)范化字符串集合中各字符串的長度中的最大值;min(|x|,|y|)表示目標字符串與規(guī)范化字符串集合中各字符串的長度中的最小值。c表示在公式中引入的修正參數(shù),該修正參數(shù)可以是一個大于或者等于0的常數(shù)(即上述公式可以引入c值,也可以不引入c值),通過在以上公式中引入上述修正參數(shù)可以對上述公式的計算結果進行修正。其中,上述修正參數(shù)的具體取值可以是由用戶根據(jù)實際的需求設定的工 程經驗值,在本公開中不進行特別限定;例如,在實現(xiàn)時,上述修正參數(shù)可以是用戶基于平滑法得到的平滑參數(shù),通過在上述公式中引入平滑參數(shù),可以對上述公式的計算結果進行修正,以降低上述公式計算結果的誤差。在以上公式中,由于編輯距離對目標文件和規(guī)范化字符串集合中各字符串的長度進行了適配,因此在針對長度適配后的目標字符串和規(guī)范化字符串集合中各字符串進行相似度計算時,可以最大程度的降低字符串的長度差異對相似度計算結果的影響,提升相似度計算的準確度。例如,假設目標字符串為“支付寶公司”,規(guī)范化字符串集合中的一規(guī)范化字符串為“支付寶網絡技術有限公司”,二者之間的編輯距離為6(新增6個字符,編輯6次),目標字符串的長度為5,規(guī)范化字符串的長度為11,通過上述公式計算得到的相似度為或者(以c值為0為例)??梢?,通過上述公式計算出的相似度有效的排除了目標字符串與規(guī)范化字符串集合中的字符串的長度差異對相似度造成的影響。當然,基于編輯距離計算目標字符串與規(guī)范化字符串集合中的字符串的相似度,除了以上示出的計算方法以外,也可以有其它方式。例如,在示出的一種計算方法中,可以通過如下公式來計算二者的相似度:其中,上述公式中,s表示相似度;ds表示編輯距離;l表示字符串長度。當通過上述公式來計算目標字符串x與規(guī)范化字符串集合中的字符串y的相似度時,上述l的取值根據(jù)實際的需求可以是min(|x|,|y|)、max(|x|,|y|)或者|x|+|y|中的任意一個。在步驟104中,基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串。在步驟105中,將該目標字符串轉化為查找到的規(guī)范化字符串。在本例中,當服務端計算出目標字符串與規(guī)范化字符串集合中各字符串之間的相似度后,可以將計算得到的相似度值與預設的相似度閾值進行比較,通過判斷計算出的目標字符串與規(guī)范化字符串集合中各字符串的相似度是否達到預設的相似度閾值,在規(guī)范化字符串集合中查找與目標字符串對應的規(guī)范化字符串。如果計算得到的目標字符串與規(guī)范化字符串集合中任一字符串的相似度達到該相似度閾值,此時服務端可以判定該字符串為與目標字符串對應的規(guī)范化字符串。例如,仍以目標字符串為“支付寶公司”,規(guī)范化字符串集合中的一規(guī)范化字符串為“支付寶網絡技術有限公司”為例,假設相似度閾值為70%,通過上述公式計算出的字符串為“支付寶公司”與字符串“支付寶網絡技術有限公司”的相似度為1,大于相似度閾值,因此可以服務器可以將“支付寶網絡技術有限公司”確定為字符串“支付寶公司”的規(guī)范化字符串。其中,需要指出的是,上述相似度閾值可以由用戶根據(jù)實際的需求進行設定;例如,在實現(xiàn)時,該相似度閾值可以是一個工程經驗值,工程人員可以對大量字符串的進行人工判定是否相同,然后對人工判定的結果進行分析,來設置上述相似度閾值;或者也可以將人工判定的結果作為數(shù)據(jù)分析樣本,由服務端進行統(tǒng)計分析來設置上述相似度閾值。當然,在實際應用中,當規(guī)范化字符串集合中存在多個與目標字符串的相似度達到相似度閾值的字符串,服務端可以將該多個字符串均確定為與該目標字符串對應的規(guī)范化字符串,然后將該多個字符串向用戶輸出,由用戶人工確認最佳的規(guī)范化字符串。在本例中,當服務端基于計算出的相似度在規(guī)范化字符串集合中查找到與目標字符串對應的規(guī)范化字符串后,可以將該目標字符串轉發(fā)為查找到的規(guī)范化字符串進行使用。例如,假設用戶輸入的公司名稱為“支付寶公司”這一不規(guī)范的公司名稱,服務端按照以上步驟對該公司名稱進行規(guī)范化,在數(shù)據(jù)庫中查找到與該 公司名稱對應的規(guī)范化的公司名稱“支付寶網絡技術有限公司”后,可以在后臺將用戶輸入的該不規(guī)范的公司名稱“支付寶公司”轉化為“支付寶網絡技術有限公司”進行存儲使用。在以上實施例中,通過基于指定的切分長度針對目標字符串進行遍歷切分,得到第一切分單元集合,并在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;然后通過計算目標字符串與規(guī)范化字符串集合中各字符串的相似度,并基于計算出的相似度在規(guī)范化字符串集合中查找與目標字符串對應的規(guī)范化字符串,從而可以將目標字符串轉化為查找到的規(guī)范化字符串,實現(xiàn)了在將目標字符串轉化為規(guī)范化字符串時,可以通過索引列表快速確定與該目標字符串關聯(lián)的規(guī)范化字符串集合,并通過計算目標字符串與該規(guī)范化字符串集合中各字符串的相似度,在該規(guī)范化字符串集合中查找與該目標字符串對應的規(guī)范化字符串,使得在將目標字符串轉化為規(guī)范化字符串時,不再需要逐一計算目標字符串與數(shù)據(jù)庫中存儲的各規(guī)范化字符串的相似度,從而可以減少計算量,提升規(guī)范化字符串的查找效率。與上述方法實施例相對應,本申請還提供了裝置的實施例。請參見圖2,本申請?zhí)岢鲆环N將目標字符串轉化為規(guī)范化字符串的裝置20,應用于服務端;其中,請參見圖3,作為承載所述規(guī)范化字符串的查找裝置20的服務端所涉及的硬件架構中,通常包括cpu、內存、非易失性存儲器、網絡接口以及內部總線等;以軟件實現(xiàn)為例,所述規(guī)范化字符串的查找裝置20通常可以理解為加載在內存中的計算機程序,通過cpu運行之后形成的軟硬件相結合的邏輯裝置,所述裝置20包括:第一切分模塊201,用于基于指定的切分長度針對目標字符串進行遍歷切分,得到第一切分單元集合;獲取模塊202,用于在預設的索引列表中查找與所述第一切分單元集合中各切分單元關聯(lián)的規(guī)范化字符串,得到與所述第一切分單元集合對應的規(guī)范化字符串集合;所述索引列表包括針對規(guī)范化字符串進行遍歷切分得到的 切分單元、以及所述切分單元關聯(lián)的規(guī)范化字符串;計算模塊203,用于計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;查找模塊204,用于基于計算出的所述相似度在所述規(guī)范化字符串集合中查找與所述目標字符串對應的規(guī)范化字符串;轉化模塊205,用于將該目標字符串轉化為查找到的規(guī)范化字符串。在本例中,所述裝置20還包括:第二切分模塊206,用于基于所述指定的切分長度針對數(shù)據(jù)庫中存儲的規(guī)范化字符串進行遍歷切分,得到第二切分單元集合;生成模塊207,用于針對所述第二切分單元集合中各切分單元分別生成對應的索引表項;其中,所述索引表項記錄的信息包括規(guī)范化字符串的各切分單元、以及所述各切分單元在所述數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串。在本例中,所述索引表項記錄的信息還包括所述各切分單元在所述數(shù)據(jù)庫中關聯(lián)的規(guī)范化字符串的數(shù)量;所述裝置20還包括:排序模塊208,用于基于所述數(shù)量針對所述索引列表中的索引表項進行排序;刪除模塊209,用于刪除所述索引列表中記錄的所述數(shù)量大于預設的第一閾值的索引表項。在本例中,所述裝置20還包括:添加模塊210,用于在任一規(guī)范化字符串進行字符切分得到的切分單元,在所述索引列表中對應的索引表項均被刪除時,將該切分單元所對應的索引表項中記錄的所述數(shù)量最小的索引表項添加至所述索引列表中。在本例中,所述獲取模塊202具體用于:將所述第一切分單元集合中的切分單元在所述索引列表中進行匹配;獲取所述第一切分單元集合中的切分單元在所述索引列表中匹配到的索引表項;提取獲取到的所述索引表項中記錄的所述規(guī)范化字符串,生成所述規(guī)范化字符串集合;或者,提取獲取到的索引表項中記錄的所述數(shù)量低于預設的第二閾值的索引表項中記錄的所述規(guī)范化字符串,生成所述規(guī)范化字符串集合;其中,所述第二閾值小于所述第一閾值。在本例中,所述計算模塊203具體用于:計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的編輯距離;計算所述目標字符串與所述各字符串的長度中的最大值和最小值;計算減去所述編輯距離后的所述最大值與所述最小值的比值,基于該比值表征所述目標字符串與所述各字符串的相似度;或者計算所述最大值與加上所述編輯距離后的所述最小值的比值,基于該比值表征所述目標字符串與所述各字符串的相似度。在本例中,所述計算模塊203進一步用于:基于預設的相似度計算公式計算所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度;所述相似度計算公式包括:或其中,x表示目標字符串,|x|表示目標字符的長度;y表示規(guī)范化字符串,|y|表示所述規(guī)范化字符串的長度;max(|x|,|y|)表示目標字符串與所述規(guī)范化字符串的長度中的最大值;min(|x|,|y|)表示表示目標字符串與所述規(guī)范化字符串長度中的最小值;ds表示目標字符串與所述規(guī)范化字符串的編輯距離;c表示修正參數(shù),為大于或者等于0的常數(shù)。在本例中,所述查找模塊204具體用于:判斷計算出的所述目標字符串與所述規(guī)范化字符串集合中各字符串的相似度是否達到預設的相似度閾值;當所述目標字符串與所述規(guī)范化字符串集合中任一字符串的相似度達到預設的相似度閾值時,則確定該字符串為與所述目標字符串對應的規(guī)范化字符串。本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本申請的其它實施方案。本申請旨在涵蓋本申請的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本申請的一般性原理并包括本申請未公開的本
技術領域:
中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本申請的真正范圍和精神由下面的權利要求指出。應當理解的是,本申請并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本申請的范圍僅由所附的權利要求來限制。當前第1頁12