1.一種中文地址樹的構(gòu)建方法,其特征在于,包括:
獲取地址數(shù)據(jù);
根據(jù)所述地址數(shù)據(jù)構(gòu)建原始地址樹;
對(duì)所述原始地址樹中具有相同父節(jié)點(diǎn)的每組兄弟節(jié)點(diǎn)分別進(jìn)行排序,并根據(jù)所述排序結(jié)果對(duì)所述兄弟節(jié)點(diǎn)的位置進(jìn)行調(diào)整,得到第二地址樹;
獲取所述兄弟節(jié)點(diǎn)之間相同的節(jié)點(diǎn)名稱前綴;
將所述相同的節(jié)點(diǎn)名稱前綴作為一個(gè)新節(jié)點(diǎn)的名稱,將所述新節(jié)點(diǎn)插入到所述第二地址樹中,并調(diào)整具有所述相同的節(jié)點(diǎn)名稱前綴的所述兄弟節(jié)點(diǎn)的名稱,得到第三地址樹;
遍歷所述第三地址樹中的所有節(jié)點(diǎn),根據(jù)所述第三地址樹中的各個(gè)節(jié)點(diǎn)名稱與所述各個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)名稱之間的關(guān)聯(lián)關(guān)系,生成地址要素關(guān)系表;
在所述第三地址樹中,以鍵名對(duì)應(yīng)鍵值的模式建立節(jié)點(diǎn)名稱索引,鍵名為所述節(jié)點(diǎn)名稱,鍵值為所述第三地址樹中所述節(jié)點(diǎn)名稱等于鍵名的所有節(jié)點(diǎn)的集合;
根據(jù)所述地址要素關(guān)系表及所述節(jié)點(diǎn)索引,判斷是否存在需要調(diào)整位置的節(jié)點(diǎn),若存在需要調(diào)整位置的節(jié)點(diǎn),執(zhí)行調(diào)整算法后得到最終地址樹,若不存在需要調(diào)整位置的節(jié)點(diǎn),直接將第三地址樹輸出為最終地址樹。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述地址數(shù)據(jù)構(gòu)建原始地址樹包括:
建立根節(jié)點(diǎn);
若所述地址數(shù)據(jù)為原始地址數(shù)據(jù),則將所述原始地址數(shù)據(jù)作為一個(gè)新節(jié)點(diǎn),并將所述新節(jié)點(diǎn)作為所述根節(jié)點(diǎn)的一級(jí)子節(jié)點(diǎn);
若所述地址數(shù)據(jù)已經(jīng)經(jīng)過分詞化處理,且包含多個(gè)地址實(shí)體名詞,則所述每個(gè)地址實(shí)體名詞對(duì)應(yīng)一個(gè)新節(jié)點(diǎn),且排序最前的所述地址實(shí)體名詞對(duì)應(yīng)的新節(jié)點(diǎn)作為所述根節(jié)點(diǎn)的一級(jí)子節(jié)點(diǎn),排序在后的所述地址實(shí)體名詞依次形成排序在前的所述地址實(shí)體分詞對(duì)應(yīng)的新節(jié)點(diǎn)的一級(jí)子節(jié)點(diǎn)。
3.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述原始地址樹中具有相同父節(jié)點(diǎn)的每組兄弟節(jié)點(diǎn)分別進(jìn)行排序包括:
以所述每組兄弟節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)的拼音名稱首字母作為排序比較對(duì)象,依照字母表順序,對(duì)所述每個(gè)節(jié)點(diǎn)進(jìn)行升序排列;
若所述排序比較對(duì)象相同,則依次將所述排序比較對(duì)象的下一個(gè)字母替換為所述排序比較對(duì)象,并依照字母表順序,對(duì)所述每個(gè)節(jié)點(diǎn)進(jìn)行升序排列。
4.如權(quán)利要求1所的方法,其特征在于,所述將所述新節(jié)點(diǎn)插入到所述第二地址樹中,并調(diào)整具有所述相同的節(jié)點(diǎn)名稱前綴的所述兄弟節(jié)點(diǎn)的名稱包括:
將所述新節(jié)點(diǎn)插入到所述具有相同節(jié)點(diǎn)名稱前綴的所述兄弟節(jié)點(diǎn)與所述兄弟節(jié)點(diǎn)的父節(jié)點(diǎn)之間;
在所述兄弟節(jié)點(diǎn)的名稱中,刪除所述相同的節(jié)點(diǎn)名稱前綴。
5.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述地址要素關(guān)系表及所述節(jié)點(diǎn)索引,判斷是否存在需要調(diào)整位置的節(jié)點(diǎn),若存在需要調(diào)整位置的節(jié)點(diǎn),執(zhí)行調(diào)整算法后得到最終地址樹包括:
當(dāng)所述節(jié)點(diǎn)索引的一個(gè)鍵值包含多個(gè)節(jié)點(diǎn)元素時(shí),獲取所述鍵值對(duì)應(yīng)的鍵名,所述多個(gè)節(jié)點(diǎn)元素互為節(jié)點(diǎn)名稱相同的節(jié)點(diǎn);
在所述地址要素關(guān)系表中,若所述鍵名表示的節(jié)點(diǎn)名稱存在唯一的父節(jié)點(diǎn)名稱,且所述節(jié)點(diǎn)名稱相同的各節(jié)點(diǎn)對(duì)應(yīng)的各個(gè)父節(jié)點(diǎn)不是相同節(jié)點(diǎn)時(shí),
獲取子節(jié)點(diǎn)數(shù)目最少的所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn)對(duì)應(yīng)的第一父節(jié)點(diǎn),所述第一父節(jié)點(diǎn)的第一子節(jié)點(diǎn)屬于所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn);
將所述節(jié)點(diǎn)名稱相同的所有節(jié)點(diǎn)與所述第一子節(jié)點(diǎn)合并,得到最終地址樹;
在所述地址要素關(guān)系表中,若所述鍵名表示的節(jié)點(diǎn)名稱存在多個(gè)父節(jié)點(diǎn)名稱時(shí),
獲取子節(jié)點(diǎn)數(shù)目最少的所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn)對(duì)應(yīng)的第二父節(jié)點(diǎn),所述第二父節(jié)點(diǎn)的第二子節(jié)點(diǎn)屬于所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn);
將所述節(jié)點(diǎn)名稱相同的所有節(jié)點(diǎn)與所述第二子節(jié)點(diǎn)合并,得到最終地址樹。
6.一種中文地址樹的構(gòu)建裝置,其特征在于,包括:
第一獲取單元,用于獲取地址數(shù)據(jù);
第一構(gòu)建單元,用于根據(jù)所述地址數(shù)據(jù)構(gòu)建原始地址樹;
排序單元,用于對(duì)所述原始地址樹中具有相同父節(jié)點(diǎn)的每組兄弟節(jié)點(diǎn)分別進(jìn)行排序,并根據(jù)所述排序結(jié)果對(duì)所述兄弟節(jié)點(diǎn)的位置進(jìn)行調(diào)整,得到第二地址樹;
第二獲取單元,用于獲取所述兄弟節(jié)點(diǎn)之間相同的節(jié)點(diǎn)名稱前綴;
第二構(gòu)建單元,用于將所述相同的節(jié)點(diǎn)名稱前綴作為一個(gè)新節(jié)點(diǎn)的名稱,將所述新節(jié)點(diǎn)插入到所述第二地址樹中,并調(diào)整具有所述相同的節(jié)點(diǎn)名稱前綴的所述兄弟節(jié)點(diǎn)的名稱,得到第三地址樹;
地址要素關(guān)系單元,用于遍歷所述第三地址樹中的所有節(jié)點(diǎn),根據(jù)所述第三地址樹中的各個(gè)節(jié)點(diǎn)名稱與所述各個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)名稱之間的關(guān)聯(lián)關(guān)系,生成地址要素關(guān)系表;
索引建立單元,用于在所述第三地址樹中,以鍵名對(duì)應(yīng)鍵值的模式建立節(jié)點(diǎn)名稱索引,鍵名為節(jié)點(diǎn)名稱,鍵值為所述第三地址樹中所述節(jié)點(diǎn)名稱等于鍵名的所有節(jié)點(diǎn)的集合;
層次調(diào)整單元,用于根據(jù)所述地址要素關(guān)系表及所述節(jié)點(diǎn)索引,判斷是否存在需要調(diào)整位置的節(jié)點(diǎn),若存在需要調(diào)整位置的節(jié)點(diǎn),執(zhí)行調(diào)整算法后得到最終地址樹,若不存在需要調(diào)整位置的節(jié)點(diǎn),直接將第三地址樹輸出為最終地址樹。
7.如權(quán)利要求6所述的裝置,其特征在于,所述第一構(gòu)建單元包括:
根節(jié)點(diǎn)子單元,用于建立根節(jié)點(diǎn);
新節(jié)點(diǎn)子單元,用于若所述地址數(shù)據(jù)為原始地址數(shù)據(jù),則將所述原始地址數(shù)據(jù)作為一個(gè)新節(jié)點(diǎn),并將所述新節(jié)點(diǎn)作為所述根節(jié)點(diǎn)的一級(jí)子節(jié)點(diǎn);
若所述地址數(shù)據(jù)已經(jīng)經(jīng)過分詞化處理,且包含多個(gè)地址實(shí)體名詞,則所述每個(gè)地址實(shí)體名詞對(duì)應(yīng)一個(gè)新節(jié)點(diǎn),且排序最前的所述地址實(shí)體名詞對(duì)應(yīng)的新節(jié)點(diǎn)作為所述根節(jié)點(diǎn)的一級(jí)子節(jié)點(diǎn),排序在后的所述地址實(shí)體名詞依次形成排序在前的所述地址實(shí)體分詞對(duì)應(yīng)的新節(jié)點(diǎn)的一級(jí)子節(jié)點(diǎn)。
8.如權(quán)利要求6所述的裝置,其特征在于,所述排序單元包括:
字母排序子單元,用于以所述每組兄弟節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)的拼音名稱首字母作為排序比較對(duì)象,依照字母表順序,對(duì)所述每個(gè)節(jié)點(diǎn)進(jìn)行升序排列;
調(diào)整子單元,用于若所述排序比較對(duì)象相同,則依次將所述排序比較對(duì)象的下一個(gè)字母替換為所述排序比較對(duì)象,并依照字母表順序,對(duì)所述每個(gè)節(jié)點(diǎn)進(jìn)行升序排列。
9.如權(quán)利要求6所述的裝置,其特征在于,所述第二構(gòu)建單元還包括:
插入子單元,用于將所述新節(jié)點(diǎn)插入到具有所述相同的節(jié)點(diǎn)名稱前綴的所述兄弟節(jié)點(diǎn)與所述兄弟節(jié)點(diǎn)的父節(jié)點(diǎn)之間;
重命名子單元,用于在所述兄弟節(jié)點(diǎn)的名稱中,刪除所述相同的節(jié)點(diǎn)名稱前綴。
10.如權(quán)利要求6所述的裝置,其特征在于,所述層次調(diào)整單元包括:
獲取子單元,用于當(dāng)所述節(jié)點(diǎn)索引的一個(gè)鍵值包含多個(gè)節(jié)點(diǎn)元素時(shí),獲取所述鍵值對(duì)應(yīng)的鍵名,所述多個(gè)節(jié)點(diǎn)元素互為節(jié)點(diǎn)名稱相同的節(jié)點(diǎn);
合并子單元,用于在所述地址要素關(guān)系表中,若所述鍵名表示的節(jié)點(diǎn)名稱存在唯一的父節(jié)點(diǎn)名稱,且所述節(jié)點(diǎn)名稱相同的各節(jié)點(diǎn)對(duì)應(yīng)的各個(gè)父節(jié)點(diǎn)不是相同節(jié)點(diǎn)時(shí),
獲取子節(jié)點(diǎn)數(shù)目最少的所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn)對(duì)應(yīng)的第一父節(jié)點(diǎn),所述第一父節(jié)點(diǎn)的第一子節(jié)點(diǎn)屬于所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn);
將所述節(jié)點(diǎn)名稱相同的所有節(jié)點(diǎn)與所述第一子節(jié)點(diǎn)合并,得到最終地址樹;
在所述地址要素關(guān)系表中,若所述鍵名表示的節(jié)點(diǎn)名稱存在多個(gè)父節(jié)點(diǎn)名稱時(shí),
獲取子節(jié)點(diǎn)數(shù)目最少的所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn)對(duì)應(yīng)的第二父節(jié)點(diǎn),所述第二父節(jié)點(diǎn)的第二子節(jié)點(diǎn)屬于所述節(jié)點(diǎn)名稱相同的節(jié)點(diǎn);
將所述節(jié)點(diǎn)名稱相同的所有節(jié)點(diǎn)與所述第二子節(jié)點(diǎn)合并,得到最終地址樹。