趙 陽(yáng),吳廖丹
(江南計(jì)算技術(shù)研究所,江蘇 無(wú)錫 214083)
一種自底向上的最大頻繁項(xiàng)集挖掘方法
趙 陽(yáng),吳廖丹
(江南計(jì)算技術(shù)研究所,江蘇 無(wú)錫 214083)
頻繁項(xiàng)集挖掘是關(guān)聯(lián)規(guī)則挖掘中最關(guān)鍵的步驟。最大頻繁項(xiàng)集是一種常用的頻繁項(xiàng)集簡(jiǎn)化表示方法。自頂向下的最大頻繁項(xiàng)集挖掘方法在最大頻繁項(xiàng)集維度遠(yuǎn)小于頻繁項(xiàng)數(shù)時(shí)往往會(huì)產(chǎn)生過(guò)多的候選頻繁項(xiàng)集。已有的自底向上的最大頻繁項(xiàng)集挖掘方法或者需多次遍歷數(shù)據(jù)庫(kù),或者需遞歸生成條件頻繁模式樹(shù),而預(yù)測(cè)剪枝策略有進(jìn)一步提升的空間。為此,提出了基于最小非頻繁項(xiàng)集的最大頻繁項(xiàng)集挖掘算法(BNFIA),采用基于DFP-tree的存儲(chǔ)結(jié)構(gòu),通過(guò)自底向上的方式挖掘出最小非頻繁項(xiàng)集,利用最小非頻繁項(xiàng)集的性質(zhì)進(jìn)行預(yù)測(cè)剪枝,以縮小搜索空間,再通過(guò)邊界頻繁項(xiàng)集快速挖掘出最大頻繁項(xiàng)集。驗(yàn)證實(shí)驗(yàn)結(jié)果表明,提出算法的性能較同類算法有較為明顯的提升。
最大頻繁項(xiàng)集;關(guān)聯(lián)規(guī)則挖掘;FP-tree;最小非頻繁項(xiàng)集;邊界頻繁項(xiàng)集
關(guān)聯(lián)規(guī)則挖掘的概念由Agrawal等于1993年提出[1-3],用于發(fā)現(xiàn)大量數(shù)據(jù)中項(xiàng)目或項(xiàng)目集之間有趣的關(guān)聯(lián)或相關(guān)關(guān)系,同時(shí)提出了經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法—Apriori。此后眾多學(xué)者對(duì)Apriori算法進(jìn)行了改進(jìn)。但Apriori系列算法需要多次掃描數(shù)據(jù)集的固有缺陷,使其在處理大型數(shù)據(jù)集時(shí)面臨無(wú)法容忍的時(shí)間開(kāi)銷。針對(duì)這一問(wèn)題,Han等[4]提出用FP-tree對(duì)數(shù)據(jù)進(jìn)行壓縮存儲(chǔ)以及基于FP-tree的頻繁模式挖掘方法—FP-growth。該算法只需掃描數(shù)據(jù)集兩次,避免了Apriori算法需多次掃描數(shù)據(jù)集的缺陷。
在關(guān)聯(lián)規(guī)則挖掘過(guò)程中,頻繁項(xiàng)集的挖掘是算法主要的開(kāi)銷,而最大頻繁項(xiàng)集涵蓋了所有的頻繁項(xiàng)集,因此最大頻繁項(xiàng)集挖掘的優(yōu)化對(duì)于提升關(guān)聯(lián)規(guī)則挖掘算法的整體效率至關(guān)重要。已有的最大頻繁項(xiàng)集挖掘算法包括:Max-Miner[5]、Pincer-Search[6]、FP-Max[7]、DMFI[8]、DMFIA[9]等。Max-Miner突破了傳統(tǒng)的自底向上的挖掘方法,盡早地進(jìn)行了剪枝,而Pincer-Search則采用雙向搜索策略,這兩種算法在最大頻繁項(xiàng)集挖掘過(guò)程中都產(chǎn)生了過(guò)多的候選項(xiàng)集,并且需多次掃描數(shù)據(jù)集;FP-Max采用FP-tree的數(shù)據(jù)壓縮表示,避免了多次掃描數(shù)據(jù)集,但需遞歸地生成條件FP-tree,影響了算法的效率;DMFI將自底向上和自頂向下的搜索策略進(jìn)行有效合并,在海量數(shù)據(jù)庫(kù)中發(fā)現(xiàn)最大頻繁項(xiàng)集和僅需要發(fā)現(xiàn)最大頻繁項(xiàng)目集的數(shù)據(jù)挖掘應(yīng)用中效果顯著,但該算法仍需多次重復(fù)掃描數(shù)據(jù)庫(kù),計(jì)算項(xiàng)目集的支持?jǐn)?shù);DMFIA采用FP-tree的數(shù)據(jù)結(jié)構(gòu)及自頂向下的搜索策略,避免了遞歸的生成條件FP-tree,但當(dāng)最大頻繁項(xiàng)集的維度相比頻繁項(xiàng)的數(shù)目較小時(shí),將產(chǎn)生大量的候選頻繁項(xiàng)集,而在大量數(shù)據(jù)集的實(shí)際應(yīng)用中,最大頻繁項(xiàng)集的維度往往遠(yuǎn)小于頻繁項(xiàng)的數(shù)目[10]。文獻(xiàn)[11]提出的基于降維的最大頻繁項(xiàng)集挖掘算法(BDRFI),采用數(shù)字頻繁模式樹(shù)對(duì)FP-tree進(jìn)行了一定的優(yōu)化,并從提高FP-tree的生成速度、減少超集檢測(cè)的次數(shù)等方面進(jìn)行了改進(jìn),性能相比DFMIA有了較大提高,但仍然存在自頂向下算法的固有缺陷。文獻(xiàn)[12]通過(guò)獲取低維的非頻繁項(xiàng)集的信息對(duì)較高維度的最大候選頻繁項(xiàng)集進(jìn)行快速降維,但是應(yīng)該對(duì)于哪些搜索層次計(jì)算非頻繁項(xiàng)集,以及對(duì)于每一層計(jì)算哪些非頻繁項(xiàng)集,仍需進(jìn)一步研究確定。而顯然計(jì)算并記錄所有的非頻繁項(xiàng)集是不可行的,浪費(fèi)了存儲(chǔ)空間,而且增加了超集檢測(cè)的開(kāi)銷。
以上問(wèn)題表明,針對(duì)最大頻繁項(xiàng)集維度較小的數(shù)據(jù)集,提升算法性能的關(guān)鍵在于:避免自頂向下的搜索所產(chǎn)生的大量候選項(xiàng)集;選擇盡可能少的非頻繁項(xiàng)集進(jìn)行預(yù)測(cè)剪枝。對(duì)此,提出了一種基于最小非頻繁項(xiàng)集的最大頻繁項(xiàng)集挖掘算法(BNFIA)。該算法通過(guò)自底向上的方法挖掘最小非頻繁項(xiàng)集,在該過(guò)程中用子集檢驗(yàn)的方法進(jìn)行預(yù)測(cè)剪枝,同時(shí)記錄中間結(jié)果的邊界頻繁項(xiàng)集,并應(yīng)用邊界頻繁項(xiàng)集快速生成最大頻繁項(xiàng)集。
設(shè)I={i1,i2,…,im}是m個(gè)不同項(xiàng)目的集合。給定事務(wù)數(shù)據(jù)庫(kù)D,對(duì)于項(xiàng)目集X?I,X在D中的支持?jǐn)?shù)是指D中包含X的事務(wù)數(shù),記為X.countD;X在D中的支持度是指D中包含X事務(wù)的百分比,記為X.supD。
關(guān)于頻繁項(xiàng)集、非頻繁項(xiàng)集、最大頻繁項(xiàng)集的定義參見(jiàn)文獻(xiàn)[13]。
定義1:對(duì)于項(xiàng)目集X?I,如果X.supD
定義2:對(duì)于k-項(xiàng)集X,其所有(k-1)-項(xiàng)子集稱為X的直接子集,其所有(k+1)-項(xiàng)超集稱為X的直接超集。
性質(zhì)1:任何一個(gè)非頻繁項(xiàng)集至少存在一個(gè)最小非頻繁項(xiàng)集的子集。
證明:對(duì)于任何一個(gè)非頻繁k-項(xiàng)集Xk:
(1)若其所有直接子集Xk-1都是頻繁項(xiàng)集,則Xk為最小非頻繁項(xiàng)集;
(2)令k=k-1,對(duì)于所有非頻繁項(xiàng)集Xk-1,重復(fù)步驟(1)。
由于1-項(xiàng)集是頻繁的,因此一定會(huì)找到一個(gè)所有直接子集為頻繁項(xiàng)集的最小非頻繁項(xiàng)集為X的子集,證畢。
定義3:對(duì)于項(xiàng)目集X?I,如果X.supD≥s,并且存在Y是X的直接超集且Y.supD
性質(zhì)2:最大頻繁項(xiàng)集一定是邊界頻繁項(xiàng)集。
證明:由最大頻繁項(xiàng)集的定義可知,其所有超集都是非頻繁的,因此最大頻繁項(xiàng)集一定是邊界頻繁項(xiàng)集。
性質(zhì)3:若X為頻繁項(xiàng)集,則X的直接超集有可能是最小非頻繁項(xiàng)目集。
性質(zhì)4:如果X是最大頻繁項(xiàng)集,則X的任何真子集都不是最大頻繁項(xiàng)集。
定理1:設(shè)降序頻繁項(xiàng)頭表為{1,2,…,k},若存在t-項(xiàng)頻繁項(xiàng)集X={1,2,…,t},則以t為后綴生成的不包含X的所有項(xiàng)集必定是非最大頻繁項(xiàng)集[11,14]。
頻繁模式樹(shù)(FP-tree)是一種樹(shù)的結(jié)構(gòu),它的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)項(xiàng),事務(wù)數(shù)據(jù)庫(kù)中的某條事務(wù)在該樹(shù)中的表現(xiàn)為從根到某個(gè)子孫節(jié)點(diǎn)的路徑集合。由于某些路徑會(huì)有重疊,所以FP-tree可以通過(guò)共享這些重疊的項(xiàng)來(lái)壓縮保存數(shù)據(jù)。在FP-tree中,每個(gè)節(jié)點(diǎn)由4個(gè)域組成[4]:節(jié)點(diǎn)名稱(node-name)、節(jié)點(diǎn)計(jì)數(shù)(node-count)、節(jié)點(diǎn)鏈(node-link)(用于指向樹(shù)中具有相同node-name的下一個(gè)節(jié)點(diǎn))及父節(jié)點(diǎn)指針(node-parent)。同時(shí)為方便樹(shù)的遍歷,F(xiàn)P-tree還包含一個(gè)頻繁項(xiàng)頭表Htable,它由兩個(gè)域組成:項(xiàng)目名稱(item-name)、指向FP-tree中具有相同item-name的首節(jié)點(diǎn)的指針(head of node-link)。
數(shù)字頻繁模式樹(shù)(Digital Frequent Patten tree,DFP-tree)是對(duì)傳統(tǒng)FP-tree的一種改進(jìn),其核心思想是“字符串或漢字串的匹配速度要比數(shù)字集合慢”,以此來(lái)達(dá)到提高超級(jí)檢驗(yàn)速度的目的。其改進(jìn)的主要方法是用頻繁項(xiàng)按照支持度降序排列的序號(hào)來(lái)代替頻繁項(xiàng)本身,關(guān)于DFP-tree的構(gòu)建方法和詳細(xì)介紹參見(jiàn)文獻(xiàn)[11]。
DMFIA采用FP-tree的存儲(chǔ)結(jié)構(gòu)和自頂向下的搜索策略。它采用雙重循環(huán)的方式挖掘最大頻繁項(xiàng)集,外層循環(huán)是在MFCS非空狀態(tài)下進(jìn)行,內(nèi)層循環(huán)是由自底向上的方式進(jìn)行處理,若MFCS中項(xiàng)集的支持度大于等于最小支持度閾值,則將該項(xiàng)集加入最大頻繁項(xiàng)集(Maximum Frequent Sets,MFS)。對(duì)非頻繁項(xiàng)集,通過(guò)循環(huán)每次刪除該項(xiàng)集中的一個(gè)項(xiàng)來(lái)產(chǎn)生新的候選項(xiàng)集,對(duì)于新的候選項(xiàng)集,需要判斷在MFS和MFCS中是否存在超集,若不存在則將其加入MFCS中,否則刪除。該算法的主要問(wèn)題是,當(dāng)最大頻繁項(xiàng)集的維度相對(duì)于頻繁項(xiàng)的數(shù)目較小時(shí),會(huì)產(chǎn)生大量的最大頻繁候選項(xiàng)集。
3.1 算法思想
如前文所述,當(dāng)最大頻繁項(xiàng)集的維度相對(duì)于頻繁項(xiàng)的數(shù)目較小時(shí),采用自頂向下的搜索策略往往會(huì)產(chǎn)生大量的候選項(xiàng)集。而已有的自底向上的搜索策略有些需要遞歸產(chǎn)生FP-tree,有些沒(méi)有充分利用非頻繁項(xiàng)集進(jìn)行剪枝,或者用于剪枝的非頻繁項(xiàng)集過(guò)于冗余。而B(niǎo)NFIA采用DFP-tree的數(shù)據(jù)壓縮存儲(chǔ)方式,參考DMFIA自頂向下挖掘最大頻繁項(xiàng)集以及運(yùn)用超集檢測(cè)進(jìn)行剪枝的思想,提出自底向上挖掘最小非頻繁項(xiàng)集并運(yùn)用子集檢測(cè)進(jìn)行剪枝,同時(shí)保存中間結(jié)果中的邊界頻繁項(xiàng)集,最后所有的邊界頻繁項(xiàng)集都包含在中間結(jié)果的邊界頻繁項(xiàng)集與最小非頻繁項(xiàng)集的直接超集之中。
性質(zhì)1說(shuō)明算法使用最簡(jiǎn)化的非頻繁項(xiàng)集進(jìn)行了充分的剪枝,性質(zhì)2保證了算法的正確性,同時(shí)采用了性質(zhì)3包含的剪枝策略。
3.2 算法流程
算法1:最小非頻繁項(xiàng)集挖掘算法。
輸入:D的數(shù)字頻繁模式樹(shù)DFP-tree,頻繁項(xiàng)目頭表Header({1,2,…,k}),最小支持度閾值s;
輸出:D的最小非頻繁項(xiàng)目集(MUFS),邊界頻繁項(xiàng)集(BFS)。
(1)MUFS=?,BUFS=?,BFS={{1,2,…,endItem}}
//{1,2,…,endItem}可能是邊界頻繁項(xiàng)集,將其加入BFS以確保完備性
(2)MFCS={最后一個(gè)項(xiàng)目大于endItem的2項(xiàng)集}
//因?yàn)橐呀?jīng)確定1項(xiàng)集為頻繁項(xiàng)集,故初始化為2項(xiàng)集
(3)While(MFCS!=?) do begin
(4)for(i=k;i>endItem;i--) do begin//定理1
(5)MFCSi={c|c∈MFCS andc的最后一項(xiàng)為i};
(6)MFCS=MFCS-MFCSi;
(7)調(diào)用過(guò)程ComputeCount(DFP-tree,Header,MFCSi);
//計(jì)算項(xiàng)目集在D中的支持?jǐn)?shù)
(8)for allm∈MFCSido begin
(9)ifm.supD (10)MUFS=MUFS∪{m} (11)else (12)ifm.iteritor(1)==1 then (13)BFS=BFS∪{m}//同前,確保結(jié)果的完備性 (14)for(j=m的最后一個(gè)項(xiàng)+1;j≤k;j++) do begin//性質(zhì)3 (15)if {j}+m不是MUFS中某元素的超集 then (16)MFCS=MFCS∪{{j}+m} (17)else (18)BFS=BFS∪{m} (19)end (20)end (21)end (22)end 算法2:最大頻繁項(xiàng)集的計(jì)算。 輸入:D的最小非頻繁項(xiàng)目集,邊界頻繁項(xiàng)集; 輸出:D的最大頻繁項(xiàng)集(MFS)。 (1)MFS=?,CFS=? (2)for(allm為MUFS中元素的直接子集) do begin (3)CFS=CFS∪{m} (4)end (5)CFS=CFS∪BFS (6)對(duì)CFS中集合元素按照集合大小降序排列 (7)for(allm∈CFS) do begin (8)ifm不是MFS中某元素的子集 then (9)MFS=MFS∪m (10)end 算法ComputeCount參見(jiàn)文獻(xiàn)[9]。 3.3 算法實(shí)例 表1所示為一組事務(wù)的原始形式、按照頻繁項(xiàng)降序排列以及數(shù)字化后的結(jié)果。圖1所示為該事務(wù)集對(duì)應(yīng)的DFP-tree。endItem=2,MFCS={{1,3},{2,3},{1,4}{2,4}{3,4},{1,5},{2,5},{3,5},{4,5},{1,6},{2,6},{3,6},{4,6},{5,6}};第1輪循環(huán)后,MFCS=?,MUFS={{1,2,3},{2,4},{3,4},{3,5},{4,5},{2,6},{3,6},{4,6},{5,6}},BFS={{1,2},{1,3},{1,4},{1,5},{1,6},{1,2,5}}。 經(jīng)過(guò)算法2得到MFS={{1,3},{1,4},{1,6},{1,2,5}}。 表1 事務(wù)數(shù)據(jù)集實(shí)例 圖1 事務(wù)數(shù)據(jù)集實(shí)例的數(shù)字頻繁模式樹(shù) 實(shí)驗(yàn)中在8 G RAM,Intel Core i5-2430M CPU 2.40 GHz,Windows7操作系統(tǒng)上用Java實(shí)現(xiàn)了DMFIA、FPMax、BNFIA算法。圖2采用的測(cè)試數(shù)據(jù)集為mushroom,包含8 124條記錄,記錄平均長(zhǎng)度為23,共有115個(gè)蘑菇屬性。 圖2 mushroom數(shù)據(jù)集上算法的執(zhí)行時(shí)間對(duì)比 為了更好地驗(yàn)證算法在頻繁項(xiàng)數(shù)目較大,最大頻繁項(xiàng)維度較小的數(shù)據(jù)集下的挖掘效率,實(shí)驗(yàn)中隨機(jī)生成了具有200個(gè)屬性、事務(wù)平均長(zhǎng)度為15的10 000條事務(wù)組成的事務(wù)集,在該事務(wù)集上采用上述三種算法進(jìn)行了最大頻繁項(xiàng)集挖掘的對(duì)比實(shí)驗(yàn),結(jié)果如圖3所示。 從以上兩種數(shù)據(jù)集的挖掘中可以看出,當(dāng)頻繁項(xiàng)數(shù)目較多而最大頻繁項(xiàng)集維度較小時(shí),BNFIA的運(yùn)行時(shí)間明顯少于DMFIA和FpMax,并且在支持度較高的情況下執(zhí)行效率的差別仍然明顯。這是因?yàn)殡S著最小支持度的提高,最大頻繁項(xiàng)集的維度降低,BNFIA算法采用自底向上的搜索策略以及基于最小非頻繁項(xiàng)集的剪枝策略,相比自頂向下搜索的DMFIA,產(chǎn)生了更少的頻繁項(xiàng)集,而與FpMax相比則不需要遞歸地生成條件頻繁模式樹(shù)。 圖3 隨機(jī)生成的數(shù)據(jù)集上算法的執(zhí)行時(shí)間對(duì)比 針對(duì)最大頻繁項(xiàng)集維度遠(yuǎn)小于頻繁項(xiàng)數(shù)量的數(shù)據(jù)的特點(diǎn),提出了最大頻繁項(xiàng)集挖掘算法—BNFIA。該算法采用DFP-tree的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),避免多次掃描數(shù)據(jù)庫(kù);采用自底向上的搜索策略,利用最小非頻繁項(xiàng)集作為非頻繁項(xiàng)集信息的最簡(jiǎn)化表示,用于搜索剪枝,避免了自頂向下的搜索策略在最大頻繁項(xiàng)集維度較小而頻繁項(xiàng)較多時(shí)會(huì)產(chǎn)生過(guò)多的候選項(xiàng)集的缺陷;同時(shí)通過(guò)邊界頻繁項(xiàng)集迅速確定最大頻繁項(xiàng)集,而不必記錄所有的頻繁項(xiàng)集,減少了候選項(xiàng)集的數(shù)量;與FpMax算法相比該算法無(wú)需遞歸地生成條件頻繁模式樹(shù),因此減少了產(chǎn)生的時(shí)間開(kāi)銷。 [1] Imielinski T,Swami A, Agrawal R.Mining association rules between sets of items in large database[C]//Proceedings of 1993 ACM SIGMOD conference on management of data.New York:ACM,1993:207-216. [2] Han J, Kamber M. Data mining:concepts and techniques[M].Beijing:High Education Press,2001. [3] Fan M, Meng X F.Data mining:concepts and techniques[M].Beijing:Mechanical Industrial Press,2001. [4] Han J,Pei J,Yin Y.Mining frequent patterns without candidate generation[C]//Proceedings of the 2000 ACM-SIGMOD international conference on management of data.New York:ACM,2000:1-12. [5] Bayardo R. Efficiently mining long patterns from databases[C]//Proceedings of the ACM SIGMOD international conference on management of data.New York:ACM,1998:85-93. [6] Lin D,Kedem Z.Pincer-search:a new algorithm for discovering the maximum frequent set[C]//Proceedings of the 6th European conference on extending database technology.Ber-lin:Springer-Verlag,1998:105-119. [7] Grahne G,Zhu J.High performance mining of maximal frequent itemset[EB/OL].[2014-07-06].http://www.docin.com/p-773109811.html. [8] 路松峰,盧正鼎.快速開(kāi)采最大頻繁項(xiàng)目集[J].軟件學(xué)報(bào),2001,12(2):293-297. [9] 宋余慶,朱玉全,孫志揮,等.基于FP-tree的最大頻繁項(xiàng)目集挖掘及更新算法[J].軟件學(xué)報(bào),2003,14(9):1586-1592. [10] 吉根林,楊 明,宋余慶,等.最大頻繁項(xiàng)目集的快速更新[J].計(jì)算機(jī)學(xué)報(bào),2005,28(1):128-135. [11] 錢雪忠,惠 亮.關(guān)聯(lián)規(guī)則中基于降維的最大頻繁模式挖掘算法[J].計(jì)算機(jī)應(yīng)用,2011,31(5):1339-1344. [12] 楊鵬坤,彭 慧,周曉鋒,等.改進(jìn)的基于頻繁模式樹(shù)的最大頻繁項(xiàng)集挖掘算法—FP-MFIA[J].計(jì)算機(jī)應(yīng)用,2015,35(3):775-778. [13] Tan Pangning.數(shù)據(jù)挖掘?qū)д?英文[M].北京:人民郵電出版社,2006. [14] 秦亮曦,史忠植.SFP-Max—基于排序FP-樹(shù)的最大頻繁模式挖掘算法[J].計(jì)算機(jī)研究與發(fā)展,2005,42(2):217-223. A Bottom-up Method for Mining Maximum Frequent Itemsets ZHAO Yang,WU Liao-dan (Jiangnan Institute of Computer Technology,Wuxi 214083,China) Mining frequent itemsets is the most critical step in mining association rules.Maximum frequent itemsets is a common compressed representation of frequent itemsets.In mining maximum frequent itemsets,the top-down methods would produce lots of candidate itemsets when the dimensions of maximum frequent itemsets is smaller than the number of frequent itemsets.The existing bottom-up methods need either traversal in database many times or building FP-tree recursively,and the prediction pruning strategies have further room for improvement.The algorithm of discovering maximum frequent itemsets based on minimum non-frequent itemsets named BNFIA has been proposed,which uses storage structure based on FP-tree and digs out the minimum non-frequent itemsets through a bottom-up approach first,then prunes with the minimum non-frequent itemsets to narrow search space for acquiring the maximum frequent itemsets fast through boundary frequent itemsets.Experimental results show that the proposed algorithm has performed better than the algorithm with same type. maximum frequent itemsets;association rules mining;FP-tree;minimum non-frequent itemsets;boundary frequent itemsets 2016-09-09 2016-12-14 網(wǎng)絡(luò)出版時(shí)間:2017-06-05 國(guó)家科技重點(diǎn)專項(xiàng)“核高基”(2015ZX01040-201) 趙 陽(yáng)(1991-),男,碩士研究生,研究方向?yàn)閿?shù)據(jù)挖掘、文本分析及可視化。 http://kns.cnki.net/kcms/detail/61.1450.TP.20170605.1511.082.html TP311 A 1673-629X(2017)08-0057-04 10.3969/j.issn.1673-629X.2017.08.0124 實(shí)驗(yàn)結(jié)果及分析
5 結(jié)束語(yǔ)