本發(fā)明涉及信息檢索領(lǐng)域,尤其涉及一種基于文檔集生成層次聚類(lèi)樹(shù)的方法及裝置。
背景技術(shù):
1、大語(yǔ)言模型(large?language?model,llm)在許多領(lǐng)域和任務(wù)上展現(xiàn)出了強(qiáng)大的能力。隨著大語(yǔ)言模型規(guī)模的不斷增大,它可以作為獨(dú)立有效的知識(shí)存儲(chǔ)庫(kù),將事實(shí)編碼到其參數(shù)中。然而,即使是大語(yǔ)言模型,也無(wú)法包含足夠的特定領(lǐng)域的知識(shí)來(lái)應(yīng)對(duì)特定的任務(wù)。與此同時(shí),世界是在不斷變化的,每天產(chǎn)生的新知識(shí)可能會(huì)使大語(yǔ)言模型學(xué)到的原有的事實(shí)失效,并且由于成本和效率的問(wèn)題,開(kāi)發(fā)者無(wú)法做到對(duì)大語(yǔ)言模型進(jìn)行實(shí)時(shí)更新。
2、目前,業(yè)界解決上述問(wèn)題的一個(gè)主流的方法是檢索增強(qiáng)生成(retrieval-augmented?generation,rag)。rag結(jié)合了信息檢索和自然語(yǔ)言生成,為大語(yǔ)言模型提供外部知識(shí)庫(kù)作為其生成答案時(shí)的依據(jù)。在rag中,會(huì)先根據(jù)要輸入大語(yǔ)言模型的提示詞(prompt)從知識(shí)庫(kù)中檢索,然后將檢索結(jié)果和提示詞一并輸入到大語(yǔ)言模型中,令其生成答案。
3、然而,當(dāng)外部知識(shí)庫(kù)中的文檔數(shù)量不斷增加,并且文檔涉及到的領(lǐng)域越來(lái)越多時(shí),現(xiàn)有的檢索方法可能難以高效地為知識(shí)庫(kù)建立索引,并且難以快速且準(zhǔn)確地檢索到與提示詞最為相關(guān)的文檔,進(jìn)而降低了大語(yǔ)言模型生成答案的準(zhǔn)確性。因此,需要一種方法,更好地對(duì)文檔集合進(jìn)行索引和檢索,以提高rag的效率和準(zhǔn)確性。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明描述了一種基于文檔集生成層次聚類(lèi)樹(shù)的方法及裝置,方法針對(duì)大規(guī)模文檔集構(gòu)建層次聚類(lèi)樹(shù),并基于層次聚類(lèi)樹(shù)進(jìn)行信息檢索,以提高對(duì)于大規(guī)模文檔集檢索的效率和準(zhǔn)確性。
2、第一方面,提供了一種基于文檔集生成層次聚類(lèi)樹(shù)的方法,包括:
3、獲取包含多篇文檔的文檔集,將其中的各個(gè)文檔作為層次聚類(lèi)樹(shù)的葉節(jié)點(diǎn);
4、對(duì)所述文檔集中的文檔進(jìn)行聚類(lèi)操作,得到多個(gè)文檔聚類(lèi)簇;
5、對(duì)各個(gè)文檔聚類(lèi)簇中任意的目標(biāo)聚類(lèi)簇進(jìn)行關(guān)鍵詞提取,得到由若干關(guān)鍵詞組成的目標(biāo)關(guān)鍵詞節(jié)點(diǎn),作為所述目標(biāo)聚類(lèi)簇中各個(gè)文檔對(duì)應(yīng)的葉節(jié)點(diǎn)的父節(jié)點(diǎn);
6、對(duì)各個(gè)關(guān)鍵詞節(jié)點(diǎn)進(jìn)行多輪目標(biāo)操作,直至無(wú)法進(jìn)行目標(biāo)操作中的聚類(lèi)操作;其中,任意一輪目標(biāo)操作包括:對(duì)各個(gè)關(guān)鍵詞節(jié)點(diǎn)進(jìn)行聚類(lèi)操作,得到多個(gè)第一聚類(lèi)簇;對(duì)各個(gè)第一聚類(lèi)簇中任意的第一目標(biāo)聚類(lèi)簇進(jìn)行關(guān)鍵詞提取,得到由若干關(guān)鍵詞組成的第一節(jié)點(diǎn),作為所述第一目標(biāo)聚類(lèi)簇中各個(gè)關(guān)鍵詞節(jié)點(diǎn)的父節(jié)點(diǎn);將多個(gè)第一節(jié)點(diǎn)作為下一輪目標(biāo)操作輸入的關(guān)鍵詞節(jié)點(diǎn);
7、將所述層次聚類(lèi)樹(shù)的根節(jié)點(diǎn)作為最后一輪目標(biāo)操作得到的若干第一節(jié)點(diǎn)的父節(jié)點(diǎn)。
8、在一種可能的實(shí)施方式中,還包括:
9、將用戶輸入的查詢文本在所述層次聚類(lèi)樹(shù)中進(jìn)行查詢,得到多個(gè)查詢結(jié)果節(jié)點(diǎn);
10、將所述多個(gè)查詢結(jié)果節(jié)點(diǎn)中的內(nèi)容,確定為所述查詢文本對(duì)應(yīng)的查詢結(jié)果。
11、在一種可能的實(shí)施方式中,所述查詢文本為有待輸入大語(yǔ)言模型的提示詞;所述方法還包括:
12、將所述查詢結(jié)果與所述提示詞共同輸入到大語(yǔ)言模型中,得到大語(yǔ)言模型針對(duì)于提示詞的回答文本。
13、在一種可能的實(shí)施方式中,還包括:
14、接收向所述文檔集中添加第一文檔的指示,確定所述第一文檔所歸屬的第一文檔聚類(lèi)簇,更新所述第一文檔聚類(lèi)簇;
15、生成所述第一文檔對(duì)應(yīng)的第一葉節(jié)點(diǎn),將所述第一文檔聚類(lèi)簇所對(duì)應(yīng)的第一關(guān)鍵詞節(jié)點(diǎn)作為所述第一葉節(jié)點(diǎn)的父節(jié)點(diǎn),將所述第一葉節(jié)點(diǎn)添加到所述層次聚類(lèi)樹(shù)中;
16、更新所述第一葉節(jié)點(diǎn)的各個(gè)祖先節(jié)點(diǎn)中的內(nèi)容。
17、在一種可能的實(shí)施方式中,還包括:
18、當(dāng)任意的文檔聚類(lèi)簇中文檔的數(shù)量超過(guò)預(yù)設(shè)的第一閾值時(shí),更新所述層次聚類(lèi)樹(shù)的樹(shù)結(jié)構(gòu)。
19、在一種可能的實(shí)施方式中,還包括:
20、接收對(duì)所述文檔集中第二文檔的刪除指示,確定所述第二文檔所歸屬的第二文檔聚類(lèi)簇,更新所述第二文檔聚類(lèi)簇;
21、從所述層次聚類(lèi)樹(shù)中刪除所述第二文檔對(duì)應(yīng)的第二葉節(jié)點(diǎn),并更新所述第二葉節(jié)點(diǎn)的各個(gè)祖先節(jié)點(diǎn)中的內(nèi)容。
22、在一種可能的實(shí)施方式中,還包括:
23、當(dāng)任意的文檔聚類(lèi)簇中文檔的數(shù)量少于預(yù)設(shè)的第二閾值時(shí),更新所述層次聚類(lèi)樹(shù)的樹(shù)結(jié)構(gòu)。
24、在一種可能的實(shí)施方式中,將用戶輸入的查詢文本在所述層次聚類(lèi)樹(shù)中進(jìn)行查詢,得到多個(gè)查詢結(jié)果節(jié)點(diǎn),包括:
25、從所述層次聚類(lèi)樹(shù)的根節(jié)點(diǎn)開(kāi)始進(jìn)行多輪目標(biāo)匹配,直至到達(dá)所述層次聚類(lèi)樹(shù)的葉節(jié)點(diǎn)層;其中,任意一輪目標(biāo)匹配包括:確定當(dāng)前輪次輸入的各個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)與所述查詢文本之間的相似度,選擇相似度排名靠前的k個(gè)節(jié)點(diǎn)作為當(dāng)前輪次的匹配結(jié)果節(jié)點(diǎn),并作為下一輪次的輸入節(jié)點(diǎn);
26、將各個(gè)輪次目標(biāo)匹配的匹配結(jié)果節(jié)點(diǎn),確定為查詢結(jié)果節(jié)點(diǎn)。
27、在一種可能的實(shí)施方式中,將用戶輸入的查詢文本在所述層次聚類(lèi)樹(shù)中進(jìn)行查詢,得到多個(gè)查詢結(jié)果節(jié)點(diǎn),包括:
28、將所述層次聚類(lèi)樹(shù)中的各個(gè)節(jié)點(diǎn)分別與所述查詢文本進(jìn)行相似度匹配,將相似度排名靠前的m個(gè)節(jié)點(diǎn)確定為查詢結(jié)果節(jié)點(diǎn)。
29、第二方面,提供了一種基于文檔集生成層次聚類(lèi)樹(shù)的裝置,包括:
30、獲取單元,配置為,獲取包含多篇文檔的文檔集,將其中的各個(gè)文檔作為層次聚類(lèi)樹(shù)的葉節(jié)點(diǎn);
31、第一聚類(lèi)單元,配置為,對(duì)所述文檔集中的文檔進(jìn)行聚類(lèi)操作,得到多個(gè)文檔聚類(lèi)簇;
32、第一關(guān)鍵詞提取單元,配置為,對(duì)各個(gè)文檔聚類(lèi)簇中任意的目標(biāo)聚類(lèi)簇進(jìn)行關(guān)鍵詞提取,得到由若干關(guān)鍵詞組成的目標(biāo)關(guān)鍵詞節(jié)點(diǎn),作為所述目標(biāo)聚類(lèi)簇中各個(gè)文檔對(duì)應(yīng)的葉節(jié)點(diǎn)的父節(jié)點(diǎn);
33、第一樹(shù)構(gòu)建單元,配置為,對(duì)各個(gè)關(guān)鍵詞節(jié)點(diǎn)進(jìn)行多輪目標(biāo)操作,直至無(wú)法進(jìn)行目標(biāo)操作中的聚類(lèi)操作;其中,任意一輪目標(biāo)操作包括:對(duì)各個(gè)關(guān)鍵詞節(jié)點(diǎn)進(jìn)行聚類(lèi)操作,得到多個(gè)第一聚類(lèi)簇;對(duì)各個(gè)第一聚類(lèi)簇中任意的第一目標(biāo)聚類(lèi)簇進(jìn)行關(guān)鍵詞提取,得到由若干關(guān)鍵詞組成的第一節(jié)點(diǎn),作為所述第一目標(biāo)聚類(lèi)簇中各個(gè)關(guān)鍵詞節(jié)點(diǎn)的父節(jié)點(diǎn);將多個(gè)第一節(jié)點(diǎn)作為下一輪目標(biāo)操作輸入的關(guān)鍵詞節(jié)點(diǎn);
34、第二樹(shù)構(gòu)建單元,配置為,將所述層次聚類(lèi)樹(shù)的根節(jié)點(diǎn)作為最后一輪目標(biāo)操作得到的若干第一節(jié)點(diǎn)的父節(jié)點(diǎn)。
35、第三方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行第一方面的方法。
36、第四方面,提供了一種計(jì)算設(shè)備,包括存儲(chǔ)器和處理器,其中,所述存儲(chǔ)器中存儲(chǔ)有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時(shí),實(shí)現(xiàn)第一方面的方法。
37、本發(fā)明提出的一種基于文檔集生成層次聚類(lèi)樹(shù)的方法及裝置,方法將文檔集中的文檔作為層次聚類(lèi)樹(shù)的葉節(jié)點(diǎn),然后對(duì)文檔集中的文檔進(jìn)行聚類(lèi),以聚類(lèi)為單位提取關(guān)鍵詞,將關(guān)鍵詞節(jié)點(diǎn)作為文檔節(jié)點(diǎn)的父節(jié)點(diǎn)。接下來(lái)對(duì)各個(gè)關(guān)鍵詞節(jié)點(diǎn)重復(fù)進(jìn)行聚類(lèi)-提取關(guān)鍵詞-構(gòu)建父節(jié)點(diǎn)的操作,自下而上逐層地構(gòu)建層次聚類(lèi)樹(shù),直至聚類(lèi)不能再進(jìn)行為止,以此完成構(gòu)建層次聚類(lèi)樹(shù)。在檢索時(shí),可以自上而下地逐級(jí)檢索,得到詳略程度不同的多層次檢索結(jié)果。也可以將層次聚類(lèi)樹(shù)拍平成一維結(jié)構(gòu)后進(jìn)行單次的檢索,以快速得到檢索結(jié)果。