本發(fā)明涉及計算機技術領域,特別涉及一種中文地址分詞方法及裝置。
背景技術:
中文地址分詞就是對使用自然語言表述的地理位置進行切分,從而將一整串地址切分成單個的詞。目前,在物流、城市規(guī)劃及土地管理等領域中,通過將切分成的多個詞在地理庫中找到相應坐標,并實現(xiàn)在地圖中向用戶展示具體的位置信息具有重要意義。
目前,中文地址分詞的方式是,通過將一整串地址與預先設置的詞典中的詞條進行匹配,當詞典中找到某個地址字串時,則識別出一個詞,并將該詞切分出來,以此類推繼續(xù)進行切分。但是,由于中文地址描述手段具有多樣化,預置的詞典中不可能包含所有的字串,因此在進行匹配時,有些地址字串是匹配不到的,從而也就無法對其進行切分,因此,造成地址分詞的不準確。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種中文地址分詞方法及裝置,能夠有效提高地址分詞的準確率。
第一方面,本發(fā)明實施例提供了一種中文地址分詞方法,收集至少兩個地址特征,并為所述至少兩個地址特征分配對應的編碼,設置至少一種切分規(guī)則,還包括:
接收目標源地址;
根據(jù)所述至少兩個地址特征對應的編碼,為所述目標源地址生成地址編碼;
在所述至少一種切分規(guī)則中,為所述地址編碼確定目標切分規(guī)則;
利用所述目標切分規(guī)則,對所述地址編碼進行切分。
優(yōu)選地,所述設置至少一種切分規(guī)則,包括:
將所述至少兩個地址特征對應的編碼進行任意組合,形成至少一種組合編碼;
確定每一種所述組合編碼的組合位置為對應的切分位置。
優(yōu)選地,所述地址特征包括:省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號和表示方位的字中的任意兩個或多個;
所述為所述至少兩個地址特征分配對應的編碼,包括:
為所述省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號分配第一編碼;
為所述表示方位的字分配第二編碼。
優(yōu)選地,所述為所述地址編碼確定目標切分規(guī)則,包括:
將所述地址編碼與每一種所述組合編碼進行匹配,利用下述計算公式(1),計算所述地址編碼與每一種所述組合編碼的匹配度;
其中,Ti表征地址編碼與組合編碼i對應的匹配度;n表征組合編碼i中包含的編碼個數(shù);ni表征地址編碼與組合編碼i中包含的編碼的匹配個數(shù);
確定最大匹配度的組合編碼以及所述最大匹配度的組合編碼對應的切分位置;
所述利用所述目標切分規(guī)則,對所述地址編碼進行切分,包括:根據(jù)所述最大匹配度的組合編碼對應的切分位置,對所述地址編碼進行切分。
優(yōu)選地,在所述利用所述目標切分規(guī)則,對所述地址編碼進行切分之后,進一步包括:
根據(jù)所述至少兩個地址特征對應的編碼,將切分后的地址編碼恢復為對應的地址特征。
第二方面,本發(fā)明實施例提供了一種中文地址分詞裝置,包括:編碼分配單元、設置單元、接收單元、生成單元、確定單元和分詞單元,其中,
所述編碼分配單元,用于收集至少兩個地址特征,并為所述至少兩個地址特征分配對應的編碼;
所述設置單元,用于設置至少一種切分規(guī)則;
所述接收單元,用于接收目標源地址;
所述生成單元,用于根據(jù)所述編碼分配單元為所述至少兩個地址特征分配的對應編碼,為所述接收單元接收到的所述目標源地址生成地址編碼;
所述確定單元,用于根據(jù)所述設置單元中設置的所述至少一種切分規(guī)則,為所述生成單元生成的所述地址編碼確定目標切分規(guī)則;
所述分詞單元,用于利用所述確定單元確定的所述目標切分規(guī)則,對所述生成單元生成的所述地址編碼進行切分。
優(yōu)選地,所述設置單元,用于:
將所述至少兩個地址特征對應的編碼進行任意組合,形成至少一種組合編碼;
確定每一種所述組合編碼的組合位置為對應的切分位置。
優(yōu)選地,所述地址特征包括:省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號和表示方位的字中的任意兩個或多個;
所述編碼分配單元,用于:為所述省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號分配第一編碼;為所述表示方位的字分配第二編碼。
優(yōu)選地,所述確定單元,包括:計算子單元和確定子單元,其中,
所述計算子單元,用于將所述地址編碼與每一種所述組合編碼進行匹配,利用下述計算公式(1),計算所述地址編碼與每一種所述組合編碼的匹配度;
其中,Ti表征地址編碼與組合編碼i對應的匹配度;n表征組合編碼i中包含的編碼個數(shù);ni表征地址編碼與組合編碼i中包含的編碼的匹配個數(shù);
所述確定子單元,用于確定最大匹配度的組合編碼以及所述最大匹配度的組合編碼對應的切分位置;
所述分詞單元,用于根據(jù)所述最大匹配度的組合編碼對應的切分位置,對所述地址編碼進行切分。
優(yōu)選地,進一步包括:恢復單元,其中,所述恢復單元,用于根據(jù)所述至少兩個地址特征對應的編碼,將切分后的地址編碼恢復為對應的地址特征。
本發(fā)明實施例提供了一種中文地址分詞方法及裝置,通過預先設置至少兩種切分規(guī)則,那在接收到目標源地址后,通過將編碼生成的地址編碼與每一種切分規(guī)則進行匹配,當確定與地址編碼最大的匹配規(guī)則時,在查找到的地址編碼中的相應位置完成對地址編碼的切分,因此,即使接收到目標源地址中的一部分字符并未包含在詞典中,但是只要匹配到相應的切分規(guī)則,就可以實現(xiàn)地址分詞,從而有效提高了地址分詞的準確率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實施例提供的一種中文地址分詞方法的流程圖;
圖2是本發(fā)明另一個實施例提供的一種中文地址分詞方法的流程圖;
圖3是本發(fā)明一個實施例提供的一種裝置所在設備的硬件架構圖;
圖4是本發(fā)明一個實施例提供的一種中文地址分詞裝置的結構示意圖;
圖5是本發(fā)明另一個實施例提供的一種中文地址分詞裝置的結構示意圖;
圖6是本發(fā)明又一個實施例提供的一種中文地址分詞裝置的結構示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明實施例提供了一種中文地址分詞方法,該方法可以包括以下步驟:
步驟101:預先收集至少兩個地址特征,并為所述至少兩個地址特征分配對應的編碼。
步驟102:預先設置至少一種切分規(guī)則。
步驟103:接收目標源地址。
步驟104:根據(jù)所述至少兩個地址特征對應的編碼,為所述目標源地址生成地址編碼。
步驟105:在所述至少一種切分規(guī)則中,為所述地址編碼確定目標切分規(guī)則。
步驟106:利用所述目標切分規(guī)則,對所述地址編碼進行切分。
本發(fā)明實施例提供了一種中文地址分詞方法,通過預先設置至少兩種切分規(guī)則,那在接收到目標源地址后,通過將編碼生成的地址編碼與每一種切分規(guī)則進行匹配,當確定與地址編碼最大的匹配規(guī)則時,在查找到的地址編碼中的相應位置完成對地址編碼的切分,因此,即使接收到目標源地址中的一部分字符并未包含在詞典中,但是只要匹配到相應的切分規(guī)則,就可以實現(xiàn)地址分詞,從而有效提高了地址分詞的準確率。
在本發(fā)明另一個實施例中,為了避免詞典中包含的地址字符串不全面,提高地址分詞的準確率,步驟102的具體實施方式,包括:將所述至少兩個地址特征對應的編碼進行任意組合,形成至少一種組合編碼;確定每一種所述組合編碼的組合位置為對應的切分位置。
值得說明的是,本發(fā)明實施例中所包含的匹配編碼可根據(jù)用戶需求進行設定。例如,以三種地址特征分別為A、B和C為例,其中,為A分配的編碼為01,為B分配的編碼為02,為C分配的編碼為03,那么,任意進行組合,以其中生成的3種編碼分別為0102、0203和010203、以“C數(shù)值”表示切分位置為例,則對于0102和0203而言,切分位置就可以設定為C2,對于010203而言,切分位置就可以設定為C24,其中,C2表示在第二個數(shù)字后面進行切分,C24表示在第二和第四個數(shù)字后面進行切分,這樣就可以確定3條切分規(guī)則,分別為0102C2、0203C2和010203C24。
通過預先設置每一條切分規(guī)則相應的編碼及切分位置,完成對待分詞地址的切分,而不再使用詞典進行字符串匹配,從而有效防止了由于詞典包含地址字符串不全面導致的地址分詞不準確。
在本發(fā)明再一個實施例中,為實現(xiàn)地址的匹配與切分,在所述步驟101中,所述地址特征包括:省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號和表示方位的字中的任意兩個或多個;步驟101的具體實施方式,包括:為所述省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號分配第一編碼;為所述表示方位的字分配第二編碼。
在本發(fā)明實施例中,以第一編碼為“1”、第二編碼為“2”為例,而且,為了方便對地址進行表示,可以為地址特征省、市、區(qū)、縣、橋、鎮(zhèn)等前面的普通字符分配第三編碼“0”,另外,為了方便表示一個地址編碼的結束,還可以分配一個第四編碼“3”表示結束字符。例如,地址“山東省歷下區(qū)七里橋鎮(zhèn)漢東村32號”對應的編碼為“01010110212013”。
通過為地址特征分配對應的編碼,那么接收到的源地址就可以根據(jù)該對應編碼生成相應的地址編碼,從而就可以與預先設置的規(guī)則進行匹配,為實現(xiàn)地址匹配奠定基礎。
在本發(fā)明又一個實施例中,為了提高待分詞地址的準確性以及能夠?qū)崿F(xiàn)地址分詞,步驟105的具體實施方式包括:將所述地址編碼與每一種所述組合編碼進行匹配,利用下述計算公式(1),計算所述地址編碼與每一種所述組合編碼的匹配度;
其中,Ti表征地址編碼與組合編碼i對應的匹配度;n表征組合編碼i中包含的編碼個數(shù);ni表征地址編碼與組合編碼i中包含的編碼的匹配個數(shù);
確定最大匹配度的組合編碼以及所述最大匹配度的組合編碼對應的切分位置。
步驟106的具體實施方式,包括:根據(jù)所述最大匹配度的組合編碼對應的切分位置,對所述地址編碼進行切分。
例如,以預先設置的第一切分規(guī)則為“010102C24”、第二切分規(guī)則為“010202C24”及地址編碼為“0101”為例,那么,地址編碼0101與第一切分規(guī)則010102C24的匹配度為地址編碼0101與第二切分規(guī)則010202C24的匹配度為由于T1>T2,因此,T1為地址編碼0101的最大匹配度,從而可以確定第一切分規(guī)則為地址編碼0101的目標切分規(guī)則。
以地址編碼0101對應的目標切分規(guī)則為010102C24為例,由于0101與010102C24的前兩個編碼匹配,因此,首先確定地址編碼0101的切分位置為C2,也就是說在第一個01的后面進行切分,也即得到兩個分詞編碼01和01。
通過計算匹配度,可以找出與地址編碼最佳的切分規(guī)則,從而提高待切分地址的準確性,并為之后的分詞奠定基礎。
在本發(fā)明又一個實施例中,為了完成對地址的切分,在步驟106之后,進一步包括:根據(jù)所述至少兩個地址特征對應的編碼,將切分后的地址編碼恢復為對應的地址特征。
通過確定地址編碼的切分位置,從而將一整串地址編碼切分成至少一個分詞編碼,從而實現(xiàn)地址編碼的分詞過程,為實現(xiàn)在地圖中向用戶展示具體的位置信息具有重要意義。
下面以預先設置兩種切分規(guī)則為例,對本發(fā)明實施例提供的一種中文地址分詞方法做詳細說明,如圖2所示,該方法可以包括以下步驟:
步驟201:預先收集4個地址主特征字省、區(qū)、村及門牌號,1個表示空間關系的地址補充特征字東。
在本發(fā)明實施例中,由于省、區(qū)、村及門牌號是用戶經(jīng)常使用的地址特征字,因此預先收集這4個地址特征字,并將這4個地址特征字作為本發(fā)明實施例中的地址主特征字,而目前,表示空間關系的字,如東、南、西、北等也經(jīng)常用于表征具體地址,如漢東村,那么,在本發(fā)明實施例中是以東為例進行說明。
步驟202:預先為4個地址主特征字分配編碼1,為4個地址主特征字前面的字符分配編碼0,為1個表示空間關系的地址補充特征字分配編碼2。
在本發(fā)明實施例中,將省、區(qū)、村及門牌號進行統(tǒng)一分配編碼,均分配編碼1,由于表示空間關系的東在地址表示中可能并很常用,因此將表示空間關系的東單獨分配編碼2,除此之外,為之后的地址進行匹配,可將省、區(qū)、村及門牌號之前的字符分配編碼0,例如,山東省,那么山和東就是兩個普通字符,那山東省的編碼就為001,但是,為了簡化表達,可將冗余的0進行合并,因此,山東省的編碼就表示為01。
步驟203:預先根據(jù)4個地址主特征字和1個地址補充特征字設置第一切分規(guī)則和第二切分規(guī)則。
在本發(fā)明實施例中,以省、區(qū)、村、門牌號及東組合的編碼作為第一切分規(guī)則中的匹配編碼,由步驟202可知,該匹配編碼為010102101,同時可以確定相應的切分位置為C247,所以第一切分規(guī)則為“010102101C247”以省、區(qū)及門牌號組合的編碼作為第二切分規(guī)則中的匹配編碼,那么該匹配編碼為0101010101,則相應的切分位置為C2468,所以第二切分規(guī)則為“0101010101C2468”。
步驟204:接收目標源地址“某某省某某區(qū)某東村某號”。
步驟205:根據(jù)省、區(qū)、村、門牌號對應的編碼1和東對應的編碼2,為“某某省某某區(qū)某東村某號”生成地址編碼。
在本發(fā)明實施例中,由步驟202可知,某某省的地址編碼為01,某某區(qū)的地址編碼為01,某東村的編碼為021,某號號的地址編碼為01,因此,目標源地址“某某省某某區(qū)某東村某號”生成的地址編碼為“010102101”。
步驟206:計算地址編碼010102101與第一切分規(guī)則的第一匹配度,與第二切分規(guī)則的第二匹配度。
在本發(fā)明實施例中,當?shù)刂肪幋a010102101與第一切分規(guī)則010102101C247包含的編碼進行匹配時,共有4部分完全匹配的編碼,即從左往右為01、01、021和01,當?shù)刂肪幋a010102101與第二切分規(guī)則0101010101C2468包含的編碼進行匹配時,共有兩部分完全匹配的編碼,即從左往右為01和01,則利用匹配度計算公式(1),可以計算得到第一匹配度為第二匹配度為
步驟207:比較第一匹配度與第二匹配度,并將最大匹配度對應的切分規(guī)則作為目標切分規(guī)則。
在步驟206中,得到第一匹配度T1為100%,第二匹配度T2為40%,由于100%>40%,即T1>T2,因此,可以確定第一匹配度為最大匹配度,而第一匹配度對應的切分規(guī)則為第一切分規(guī)則,從而確定目標切分規(guī)則即為第一切分規(guī)則。
步驟208:利用目標切分規(guī)則,確定地址編碼010102101的3個切分位置。
在本發(fā)明實施例中,目標切分規(guī)則即為第一切分規(guī)則,由于地址編碼010102101與第一切分規(guī)則中包含的編碼完全匹配,所以就可以直接按照第一切分規(guī)則中包含的切分位置C247,確定地址編碼010102101共有3個切分位置,分別是整個地址編碼的第2位、第4位和第7位的后面,切分的位置可以表示為01\01\021\01。
步驟209:在上述相應的3個切分位置處,對地址編碼010102101進行切分,生成4個分詞編碼。
在本發(fā)明實施例中,對地址編碼010102101從左到右依次進行掃描,當掃描到第2位1時,進行第一次切分,當掃描到第4位1時,進行第二次切分,當掃描到第7位1時,進行第三次切分,那經(jīng)過三次切分后,將會得到4個分詞編碼,分別為01、01、021和01。
步驟210:對上述4個分詞編碼01、01、021和01進行恢復,并得到對應的某某省、某某區(qū)、某東村和某號。
為實現(xiàn)最終的目標源地址“某某省某某區(qū)某東村某號”分詞,應將上述步驟209得到的4個分詞編碼,分別恢復成相應的地址特征,從而最終得到目標源地址分詞后的對應地址為某某省\某某區(qū)\某東村\某號。
如圖3、圖4所示,本發(fā)明實施例提供了一種中文地址分詞裝置。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實施例提供的中文地址分詞裝置所在設備的一種硬件結構圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡接口、以及非易失性存儲器之外,實施例中裝置所在的設備通常還可以包括其他硬件,如負責處理報文的轉發(fā)芯片等等。以軟件實現(xiàn)為例,如圖4所示,作為一個邏輯意義上的裝置,是通過其所在設備的CPU將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。本實施例提供的一種中文地址分詞裝置,包括:
編碼分配單元401、設置單元402、接收單元403、生成單元404、確定單元405、分詞單元406,其中,
所述編碼分配單元401,用于收集至少兩個地址特征,并為所述至少兩個地址特征分配對應的編碼;
所述設置單元402,用于設置至少一種切分規(guī)則;
所述接收單元403,用于接收目標源地址;
所述生成單元404,用于根據(jù)所述編碼分配單元401為所述至少兩個地址特征分配的對應編碼,為所述接收單元403接收到的所述目標源地址生成地址編碼;
所述確定單元405,用于根據(jù)所述設置單元402中設置的所述至少一種切分規(guī)則,為所述生成單元404生成的所述地址編碼確定目標切分規(guī)則;
所述分詞單元406,用于利用所述確定單元405確定的所述目標切分規(guī)則,對所述生成單元404生成的所述地址編碼進行切分。
在本發(fā)明一個實施例中,所述設置單元402,用于:
將所述至少兩個地址特征對應的編碼進行任意組合,形成至少一種組合編碼;
確定每一種所述組合編碼的組合位置為對應的切分位置。
在本發(fā)明一個實施例中,所述地址特征包括:省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號和表示方位的字中的任意兩個或多個;
所述編碼分配單元401,用于:為所述省、市、區(qū)、縣、橋、鎮(zhèn)、門牌號分配第一編碼;為所述表示方位的字分配第二編碼。
如圖5所示,在本發(fā)明一個實施例中,所述確定單元405,包括:計算子單元501和確定子單元502,其中,
所述計算子單元501,用于將所述地址編碼與每一種所述組合編碼進行匹配,利用下述計算公式(1),計算所述地址編碼與每一種所述組合編碼的匹配度;
其中,Ti表征地址編碼與組合編碼i對應的匹配度;n表征組合編碼i中包含的編碼個數(shù);ni表征地址編碼與組合編碼i中包含的編碼的匹配個數(shù);
所述確定子單元502,用于確定最大匹配度的組合編碼以及所述最大匹配度的組合編碼對應的切分位置;
所述分詞單元406,用于根據(jù)所述最大匹配度的組合編碼對應的切分位置,對所述地址編碼進行切分。
如圖6所示,在本發(fā)明一個實施例中,為得到字符表示的切分地址,進一步包括:恢復單元601,其中,所述恢復單元601,用于根據(jù)所述至少兩個地址特征對應的編碼,將切分后的地址編碼恢復為對應的地址特征。
綜上,本發(fā)明各個實施例至少具有如下有益效果:
1、在本發(fā)明實施例中,通過預先設置至少兩種切分規(guī)則,那在接收到目標源地址后,通過將編碼生成的地址編碼與每一種切分規(guī)則進行匹配,當確定與地址編碼最大的匹配規(guī)則時,在查找到的地址編碼中的相應位置完成對地址編碼的切分,因此,即使接收到目標源地址中的一部分字符并未包含在詞典中,但是只要匹配到相應的切分規(guī)則,就可以實現(xiàn)地址分詞,從而有效提高了地址分詞的準確率。
2、在本發(fā)明實施例中,通過預先設置每一條切分規(guī)則相應的編碼及切分位置,完成對待分詞地址的切分,而不再使用詞典進行字符串匹配,從而有效防止了由于詞典包含地址字符串不全面導致的地址分詞不準確。
3、在本發(fā)明實施例中,通過為地址特征分配對應的編碼,那么接收到的源地址就可以根據(jù)該對應編碼生成相應的地址編碼,從而就可以與預先設置的規(guī)則進行匹配,為實現(xiàn)地址匹配奠定基礎。
4、在本發(fā)明實施例中,通過計算匹配度,可以找出與地址編碼最佳的切分規(guī)則,從而提高待切分地址的準確性,并為之后的分詞奠定基礎。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。