本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種文本消重系統(tǒng)、方法、服務(wù)器及計(jì)算機(jī)存儲介質(zhì)。
背景技術(shù):
文本消重的主要功能是鑒定內(nèi)容相同或相似的網(wǎng)頁數(shù)據(jù),并在此基礎(chǔ)上濾掉內(nèi)容相同或相似的網(wǎng)頁數(shù)據(jù)。文本消重的目的在于使用戶在使用互聯(lián)網(wǎng)查詢時不會搜到大量內(nèi)容重復(fù)的網(wǎng)頁,提高搜索引擎的效率。
但是,在實(shí)現(xiàn)本發(fā)明實(shí)施例的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:現(xiàn)有技術(shù)在進(jìn)行文本消重時,都是將待消重的全部文本數(shù)據(jù)集中在一起,并通過將全部文本數(shù)據(jù)逐個比對的方式進(jìn)行消重處理。然而,隨著文本數(shù)據(jù)量不斷增大,當(dāng)面臨海量待消重文本數(shù)據(jù)時,目前的消重處理方式便很難實(shí)時、快速地處理海量待消重文本數(shù)據(jù);另一方面,目前在執(zhí)行消重處理的過程中,為了防止因讀寫操作而引發(fā)的數(shù)據(jù)不一致現(xiàn)象,需要對全部文本數(shù)據(jù)進(jìn)行加鎖處理,因此,導(dǎo)致消重過程中的所有文本均無法正常使用,為用戶造成了極大不便。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的文本消重系統(tǒng)、方法、服務(wù)器及計(jì)算機(jī)存儲介質(zhì)。
根據(jù)本發(fā)明的一個方面,提供了一種文本消重系統(tǒng),包括:預(yù)處理模塊,用于對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞;存儲模塊,用于存儲預(yù)處理模塊預(yù)處理后的各個文本,并設(shè)置用于查詢各個文本的倒排索引表;其中,倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系;消重模塊,用于從存儲模塊中獲取至少一個待消重文本,確定待消重文本對應(yīng)的關(guān)鍵詞,通過倒排索引表確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對待消重文本以及待比對文本進(jìn)行消重處理;分布式鎖模塊,用于在消重模塊進(jìn)行消重處理前,通過分布式鎖對存儲模塊中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作;并在消重模塊進(jìn)行消重處理后釋放分布式鎖。
根據(jù)本發(fā)明的另一方面,提供了一種文本消重方法,包括:對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞;對預(yù)處理后的各個文本進(jìn)行存儲,并設(shè)置用于查詢各個文本的倒排索引表;其中,倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系;獲取至少一個待消重文本,確定待消重文本對應(yīng)的關(guān)鍵詞,通過倒排索引表確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對待消重文本以及待比對文本進(jìn)行消重處理;其中,文本消重方法進(jìn)一步包括:在消重處理前,通過分布式鎖對存儲的待消重文本以及待比對文本進(jìn)行加鎖操作;并在消重處理后釋放分布式鎖。
根據(jù)本發(fā)明的又一方面,提供了一種服務(wù)器,包括:處理器、存儲器、通信接口和通信總線,所述處理器、所述存儲器和所述通信接口通過所述通信總線完成相互間的通信;
所述存儲器用于存放至少一可執(zhí)行指令,所述可執(zhí)行指令使所述處理器執(zhí)行上述文本消重方法對應(yīng)的操作。
根據(jù)本發(fā)明的再一方面,提供了一種計(jì)算機(jī)存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一可執(zhí)行指令,所述可執(zhí)行指令使處理器執(zhí)行如上述文本消重方法對應(yīng)的操作。
在本發(fā)明提供的文本消重系統(tǒng)、方法、服務(wù)器及計(jì)算機(jī)存儲介質(zhì)中,首先通過預(yù)處理模塊對待消重的各個文本進(jìn)行預(yù)處理,并根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞;然后通過存儲模塊存儲上述經(jīng)過預(yù)處理的各個文本,并設(shè)置用于查詢各個文本的倒排索引表,其中,上述倒排索引表中存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系;最后通過消重模塊從存儲模塊中獲取至少一個待消重文本,確定該待消重文本對應(yīng)的關(guān)鍵詞,通過上述倒排索引表確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本并據(jù)此進(jìn)行消重處理。其中,在對待消重文本進(jìn)行消重處理之前,還進(jìn)一步通過分布式鎖模塊對存儲模塊中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作;并在消重模塊進(jìn)行消重處理后釋放分布式鎖。由此可見,通過預(yù)先提取關(guān)鍵詞并建立倒排索引表的方式,能夠根據(jù)關(guān)鍵詞快速確定與待消重文本相關(guān)性較大的待比對文本,進(jìn)而僅針對確定出的待比對文本進(jìn)行消重,而無需考慮其他相關(guān)性較小的無關(guān)文本,因此,通過準(zhǔn)確限定消重范圍的方式能夠有效提高文本消重的準(zhǔn)確性及處理效率,優(yōu)化文本消重的處理過程,避免了針對全部文本逐個比對的繁瑣操作。并且,由于分布式鎖僅針對特定鍵值的數(shù)據(jù)進(jìn)行加鎖,而對于其他鍵值的數(shù)據(jù)則不予加鎖,即:僅針對包含相同關(guān)鍵詞的待消重文本以及待比對文本進(jìn)行加鎖,因此,一方面,針對特定文本的消重過程不會影響其他無關(guān)文本的正常訪問;另一方面,還能夠同時針對多組文本進(jìn)行并行化消重處理,進(jìn)而通過并發(fā)方式進(jìn)一步提高了處理效率。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1為本發(fā)明實(shí)施例一提供的一種文本消重系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明實(shí)施例二提供的一種文本消重系統(tǒng)的結(jié)構(gòu)框圖;
圖3為本發(fā)明實(shí)施例三提供的一種文本消重方法的流程圖;
圖4示出了根據(jù)本發(fā)明實(shí)施例五的一種服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明提供了一種文本消重系統(tǒng)、方法、服務(wù)器及計(jì)算機(jī)存儲介質(zhì),能夠有效解決現(xiàn)有技術(shù)中在進(jìn)行文本消重時,消重準(zhǔn)確性低以及消重處理效率低的問題,提高了文本消重的準(zhǔn)確性及處理效率,優(yōu)化了文本消重的處理過程。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的一種文本消重系統(tǒng)的結(jié)構(gòu)框圖。如圖1所示,該文本消重系統(tǒng)包括:預(yù)處理模塊11、存儲模塊12、消重模塊13以及分布式鎖模塊14。
首先介紹預(yù)處理模塊11。預(yù)處理模塊11用于對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞。
其中,待消重的各個文本可以為網(wǎng)頁中的電子文本,例如,網(wǎng)頁新聞、網(wǎng)頁電子書、博客等。預(yù)處理模塊11的數(shù)量可以為一個,也可以為多個,其具體數(shù)量可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。
其中,預(yù)處理模塊11對待消重的各個文本進(jìn)行的預(yù)處理可以包括:針對待消重的各個文本的標(biāo)題進(jìn)行簡化去噪,以及提取各個文本的內(nèi)容中的關(guān)鍵詞等能夠代表該文本的文本內(nèi)容的關(guān)鍵信息等。其中,預(yù)處理模塊11的預(yù)處理方式可以有多種,例如,提取文本中出現(xiàn)詞頻較高的實(shí)詞作為關(guān)鍵詞;或者根據(jù)預(yù)設(shè)的分析模型對各個文本進(jìn)行分析并確定各個文本對應(yīng)的關(guān)鍵詞(例如根據(jù)預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型對待消重的各個文本的內(nèi)容進(jìn)行語義分析并獲取該待消重的文本的關(guān)鍵詞),等等。在這里,只要能夠獲取待消重的各個文本中的關(guān)鍵詞等關(guān)鍵信息即可,本發(fā)明對預(yù)處理模塊11的預(yù)處理方式不作限制。
預(yù)處理模塊11在根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞時,可以對上述預(yù)處理結(jié)果進(jìn)行重復(fù)信息過濾、高頻詞提取等處理,以此來確定各個文本對應(yīng)的關(guān)鍵詞。具體實(shí)施中,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞的確定方式可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。
設(shè)置預(yù)處理模塊11的目的在于:在后續(xù)模塊(對應(yīng)存儲模塊12和消重模塊13)針對待消重的各個文本進(jìn)行存儲或者讀取等相關(guān)處理時,可以通過預(yù)處理模塊11中確定的關(guān)鍵詞來存儲和讀取對應(yīng)的待消重文本的數(shù)據(jù),有效減小了后續(xù)處理過程中處理的數(shù)據(jù)量的大小,提高文本消重的處理效率。
接下來介紹存儲模塊12。存儲模塊12用于存儲預(yù)處理模塊11預(yù)處理后的各個文本,并設(shè)置用于查詢各個文本的倒排索引表;其中,倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系。
其中,預(yù)處理模塊預(yù)處理后的各個文本可以是經(jīng)過預(yù)處理后實(shí)現(xiàn)了簡化去噪效果的文本,另外,預(yù)處理后的各個文本中還進(jìn)一步包含從相應(yīng)文本中提取出的關(guān)鍵詞。相應(yīng)地,存儲模塊12在設(shè)置用于查詢各個文本的倒排索引表時,根據(jù)各個關(guān)鍵詞以及與該關(guān)鍵詞對應(yīng)的文本來建立。即:在各個文本對應(yīng)的關(guān)鍵詞與各個文本之間建立一個映射關(guān)系。例如,文本1對應(yīng)的關(guān)鍵詞為關(guān)鍵詞1、關(guān)鍵詞2;文本2對應(yīng)的關(guān)鍵詞為關(guān)鍵詞2、關(guān)鍵詞3;文本3對應(yīng)的關(guān)鍵詞為關(guān)鍵詞2;則倒排索引表中存儲有如下數(shù)據(jù):關(guān)鍵詞1:文本1;關(guān)鍵詞2:文本1、文本2、文本3;關(guān)鍵詞3:文本2。由此可見,通過倒排索引表能夠根據(jù)關(guān)鍵詞快速查詢包含該關(guān)鍵詞的文本,從而快速鎖定待消重的文本范圍。
消重模塊13用于從存儲模塊12中獲取至少一個待消重文本,確定待消重文本對應(yīng)的關(guān)鍵詞,通過倒排索引表確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對待消重文本以及待比對文本進(jìn)行消重處理。
具體地,消重模塊13用于對待消重文本進(jìn)行消重處理,其處理過程包括:首先,消重模塊13從存儲模塊12中獲取至少一個待消重文本,通過預(yù)處理模塊11確定該待消重文本對應(yīng)的關(guān)鍵詞。然后,消重模塊13通過上述確定的關(guān)鍵詞以及設(shè)置在存儲模塊12中的倒排索引表中的映射關(guān)系來確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本。其中,待消重文本的數(shù)量可以是一個也可以是多個,當(dāng)待消重文本的數(shù)量為一個時,獲取到的待比對文本的數(shù)量應(yīng)為多個(包含待消重文本本身以及與該待消重文本包含相同關(guān)鍵詞的相關(guān)文本);當(dāng)待消重文本的數(shù)量為多個時,獲取到的待比對文本的數(shù)量大于或等于待消重文本的數(shù)量(即:獲取到的待比對文本至少包含各個待消重文本)。最后,消重模塊13針對待消重文本以及待比對文本進(jìn)行消重處理,具體地,可以將包含待消重文本在內(nèi)的所有待比對文本都放入一個消重集合中進(jìn)行消重處理。上述通過關(guān)鍵詞查找與待消重文本對應(yīng)的待比對文本的過程不僅減少了處理數(shù)據(jù)時的數(shù)據(jù)量,提高了消重處理效率;而且還能夠進(jìn)一步增加了針對待比對文本查找的準(zhǔn)確性,從而有效提高了文本消重的準(zhǔn)確性,降低文本消重結(jié)果中的誤召回率。
分布式鎖模塊14用于在消重模塊13進(jìn)行消重處理前,通過分布式鎖對存儲模塊中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作;并在消重模塊進(jìn)行消重處理后釋放分布式鎖。
具體地,在本發(fā)明中,在消重模塊13進(jìn)行消重處理前,分布式鎖模塊14通過分布式鎖對存儲模塊12中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作,使消重模塊13針對待消重文本以及待比對文本的消重處理過程能夠獨(dú)立進(jìn)行,保證消重處理的高效運(yùn)行。在消重模塊13完成對待消重文件的消重處理之后,分布式鎖模塊14釋放上述加鎖在待消重文本以及待比對文本上的分布式鎖,恢復(fù)文本的正常運(yùn)行,即:使解鎖后的文本數(shù)據(jù)能夠被正常訪問或者被進(jìn)行其它處理等。
設(shè)置分布式鎖模塊14的目的在于:保證消重處理過程的獨(dú)立進(jìn)行,使消重處理過程中的文本數(shù)據(jù)不會受到其它處理請求或者訪問請求的干擾,提高了消重處理過程的效率。另外,若消重過程中,待消重的文本被修改,則會導(dǎo)致存儲數(shù)據(jù)不一致,因此,通過分布式鎖能夠確保文本的準(zhǔn)確性。
由此可見,在本發(fā)明提供的文本消重系統(tǒng)中,通過預(yù)先提取關(guān)鍵詞并建立倒排索引表的方式,能夠根據(jù)關(guān)鍵詞快速確定與待消重文本相關(guān)性較大的待比對文本,進(jìn)而僅針對確定出的待比對文本進(jìn)行消重,而無需考慮其他相關(guān)性較小的無關(guān)文本,因此,通過準(zhǔn)確限定消重范圍的方式能夠有效提高文本消重的準(zhǔn)確性及處理效率,優(yōu)化文本消重的處理過程,避免了針對全部文本逐個比對的繁瑣操作。并且,由于分布式鎖僅針對特定鍵值的數(shù)據(jù)進(jìn)行加鎖,而對于其他鍵值的數(shù)據(jù)則不予加鎖,即:僅針對包含相同關(guān)鍵詞的待消重文本以及待比對文本進(jìn)行加鎖,因此,一方面,針對特定文本的消重過程不會影響其他無關(guān)文本的正常訪問;另一方面,還能夠同時針對多組文本進(jìn)行并行化消重處理,進(jìn)而通過并發(fā)方式進(jìn)一步提高了處理效率。
實(shí)施例二
圖2為本發(fā)明實(shí)施例二提供的一種文本消重系統(tǒng)的結(jié)構(gòu)框圖。如圖2所示,該文本消重系統(tǒng)包括:預(yù)處理模塊21、存儲模塊22、消重模塊23以及分布式鎖模塊24。其中,存儲模塊22進(jìn)一步包括多個分布式存儲模塊221,消重模塊23進(jìn)一步包括多個計(jì)算子模塊231。
預(yù)處理模塊21用于對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞。其中,待消重的各個文本可以為網(wǎng)頁中的電子文本,例如,網(wǎng)頁新聞、網(wǎng)頁電子書、博客等。在本實(shí)施例中,待消重的各個文本具體為新聞文本。
具體地,在進(jìn)行消重處理時,首先將待消重的各個文本發(fā)送至預(yù)處理模塊21進(jìn)行預(yù)處理,并根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞。其中,上述預(yù)處理可以包括:針對待消重的各個文本的標(biāo)題進(jìn)行簡化去噪,以及提取各個文本的內(nèi)容中的關(guān)鍵詞等能夠代表該文本的文本內(nèi)容的關(guān)鍵信息等。在確定各個文本對應(yīng)的關(guān)鍵詞時,可以對上述預(yù)處理結(jié)果進(jìn)行重復(fù)信息過濾、高頻詞提取等處理,以此來確定各個文本對應(yīng)的關(guān)鍵詞。
其中,預(yù)處理模塊21的數(shù)量可以為一個,也可以為多個,其具體數(shù)量可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。其中,當(dāng)預(yù)處理模塊21的數(shù)量為多個時,各個預(yù)處理模塊21可以相互并行處理,以此來提高預(yù)處理過程的處理效率。
其中,預(yù)處理模塊21的預(yù)處理方式可以有多種,在本實(shí)施例中,優(yōu)選通過預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型確定各個文本對應(yīng)的關(guān)鍵詞。其中,預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型能夠針對文檔內(nèi)容中的對應(yīng)關(guān)鍵詞進(jìn)行抽取和概括,從而準(zhǔn)確提取能夠代表待消重的各個文本的內(nèi)容信息的關(guān)鍵詞。但是,可以理解的是,本發(fā)明中針對待消重的各個文本的預(yù)處理方式包括但不限于通過上述預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型,本發(fā)明還可以采用其他的預(yù)處理方式(例如提取出現(xiàn)詞頻較高的實(shí)詞等方式)對待消重的各個文本進(jìn)行預(yù)處理。在這里,只要能夠提取待消重的各個文本中的關(guān)鍵信息即可(即:能夠代表各個文本的內(nèi)容的關(guān)鍵詞等信息),本發(fā)明對預(yù)處理模塊21的預(yù)處理方式不作限制。
設(shè)置預(yù)處理模塊21的目的在于:在后續(xù)模塊(對應(yīng)存儲模塊22和消重模塊23)針對待消重文本進(jìn)行存儲或者讀取等相關(guān)處理時,可以通過預(yù)處理模塊21中確定的關(guān)鍵詞來存儲和讀取對應(yīng)的待消重文本的數(shù)據(jù),減小了后續(xù)處理過程中需要處理的數(shù)據(jù)量的大小,提高了文本消重的處理效率。
存儲模塊22用于存儲預(yù)處理模塊預(yù)處理后的各個文本,并設(shè)置用于查詢各個文本的倒排索引表;其中,倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系。
其中,預(yù)處理模塊預(yù)處理后的各個文本可以是經(jīng)過預(yù)處理后實(shí)現(xiàn)了簡化去噪效果的文本,另外,預(yù)處理后的各個文本中還進(jìn)一步包含從相應(yīng)文本中提取出的關(guān)鍵詞。相應(yīng)地,存儲模塊12在設(shè)置用于查詢各個文本的倒排索引表時,根據(jù)各個關(guān)鍵詞以及與該關(guān)鍵詞對應(yīng)的文本來建立。即:在各個文本對應(yīng)的關(guān)鍵詞與各個文本之間建立一個映射關(guān)系。例如,文本1對應(yīng)的關(guān)鍵詞為關(guān)鍵詞1、關(guān)鍵詞2;文本2對應(yīng)的關(guān)鍵詞為關(guān)鍵詞2、關(guān)鍵詞3;文本3對應(yīng)的關(guān)鍵詞為關(guān)鍵詞2;則倒排索引表中存儲有如下數(shù)據(jù):關(guān)鍵詞1:文本1;關(guān)鍵詞2:文本1、文本2、文本3;關(guān)鍵詞3:文本2。由此可見,通過倒排索引表能夠根據(jù)關(guān)鍵詞快速查詢包含該關(guān)鍵詞的文本,從而快速鎖定待消重的文本范圍。具體地,待消重文本中的關(guān)鍵詞既可以是一個,也可以是多個,當(dāng)待消重文本中的關(guān)鍵詞為多個時,分別針對每個關(guān)鍵詞獲取包含該關(guān)鍵詞的文本,將獲取到的包含各個關(guān)鍵詞的文本共同作為待比對文本。
在本實(shí)施例中,存儲模塊22具體包括多個分布式存儲模塊221,上述多個分布式存儲模塊221用于通過一致性哈希算法對預(yù)處理后的各個文本進(jìn)行分布式存儲。并且,每個分布式存儲模塊221都與其它的分布式存儲模塊221相連。具體地,在存儲各個文本時,首先通過一致性哈希算法,確定各個文本分別存儲在哪個分布式存儲模塊中。另外,還可以通過一致性哈希算法將待消重的文本數(shù)據(jù)進(jìn)行均勻分片,然后將分片后的各個文本數(shù)據(jù)分別存儲在多個分布式存儲模塊221中。在這里,選擇分布式存儲的目的在于,當(dāng)面對海量數(shù)據(jù)處理時,分布式存儲能夠根據(jù)服務(wù)器的數(shù)量將海量數(shù)據(jù)進(jìn)行均勻的分片處理,通過將海量數(shù)據(jù)進(jìn)行分片微化,并針對分片后的每個分片數(shù)據(jù)進(jìn)行并行處理的方式來實(shí)現(xiàn)實(shí)時、快速地處理海量數(shù)據(jù)的目的。采用一致性哈希算法的目的在于保證數(shù)據(jù)分片的均勻性,進(jìn)而保證數(shù)據(jù)存儲與讀取過程中的一致性。并且,采用一致性哈希算法能夠靈活地增刪分布式存儲模塊的數(shù)量,而不必遷移全部數(shù)據(jù),系統(tǒng)靈活性和可擴(kuò)展性更好。
進(jìn)一步地,在多個分布式存儲模塊221存儲分片數(shù)據(jù)的同時,多個分布式存儲模塊221還可以對存儲的數(shù)據(jù)進(jìn)行備份,以防止當(dāng)數(shù)據(jù)因?yàn)檫\(yùn)行故障等原因丟失時,其丟失數(shù)據(jù)無法再挽回。因此針對存儲的各個文本進(jìn)行備份,以此來降低數(shù)據(jù)損失的風(fēng)險。
消重模塊23用于從存儲模塊中獲取至少一個待消重文本,確定待消重文本對應(yīng)的關(guān)鍵詞,通過倒排索引表確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對待消重文本以及待比對文本進(jìn)行消重處理。
具體地,消重模塊23用于對待消重文本進(jìn)行消重處理。其處理過程包括:首先,消重模塊23從存儲模塊22中獲取至少一個待消重文本,并從存儲模塊22中獲取該待消重文本對應(yīng)的關(guān)鍵詞;然后,消重模塊23通過上述確定的關(guān)鍵詞以及設(shè)置在存儲模塊22中的倒排索引表中的映射關(guān)系來確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,其中,待消重文本的數(shù)量可以是一個也可以是多個,當(dāng)待消重文本的數(shù)量為一個時,獲取到的待比對文本的數(shù)量應(yīng)為多個(包含待消重文本本身以及與該待消重文本包含相同關(guān)鍵詞的相關(guān)文本);當(dāng)待消重文本的數(shù)量為多個時,獲取到的待比對文本的數(shù)量大于或等于待消重文本的數(shù)量(即:獲取到的待比對文本至少包含各個待消重文本)。最后,消重模塊23針對待消重文本以及待比對文本進(jìn)行消重處理,具體地,可以將包含待消重文本在內(nèi)的所有待比對文本都放入一個消重集合中進(jìn)行消重處理。
為了提高處理效率,消重模塊23進(jìn)一步包括多個計(jì)算子模塊231,各個計(jì)算子模塊之間既可以相互獨(dú)立地并行工作;也可以相互配合,共同完成針對待消重文本的消重操作。
其中,當(dāng)各個計(jì)算子模塊之間相互獨(dú)立地并行工作時,可適用于各個計(jì)算子模塊按照一定的順序逐個對存儲模塊中存儲的每一文本進(jìn)行消重處理的場景中。在該場景中,各個計(jì)算子模塊每隔預(yù)設(shè)時間間隔自發(fā)地針對存儲模塊中存儲的每一文本進(jìn)行消重處理,具體時間間隔可以根據(jù)新聞文件的產(chǎn)生周期設(shè)置,目的在于盡可能及時地對新增的新聞文件進(jìn)行消重。相應(yīng)地,每個計(jì)算子模塊還可以針對已進(jìn)行消重處理的文本設(shè)置已處理標(biāo)簽,以防止其他計(jì)算子模塊對其重復(fù)處理,從而造成資源的浪費(fèi)。由于各個計(jì)算子模塊相互并行工作,因此,每個計(jì)算子模塊相互獨(dú)立地根據(jù)待消重文本獲取對應(yīng)的待比對文本,并將全部待比對文本存儲到本地以進(jìn)行消重處理。
當(dāng)各個計(jì)算子模塊相互配合,共同完成針對待消重文本的消重操作時,可適用于消重模塊針對接收到的客戶端指令進(jìn)行消重處理。比如,用戶在客戶端側(cè)針對文本1發(fā)送第一消重請求,則在接收到上述第一消重請求之后,將文本1作為待消重文本,僅針對文本1及其對應(yīng)的待比對文本進(jìn)行消重。相應(yīng)地,由于實(shí)際情況中的文本量級很大,文本1對應(yīng)的待比對文本的數(shù)量可能動輒成百上千,因此,為了提高第一消重請求的處理效率,縮短用戶的等待時間,每個計(jì)算子模塊231具體用于:每當(dāng)獲取到待消重文本以及待比對文本后,首先將待消重文本以及待比對文本分發(fā)給其他計(jì)算子模塊,然后接收其他計(jì)算子模塊針對分發(fā)到的文本進(jìn)行局部消重處理后返回的局部消重處理結(jié)果,根據(jù)局部消重處理結(jié)果確定最終消重處理結(jié)果。例如,第一計(jì)算子模塊負(fù)責(zé)處理第一消重請求,則當(dāng)?shù)谝挥?jì)算子模塊獲取到待消重文本(即文本1)以及待比對文本(即包括文本1在內(nèi)的、包含文本1中的關(guān)鍵詞的全部文本)后,根據(jù)待比對文本的總量將待比對文本分發(fā)給其他的計(jì)算子模塊處理。具體地,計(jì)算子模塊231將待消重文本以及待比對文本分發(fā)給其他計(jì)算子模塊的處理過程可以為:每個計(jì)算子模塊231在獲取到待消重文本以及待比對文本之后,將待消重文本以及待比對文本的總量與計(jì)算子模塊的總量做商取整,并將做商取整的結(jié)果作為分發(fā)給其他計(jì)算子模塊的待消重文本以及待比對文本數(shù)量,然后對應(yīng)數(shù)量的待消重文本以及待比對文本分發(fā)給其他計(jì)算子模塊231;或者,也可以設(shè)置一個預(yù)設(shè)閾值,每個計(jì)算子模塊231在獲取到待消重文本以及待比對文本之后,首先將待消重文本以及待比對文本的數(shù)量與上述預(yù)設(shè)閾值進(jìn)行比較,若待消重文本以及待比對文本的數(shù)量大于上述預(yù)設(shè)閾值,則計(jì)算子模塊231進(jìn)一步將超出預(yù)設(shè)閾值數(shù)量的待消重文本以及待比對文本分發(fā)給其他的計(jì)算子模塊,等等。具體實(shí)施中,上述分發(fā)數(shù)量的確定方式可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。設(shè)置多個計(jì)算子模塊231的目的在于:提高針對待消重文本以及待比對文本的消重處理效率,使針對待消重文本以及待比對文本的消重過程可以為相互并行處理,并進(jìn)一步實(shí)現(xiàn)減少網(wǎng)絡(luò)開銷,提高數(shù)據(jù)處理的實(shí)時性,減小處理過程的時延等有益效果。
可選地,計(jì)算子模塊231在進(jìn)行消重處理時,還可以進(jìn)一步對確定為重復(fù)的文本進(jìn)行標(biāo)記,并根據(jù)上述標(biāo)記的結(jié)果對待消重文本進(jìn)行處理。其中,在確定消重結(jié)果時,若計(jì)算子模塊231并未向其他計(jì)算子模塊分發(fā)待消重文本以及待比對文本,則該計(jì)算子模塊231將自身的消重結(jié)果確定為最終的消重處理結(jié)果;若計(jì)算子模塊231向其他計(jì)算子模塊分發(fā)待消重文本以及待比對文本,則該計(jì)算子模塊231接收其他計(jì)算子模塊針對分發(fā)到的文本進(jìn)行局部消重處理后返回的局部消重處理結(jié)果,并將該局部消重處理結(jié)果與該計(jì)算子模塊231中的局部消重處理結(jié)果進(jìn)行加和,將加和結(jié)果確定為最終的消重處理結(jié)果。
可選地,消重模塊23進(jìn)一步用于:為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽。并且,上述重復(fù)標(biāo)簽中還可以進(jìn)一步包含根據(jù)文本的文本特征信息為確定為重復(fù)的文本計(jì)算的對應(yīng)分值。其中,文本特征信息可以是該文本的發(fā)布時間、發(fā)布源頭、篇幅長短、重要性等相關(guān)信息。具體計(jì)算時,各個文本特征對應(yīng)的分值可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。另外,針對新聞進(jìn)行消重的最終目的在于:防止前端用戶在同一屏內(nèi)瀏覽到相同的新聞,因此,在對新聞進(jìn)行展示之前,若同一屏內(nèi)展現(xiàn)的新聞中包含多個帶有重復(fù)標(biāo)簽的新聞,則可以根據(jù)標(biāo)簽中包含的分值確定最終展現(xiàn)的新聞,例如,僅展現(xiàn)分值最高的新聞,而屏蔽其他分值較低的重復(fù)性新聞,從而提升用戶體驗(yàn)。
分布式鎖模塊24用于在消重模塊進(jìn)行消重處理前,通過分布式鎖對存儲模塊22中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作;并在消重模塊23進(jìn)行消重處理后釋放分布式鎖。
具體地,分布式鎖模塊24中包含有多個分布式鎖,能夠針對待處理的文本進(jìn)行加鎖操作。在本發(fā)明中,在消重模塊23進(jìn)行消重處理前,分布式鎖模塊24通過分布式鎖對存儲模塊22中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作,使針對待消重文本以及待比對文本的消重處理能夠獨(dú)立進(jìn)行,即保證當(dāng)前的消重處理過程不會受到其它訪問請求或者處理請求的干擾,保證消重處理的高效運(yùn)行。有效解決了多個分片數(shù)據(jù)在被同時處理時可能產(chǎn)生的同步性問題以及沖突性等問題。在消重模塊23完成對待消重文件的消重處理之后,分布式鎖模塊24釋放上述設(shè)置在待消重文本以及待比對文本上的分布式鎖,恢復(fù)經(jīng)過消重處理后的文本的正常運(yùn)行。分布式鎖模塊24的設(shè)置能夠使消重處理的過程獨(dú)立進(jìn)行,提高了消重處理過程的效率。并且,分布式鎖還能夠進(jìn)一步保證分片數(shù)據(jù)之間的數(shù)據(jù)處理的同步性,保證分片數(shù)據(jù)處理的一致性。另外,若消重過程中,待消重的文本被修改,則會導(dǎo)致存儲數(shù)據(jù)不一致,因此,通過分布式鎖能夠確保文本的準(zhǔn)確性。
另外,要說明的是,在實(shí)現(xiàn)本實(shí)施例中各個模塊的對應(yīng)功能時,可以將本實(shí)施例中的各個模塊獨(dú)立分開,即各個模塊實(shí)現(xiàn)各自的對應(yīng)功能;或者,也可以根據(jù)實(shí)際情況將任意的多個模塊進(jìn)行組合,例如,可以將預(yù)處理模塊集成在存儲模塊上,或者將存儲模塊的功能與消重模塊中多個計(jì)算子模塊的功能集成在一起,等等。具體實(shí)施中,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況選擇是否將對應(yīng)的模塊及其對應(yīng)的功能進(jìn)行組合,本發(fā)明對此不作限制。
由此可見,在本發(fā)明提供的文本消重系統(tǒng)中,通過準(zhǔn)確限定消重范圍的方式能夠有效提高文本消重的準(zhǔn)確性及處理效率,優(yōu)化文本消重的處理過程,避免了針對全部文本逐個比對的繁瑣操作。并且,由于分布式鎖僅針對特定鍵值的數(shù)據(jù)進(jìn)行加鎖,而對于其他鍵值的數(shù)據(jù)則不予加鎖,即:僅針對包含相同關(guān)鍵詞的待消重文本以及待比對文本進(jìn)行加鎖,因此,一方面,針對特定文本的消重過程不會影響其他無關(guān)文本的正常訪問;另一方面,還能夠同時針對多組文本進(jìn)行并行化消重處理,進(jìn)而通過并發(fā)方式進(jìn)一步提高了處理效率。同時,本實(shí)施中的方案還進(jìn)一步為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽,并在重復(fù)標(biāo)簽中加入根據(jù)文本特征計(jì)算的對應(yīng)分值,從而能夠有效防止前端用戶在同一屏內(nèi)瀏覽到相同的重復(fù)文本,提升了用戶體驗(yàn)。
實(shí)施例三
圖3為本發(fā)明實(shí)施例三提供的一種文本消重方法的流程圖。如圖3所示,該方法包括以下步驟:
步驟s310:對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞。
其中,待消重的各個文本可以為網(wǎng)頁中的電子文本,例如,網(wǎng)頁新聞、網(wǎng)頁電子書、博客等。具體地,針對待消重的各個文本進(jìn)行的預(yù)處理可以包括:針對待消重的各個文本的標(biāo)題進(jìn)行簡化去噪,以及提取各個文本的內(nèi)容中的關(guān)鍵詞等能夠代表該文本的文本內(nèi)容的關(guān)鍵信息等。其中,預(yù)處理方式可以有多種,例如,提取文本中出現(xiàn)詞頻較高的實(shí)詞作為關(guān)鍵詞;或者根據(jù)預(yù)設(shè)的分析模型(例如神經(jīng)網(wǎng)絡(luò)模型)對各個文本進(jìn)行分析并確定各個文本對應(yīng)的關(guān)鍵詞,等等。具體實(shí)施中,優(yōu)選通過預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型確定各個文本對應(yīng)的關(guān)鍵詞。其中,預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型能夠針對文檔內(nèi)容中的對應(yīng)關(guān)鍵詞進(jìn)行抽取和概括,從而準(zhǔn)確提取能夠代表待消重的各個文本的內(nèi)容信息的關(guān)鍵詞。在這里,只要能夠獲取待消重的各個文本中的關(guān)鍵詞等關(guān)鍵信息即可,本發(fā)明對上述預(yù)處理方式不作限制。
在根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞時,可以對上述預(yù)處理結(jié)果進(jìn)行重復(fù)信息過濾、高頻詞提取等處理,以此來確定各個文本對應(yīng)的關(guān)鍵詞。具體實(shí)施中,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞的確定方式可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。
設(shè)置本步驟的目的在于:在后續(xù)步驟(對應(yīng)步驟s320和步驟s330)針對待消重的各個文本進(jìn)行存儲或者讀取等相關(guān)處理時,可以通過預(yù)處理模塊11中確定的關(guān)鍵詞來存儲和讀取對應(yīng)的待消重文本的數(shù)據(jù),有效減小了后續(xù)處理過程中處理的數(shù)據(jù)量的大小,提高文本消重的處理效率。
步驟s320:對預(yù)處理后的各個文本進(jìn)行存儲,并設(shè)置用于查詢各個文本的倒排索引表;其中,上述倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系。
具體地,預(yù)處理后的各個文本可以是經(jīng)過預(yù)處理后實(shí)現(xiàn)了簡化去噪效果的文本,另外,預(yù)處理后的各個文本中還進(jìn)一步包含從相應(yīng)文本中提取出的關(guān)鍵詞。相應(yīng)地,在在設(shè)置用于查詢各個文本的倒排索引時,根據(jù)各個關(guān)鍵詞以及與該關(guān)鍵詞對應(yīng)的文本來建立。即:在各個文本對應(yīng)的關(guān)鍵詞與各個文本之間建立一個映射關(guān)系。例如,文本1對應(yīng)的關(guān)鍵詞為關(guān)鍵詞1、關(guān)鍵詞2;文本2對應(yīng)的關(guān)鍵詞為關(guān)鍵詞2、關(guān)鍵詞3;文本3對應(yīng)的關(guān)鍵詞為關(guān)鍵詞2;則倒排索引表中存儲有如下數(shù)據(jù):關(guān)鍵詞1:文本1;關(guān)鍵詞2:文本1、文本2、文本3;關(guān)鍵詞3:文本2。由此可見,通過倒排索引表能夠根據(jù)關(guān)鍵詞快速查詢包含該關(guān)鍵詞的文本,從而快速鎖定待消重的文本范圍。具體地,待消重文本中的關(guān)鍵詞既可以是一個,也可以是多個,當(dāng)待消重文本中的關(guān)鍵詞為多個時,分別針對每個關(guān)鍵詞獲取包含該關(guān)鍵詞的文本,將獲取到的包含各個關(guān)鍵詞的文本共同作為待比對文本。
在本步驟中,在對預(yù)處理后的各個文本進(jìn)行存儲時,優(yōu)選通過一致性哈希算法對預(yù)處理后的各個文本進(jìn)行分布式存儲。具體地,在存儲各個文本時,首先通過一致性哈希算法,確定各個文本存儲位置(對應(yīng)實(shí)施例二中的分布式存儲模塊,即確定各個文本分別存儲在哪個分布式存儲模塊中),另外,還可以通過一致性哈希算法將待消重的文本數(shù)據(jù)進(jìn)行均勻分片,然后將分片后的各個文本進(jìn)行分布式存儲,即將分片后的各個文本存儲在不同的服務(wù)器中。在這里,選擇分布式存儲的目的在于,當(dāng)面對海量數(shù)據(jù)處理時,分布式存儲能夠根據(jù)服務(wù)器的數(shù)量將海量數(shù)據(jù)進(jìn)行均勻的分片處理,通過將海量數(shù)據(jù)進(jìn)行分片微化,并針對分片后的每個分片數(shù)據(jù)進(jìn)行處理的方式來實(shí)現(xiàn)實(shí)時、快速地處理海量數(shù)據(jù)的目的。采用一致性哈希算法的目的在于保證數(shù)據(jù)分片的均勻性,進(jìn)而保證數(shù)據(jù)存儲與讀取過程中的一致性。并且,采用一致性哈希算法能夠靈活地增刪分布式存儲模塊的數(shù)量,而不必遷移全部數(shù)據(jù),系統(tǒng)靈活性和可擴(kuò)展性更好。
進(jìn)一步地,在對預(yù)處理后的各個文本進(jìn)行存儲時,還可以進(jìn)一步對存儲的數(shù)據(jù)進(jìn)行備份,以防止當(dāng)?shù)臄?shù)據(jù)因?yàn)檫\(yùn)行故障等原因丟失時,其丟失數(shù)據(jù)無法再挽回。上述針對存儲的各個文本的備份能夠有效降低了數(shù)據(jù)損失的風(fēng)險。
步驟s330:通過分布式鎖對存儲的待消重文本以及待比對文本進(jìn)行加鎖操作;并在消重處理后釋放分布式鎖。
具體地,分布式鎖能夠針對待處理的文本進(jìn)行加鎖操作。在后續(xù)步驟(對應(yīng)步驟s340)進(jìn)行消重處理前,本步驟通過分布式鎖對步驟s320中存儲的待消重文本以及待比對文本進(jìn)行加鎖操作,使后續(xù)步驟(對應(yīng)步驟s340)中針對待消重文本以及待比對文本的消重處理過程能夠獨(dú)立進(jìn)行,即保證針對待消重文本以及待比對文本的消重處理過程不會受到針對該待消重文本以及該待比對文本的其它訪問請求或者其它處理請求的干擾,保證消重處理的高效運(yùn)行。在完成對待消重文件的消重處理之后,對應(yīng)釋放上述加鎖在待消重文本以及待比對文本上的分布式鎖,恢復(fù)經(jīng)過消重處理后的文本的正常運(yùn)行。使釋放加鎖后的文本數(shù)據(jù)能夠被正常訪問或者被進(jìn)行其它處理。分布式鎖的設(shè)置能夠使消重處理的過程獨(dú)立進(jìn)行,提高了消重處理過程的效率。并且,分布式鎖還能夠進(jìn)一步保證分片數(shù)據(jù)之間的數(shù)據(jù)處理的同步性,保證分片數(shù)據(jù)處理的一致性。另外,若消重過程中,待消重的文本被修改,則會導(dǎo)致存儲數(shù)據(jù)不一致,因此,通過分布式鎖能夠確保文本的準(zhǔn)確性。
步驟s340:獲取至少一個待消重文本,確定待消重文本對應(yīng)的關(guān)鍵詞,通過倒排索引表確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對待消重文本以及待比對文本進(jìn)行消重處理。
具體地,在本步驟中,首先獲取至少一個待消重文本,并從步驟s320中的存儲的預(yù)處理后的對應(yīng)文本中確定該待消重文本對應(yīng)的關(guān)鍵詞;然后通過上述確定的關(guān)鍵詞以及步驟s320中設(shè)置的倒排索引表中的映射關(guān)系來確定包含待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本。其中,待消重文本的數(shù)量可以是一個也可以是多個,當(dāng)待消重文本的數(shù)量為一個時,獲取到的待比對文本的數(shù)量應(yīng)為多個(包含待消重文本本身以及與該待消重文本包含相同關(guān)鍵詞的相關(guān)文本);當(dāng)待消重文本的數(shù)量為多個時,獲取到的待比對文本的數(shù)量大于或等于待消重文本的數(shù)量(即:獲取到的待比對文本至少包含各個待消重文本)。最后,針對待消重文本以及待比對文本進(jìn)行消重處理,具體地,可以將包含待消重文本在內(nèi)的所有待比對文本都放入一個消重集合中進(jìn)行消重處理。或者,為了提高處理效率,進(jìn)一步設(shè)置多個計(jì)算子模塊,各個計(jì)算子模塊之間既可以相互獨(dú)立地并行工作;也可以相互配合,共同完成針對待消重文本的消重操作。
其中,當(dāng)各個計(jì)算子模塊之間相互獨(dú)立地并行工作時,可適用于各個計(jì)算子模塊按照一定的順序逐個對存儲模塊中存儲的每一文本進(jìn)行消重處理的場景中。在該場景中,各個計(jì)算子模塊每隔預(yù)設(shè)時間間隔自發(fā)地針對存儲模塊中存儲的每一文本進(jìn)行消重處理,具體時間間隔可以根據(jù)新聞文件的產(chǎn)生周期設(shè)置,目的在于盡可能及時地對新增的新聞文件進(jìn)行消重。相應(yīng)地,每個計(jì)算子模塊還可以針對已進(jìn)行消重處理的文本設(shè)置已處理標(biāo)簽,以防止其他計(jì)算子模塊對其重復(fù)處理,從而造成資源的浪費(fèi)。由于各個計(jì)算子模塊相互并行工作,因此,每個計(jì)算子模塊相互獨(dú)立地根據(jù)待消重文本獲取對應(yīng)的待比對文本,并將全部待比對文本存儲到本地以進(jìn)行消重處理。
當(dāng)各個計(jì)算子模塊相互配合,共同完成針對待消重文本的消重操作時,可適用于消重模塊針對接收到的客戶端指令進(jìn)行消重處理。比如,用戶在客戶端側(cè)針對文本1發(fā)送第一消重請求,則在接收到上述第一消重請求之后,將文本1作為待消重文本,僅針對文本1及其對應(yīng)的待比對文本進(jìn)行消重。相應(yīng)地,由于實(shí)際情況中的文本量級很大,文本1對應(yīng)的待比對文本的數(shù)量可能動輒成百上千,因此,為了提高第一消重請求的處理效率,縮短用戶的等待時間,每個計(jì)算子模塊具體用于:每當(dāng)獲取到待消重文本以及待比對文本后,首先將待消重文本以及待比對文本分發(fā)給其他計(jì)算子模塊,然后接收其他計(jì)算子模塊針對分發(fā)到的文本進(jìn)行局部消重處理后返回的局部消重處理結(jié)果,根據(jù)局部消重處理結(jié)果確定最終消重處理結(jié)果。例如,第一計(jì)算子模塊負(fù)責(zé)處理第一消重請求,則當(dāng)?shù)谝挥?jì)算子模塊獲取到待消重文本(即文本1)以及待比對文本(即包括文本1在內(nèi)的、包含文本1中的關(guān)鍵詞的全部文本)后,根據(jù)待比對文本的總量將待比對文本分發(fā)給其他的計(jì)算子模塊處理。具體地,計(jì)算子模塊將待消重文本以及待比對文本分發(fā)給其他計(jì)算子模塊的處理過程可以為:每個計(jì)算子模塊在獲取到待消重文本以及待比對文本之后,將待消重文本以及待比對文本的總量與計(jì)算子模塊的總量做商取整,并將做商取整的結(jié)果作為分發(fā)給其他計(jì)算子模塊的待消重文本以及待比對文本數(shù)量,然后對應(yīng)數(shù)量的待消重文本以及待比對文本分發(fā)給其他計(jì)算子模塊;或者,也可以設(shè)置一個預(yù)設(shè)閾值,每個計(jì)算子模塊在獲取到待消重文本以及待比對文本之后,首先將待消重文本以及待比對文本的數(shù)量與上述預(yù)設(shè)閾值進(jìn)行比較,若待消重文本以及待比對文本的數(shù)量大于上述預(yù)設(shè)閾值,則計(jì)算子模塊進(jìn)一步將超出預(yù)設(shè)閾值數(shù)量的待消重文本以及待比對文本分發(fā)給其他的計(jì)算子模塊,等等。具體實(shí)施中,上述分發(fā)數(shù)量的確定方式可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。設(shè)置多個計(jì)算子模塊的目的在于:提高針對待消重文本以及待比對文本的消重處理效率,使針對待消重文本以及待比對文本的消重過程可以為相互并行處理,并進(jìn)一步實(shí)現(xiàn)減少網(wǎng)絡(luò)開銷,提高數(shù)據(jù)處理的實(shí)時性,減小處理過程的時延等有益效果。
可選地,計(jì)算子模塊在進(jìn)行消重處理時,還可以進(jìn)一步對確定為重復(fù)的文本進(jìn)行標(biāo)記,并根據(jù)上述標(biāo)記的結(jié)果對待消重文本進(jìn)行處理。其中,在確定消重結(jié)果時,若計(jì)算子模塊并未向其他計(jì)算子模塊分發(fā)待消重文本以及待比對文本,則該計(jì)算子模塊將自身的消重結(jié)果確定為最終的消重處理結(jié)果;若計(jì)算子模塊向其他計(jì)算子模塊分發(fā)待消重文本以及待比對文本,則該計(jì)算子模塊接收其他計(jì)算子模塊針對分發(fā)到的文本進(jìn)行局部消重處理后返回的局部消重處理結(jié)果,并將該局部消重處理結(jié)果與該計(jì)算子模中的局部消重處理結(jié)果進(jìn)行加和,將加和結(jié)果確定為最終的消重處理結(jié)果。
可選地,在本步驟中,還可以進(jìn)一步為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽。并且,上述重復(fù)標(biāo)簽中還可以進(jìn)一步包含根據(jù)文本的文本特征信息為確定為重復(fù)的文本計(jì)算的對應(yīng)分值。其中,文本特征信息可以是該文本的發(fā)布時間、發(fā)布源頭、篇幅長短、重要性等相關(guān)信息。具體計(jì)算時,各個文本特征對應(yīng)的分值可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置,本發(fā)明對此不作限制。另外,針對新聞進(jìn)行消重的最終目的在于:防止前端用戶在同一屏內(nèi)瀏覽到相同的新聞,因此,在對新聞進(jìn)行展示之前,若同一屏內(nèi)展現(xiàn)的新聞中包含多個帶有重復(fù)標(biāo)簽的新聞,則可以根據(jù)標(biāo)簽中包含的分值確定最終展現(xiàn)的新聞,例如,僅展現(xiàn)分值最高的新聞,而屏蔽其他分值較低的重復(fù)性新聞,從而提升用戶體驗(yàn)。
由此可見,在本發(fā)明提供的文本消重方法中,通過預(yù)先提取關(guān)鍵詞并建立倒排索引表的方式,能夠根據(jù)關(guān)鍵詞快速確定與待消重文本相關(guān)性較大的待比對文本,進(jìn)而僅針對確定出的待比對文本進(jìn)行消重,而無需考慮其他相關(guān)性較小的無關(guān)文本,因此,通過準(zhǔn)確限定消重范圍的方式能夠有效提高文本消重的準(zhǔn)確性及處理效率,優(yōu)化文本消重的處理過程,避免了針對全部文本逐個比對的繁瑣操作。并且,由于分布式鎖僅針對特定鍵值的數(shù)據(jù)進(jìn)行加鎖,而對于其他鍵值的數(shù)據(jù)則不予加鎖,即:僅針對包含相同關(guān)鍵詞的待消重文本以及待比對文本進(jìn)行加鎖,因此,一方面,針對特定文本的消重過程不會影響其他無關(guān)文本的正常訪問;另一方面,還能夠同時針對多組文本進(jìn)行并行化消重處理,進(jìn)而通過并發(fā)方式進(jìn)一步提高了處理效率。同時,本實(shí)施中的方案還進(jìn)一步為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽,并在重復(fù)標(biāo)簽中加入根據(jù)文本特征計(jì)算的對應(yīng)分值,從而能夠有效防止前端用戶在同一屏內(nèi)瀏覽到相同的重復(fù)文本,提升了用戶體驗(yàn)。
實(shí)施例四
本申請實(shí)施例四提供了一種非易失性計(jì)算機(jī)存儲介質(zhì),所述計(jì)算機(jī)存儲介質(zhì)存儲有至少一可執(zhí)行指令,該計(jì)算機(jī)可執(zhí)行指令可執(zhí)行上述任意方法實(shí)施例中的一種文本消重方法。
實(shí)施例五
圖4示出了根據(jù)本發(fā)明實(shí)施例五的一種服務(wù)器的結(jié)構(gòu)示意圖,本發(fā)明具體實(shí)施例并不對服務(wù)器的具體實(shí)現(xiàn)做限定。
如圖4所示,該服務(wù)器可以包括:處理器(processor)402、通信接口(communicationsinterface)404、存儲器(memory)406、以及通信總線408。
其中:
處理器402、通信接口404、以及存儲器406通過通信總線408完成相互間的通信。
通信接口404,用于與其它設(shè)備比如客戶端或其它服務(wù)器等的網(wǎng)元通信。
處理器402,用于執(zhí)行程序410,具體可以執(zhí)行上述文本消重方法實(shí)施例中的相關(guān)步驟。
具體地,程序410可以包括程序代碼,該程序代碼包括計(jì)算機(jī)操作指令。
處理器402可能是中央處理器cpu,或者是特定集成電路asic(applicationspecificintegratedcircuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路。服務(wù)器包括的一個或多個處理器,可以是同一類型的處理器,如一個或多個cpu;也可以是不同類型的處理器,如一個或多個cpu以及一個或多個asic。
存儲器606,用于存放程序410。存儲器406可能包含高速ram存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。
程序410具體可以用于使得處理器402執(zhí)行以下操作:
對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞;
對預(yù)處理后的各個文本進(jìn)行存儲,并設(shè)置用于查詢各個文本的倒排索引表;其中,所述倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系;
獲取至少一個待消重文本,確定所述待消重文本對應(yīng)的關(guān)鍵詞,通過所述倒排索引表確定包含所述待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對所述待消重文本以及所述待比對文本進(jìn)行消重處理;
其中,在消重處理前,通過分布式鎖對存儲的所述待消重文本以及所述待比對文本進(jìn)行加鎖操作;并在消重處理后釋放所述分布式鎖。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個或多個設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(dsp)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的文本消重系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了:a1.一種文本消重系統(tǒng),包括:
預(yù)處理模塊,用于對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞;
存儲模塊,用于存儲所述預(yù)處理模塊預(yù)處理后的各個文本,并設(shè)置用于查詢各個文本的倒排索引表;其中,所述倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系;
消重模塊,用于從所述存儲模塊中獲取至少一個待消重文本,確定所述待消重文本對應(yīng)的關(guān)鍵詞,通過所述倒排索引表確定包含所述待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對所述待消重文本以及所述待比對文本進(jìn)行消重處理;
分布式鎖模塊,用于在所述消重模塊進(jìn)行消重處理前,通過分布式鎖對所述存儲模塊中存儲的所述待消重文本以及所述待比對文本進(jìn)行加鎖操作;并在所述消重模塊進(jìn)行消重處理后釋放所述分布式鎖。
a2.根據(jù)a1所述的系統(tǒng),其中,所述存儲模塊具體為多個分布式存儲模塊,用于通過一致性哈希算法對預(yù)處理后的各個文本進(jìn)行分布式存儲。
a3.根據(jù)a1或a2所述的系統(tǒng),其中,所述消重模塊進(jìn)一步包括多個計(jì)算子模塊,其中,每個計(jì)算子模塊具體用于:
每當(dāng)獲取到所述待消重文本以及所述待比對文本后,將所述待消重文本以及所述待比對文本分發(fā)給其他計(jì)算子模塊;
接收其他計(jì)算子模塊針對分發(fā)到的文本進(jìn)行局部消重處理后返回的局部消重處理結(jié)果,根據(jù)所述局部消重處理結(jié)果確定最終消重處理結(jié)果。
a4.根據(jù)a1-a3任一所述的系統(tǒng),其中,所述消重模塊進(jìn)一步用于:為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽。
a5.根據(jù)a4所述的系統(tǒng),其中,所述消重模塊進(jìn)一步用于:根據(jù)文本的文本特征信息為確定為重復(fù)的文本計(jì)算分值,則所述重復(fù)標(biāo)簽中進(jìn)一步包含所述分值。
a6.根據(jù)a1-a5任一所述的系統(tǒng),其中,所述預(yù)處理模塊具體用于:通過預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型確定各個文本對應(yīng)的關(guān)鍵詞。
a7.根據(jù)a1-a6任一所述的系統(tǒng),其中,所述預(yù)處理模塊的數(shù)量為多個,且各個預(yù)處理模塊相互并行處理。
a8.根據(jù)a1所述的系統(tǒng),其中,所述文本為新聞文本。
本發(fā)明還公開了b9.一種文本消重方法,包括:
對待消重的各個文本進(jìn)行預(yù)處理,根據(jù)預(yù)處理結(jié)果確定各個文本對應(yīng)的關(guān)鍵詞;
對預(yù)處理后的各個文本進(jìn)行存儲,并設(shè)置用于查詢各個文本的倒排索引表;其中,所述倒排索引表用于存儲各個關(guān)鍵詞及其對應(yīng)的文本之間的映射關(guān)系;
獲取至少一個待消重文本,確定所述待消重文本對應(yīng)的關(guān)鍵詞,通過所述倒排索引表確定包含所述待消重文本對應(yīng)的關(guān)鍵詞的至少一個待比對文本,針對所述待消重文本以及所述待比對文本進(jìn)行消重處理;
其中,所述方法進(jìn)一步包括:在消重處理前,通過分布式鎖對存儲的所述待消重文本以及所述待比對文本進(jìn)行加鎖操作;并在消重處理后釋放所述分布式鎖。
b10.根據(jù)b9所述的方法,其中,所述對預(yù)處理后的各個文本進(jìn)行存儲的步驟具體包括:通過一致性哈希算法對預(yù)處理后的各個文本進(jìn)行分布式存儲。
b11.根據(jù)b9或b10所述的方法,其中,所述針對所述待消重文本以及所述待比對文本進(jìn)行消重處理的步驟具體包括:
每當(dāng)獲取到所述待消重文本以及所述待比對文本后,將所述待消重文本以及所述待比對文本分發(fā)給其他計(jì)算子模塊;
接收其他計(jì)算子模塊針對分發(fā)到的文本進(jìn)行局部消重處理后返回的局部消重處理結(jié)果,根據(jù)所述局部消重處理結(jié)果確定最終消重處理結(jié)果。
b12.根據(jù)b9-b11任一所述的方法,其中,所述針對所述待消重文本以及所述待比對文本進(jìn)行消重處理的步驟之后,進(jìn)一步包括:為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽。
b13.根據(jù)b12所述的方法,其中,所述為確定為重復(fù)的文本設(shè)置重復(fù)標(biāo)簽的步驟具體包括:根據(jù)文本的文本特征信息為確定為重復(fù)的文本計(jì)算分值,則所述重復(fù)標(biāo)簽中進(jìn)一步包含所述分值。
b14.根據(jù)b9-b13任一所述的方法,其中,所述對待消重的各個文本進(jìn)行預(yù)處理的步驟具體包括:通過預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)模型確定各個文本對應(yīng)的關(guān)鍵詞。
b15.根據(jù)b9-b14任一所述的方法,其中,所述文本為新聞文本。
本發(fā)明還公開了:c16.一種服務(wù)器,包括:處理器、存儲器、通信接口和通信總線,所述處理器、所述存儲器和所述通信接口通過所述通信總線完成相互間的通信;
所述存儲器用于存放至少一可執(zhí)行指令,所述可執(zhí)行指令使所述處理器執(zhí)行如b9-b15中任一項(xiàng)所述的文本消重方法對應(yīng)的操作。
本發(fā)明還公開了:d17.一種計(jì)算機(jī)存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一可執(zhí)行指令,所述可執(zhí)行指令使處理器執(zhí)行如b9-b15中任一項(xiàng)所述的文本消重方法對應(yīng)的操作。