本發(fā)明涉及數(shù)據(jù)清洗技術(shù),尤其是時(shí)間數(shù)據(jù)清洗方法及系統(tǒng)。
背景技術(shù):
1、數(shù)字化、智能化時(shí)代,每天都會(huì)產(chǎn)生大量的數(shù)據(jù)。數(shù)據(jù)種類繁多,如何從一大堆數(shù)據(jù)中獲取所需的數(shù)據(jù),并從獲取的數(shù)據(jù)中分析得出相關(guān)結(jié)論是目前數(shù)據(jù)分析迫切需要解決的問題。而分析數(shù)據(jù)得出一個(gè)事件的開始時(shí)間和結(jié)束時(shí)間是一個(gè)特別核心的問題。目前在用的分析方法只適用于簡(jiǎn)單的數(shù)據(jù),對(duì)于數(shù)據(jù)特征多、量大、重復(fù)、雜亂無序的數(shù)據(jù)不太適用。因此,亟待解決上述問題。
技術(shù)實(shí)現(xiàn)思路
1、發(fā)明目的:本發(fā)明的目的是提供一種時(shí)間數(shù)據(jù)清洗方法及系統(tǒng),旨在解決如何從眾多重復(fù)無序雜亂的數(shù)據(jù)中,分析得出一個(gè)事件的開始時(shí)間和結(jié)束時(shí)間的問題。
2、技術(shù)方案:本發(fā)明所述的時(shí)間數(shù)據(jù)清洗方法,事件的待清洗數(shù)據(jù)包括二級(jí)事件名稱和時(shí)間,通過數(shù)據(jù)清洗得到所述時(shí)間的開始時(shí)間和結(jié)束時(shí)間;
3、所述待清洗數(shù)據(jù)存入原始數(shù)據(jù)集,建立第一數(shù)據(jù)集、第二數(shù)據(jù)集、第三數(shù)據(jù)集、第四數(shù)據(jù)集;第一數(shù)據(jù)集、第二數(shù)據(jù)集的長(zhǎng)度為二級(jí)事件的數(shù)量,第三數(shù)據(jù)集、第四數(shù)據(jù)集分別用于記錄第一數(shù)據(jù)集、第二數(shù)據(jù)集中的開始時(shí)間和結(jié)束時(shí)間;
4、所述時(shí)間數(shù)據(jù)清洗方法包括如下步驟:
5、(1)從原始數(shù)據(jù)集中獲取一條數(shù)據(jù)a,若滿足第一條件,則將a放入第一數(shù)據(jù)集中,更新第三數(shù)據(jù)集并執(zhí)行步驟(4);不滿足第一條件則執(zhí)行步驟(2);
6、第一條件為第一數(shù)據(jù)集中沒有數(shù)據(jù)或a中的時(shí)間與第三數(shù)據(jù)集中的開始時(shí)間間隔超過閾值;
7、(2)若滿足第二條件,則將第三數(shù)據(jù)集中的數(shù)據(jù)存入結(jié)果數(shù)據(jù)集,清空第一數(shù)據(jù)集和第三數(shù)據(jù)集,第一數(shù)據(jù)集和第二數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,第三數(shù)據(jù)集和第四數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,此時(shí)第二數(shù)據(jù)集和第四數(shù)據(jù)集清空;若滿足第三條件,則將a放入第一數(shù)據(jù)集中,更新第三數(shù)據(jù)集并執(zhí)行步驟(4),不滿足第三條件,則將a放入第二數(shù)據(jù)集,更新第四數(shù)據(jù)集并執(zhí)行步驟(4);不滿足第二條件則執(zhí)行步驟(3);
8、第二條件為第一數(shù)據(jù)集中的數(shù)據(jù)長(zhǎng)度等于二級(jí)事件的數(shù)量;
9、第三條件為第一數(shù)據(jù)集中沒有數(shù)據(jù)或a中的時(shí)間與第三數(shù)據(jù)集中的最小時(shí)間間隔超過閾值;
10、結(jié)果數(shù)據(jù)集用于存儲(chǔ)該事件的開始時(shí)間和結(jié)束時(shí)間;
11、(3)若滿足第四條件,則判斷是否滿足第五條件,若滿足第五條件則將a放入第二數(shù)據(jù)集,更新第四數(shù)據(jù)集并執(zhí)行步驟(4);不滿足第五條件,表示第一數(shù)據(jù)集中數(shù)據(jù)不完整,則根據(jù)所述事件的時(shí)間范圍查詢并補(bǔ)足數(shù)據(jù)b,將b存入結(jié)果數(shù)據(jù)集,清空第一數(shù)據(jù)集和第三數(shù)據(jù)集,第一數(shù)據(jù)集和第二數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,第三數(shù)據(jù)集和第四數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,此時(shí)第二數(shù)據(jù)集和第四數(shù)據(jù)集清空;若滿足第三條件,則將a放入第一數(shù)據(jù)集中,更新第三數(shù)據(jù)集并執(zhí)行步驟(4),不滿足第三條件,則將a放入第二數(shù)據(jù)集,更新第四數(shù)據(jù)集并執(zhí)行步驟(4);
12、第四條件為第一數(shù)據(jù)集中的數(shù)據(jù)長(zhǎng)度小于二級(jí)事件的數(shù)量;
13、第五條件為第二數(shù)據(jù)集中沒有數(shù)據(jù)或a中的時(shí)間與第四數(shù)據(jù)集中的最小時(shí)間間隔超過閾值;
14、(4)若原始數(shù)據(jù)集非空,則執(zhí)行步驟(1),直至原始數(shù)據(jù)集為空集,輸出結(jié)果數(shù)據(jù)集。
15、進(jìn)一步地,步驟(3)中所述根據(jù)所述事件的時(shí)間范圍查詢并補(bǔ)足數(shù)據(jù)b包括:
16、判斷第三數(shù)據(jù)集中的數(shù)據(jù)是否在第一范圍,若是,則從數(shù)據(jù)庫中查找在第一范圍內(nèi)的數(shù)據(jù)b并添加進(jìn)第一數(shù)據(jù)集中并更新第三數(shù)據(jù)集,將第三數(shù)據(jù)集中的數(shù)據(jù)存入結(jié)果數(shù)據(jù)集;若否,則直接將第三數(shù)據(jù)集中的數(shù)據(jù)存入結(jié)果數(shù)據(jù)集。
17、進(jìn)一步地,在第一數(shù)據(jù)集或第二數(shù)據(jù)集中,存入數(shù)據(jù)的二級(jí)事件名稱在數(shù)據(jù)集中已經(jīng)存在時(shí),根據(jù)已經(jīng)存在的數(shù)據(jù)更新第三數(shù)據(jù)集或第四數(shù)據(jù)集,然后用新存入數(shù)據(jù)覆蓋已存在數(shù)據(jù),并更新第三數(shù)據(jù)集或第四數(shù)據(jù)集。
18、進(jìn)一步地,更新第三數(shù)據(jù)集、更新第四數(shù)據(jù)集的方法為:若第三數(shù)據(jù)集或第四數(shù)據(jù)集中沒有數(shù)據(jù),則直接將a中的時(shí)間作為第三數(shù)據(jù)集或第四數(shù)據(jù)集的開始時(shí)間和結(jié)束時(shí)間,此時(shí)開始時(shí)間等于結(jié)束時(shí)間;若第三數(shù)據(jù)集或第四數(shù)據(jù)集中已有數(shù)據(jù),則將a中的時(shí)間與第三數(shù)據(jù)集或第四數(shù)據(jù)集中的時(shí)間進(jìn)行比較,取最小值作為第三數(shù)據(jù)集或第四數(shù)據(jù)集中的開始時(shí)間,取最大值作為第三數(shù)據(jù)集或第四數(shù)據(jù)集中的結(jié)束時(shí)間。
19、進(jìn)一步地,步驟(4)還包括:若第一數(shù)據(jù)集非空,則將第三數(shù)據(jù)集中的數(shù)據(jù)存入結(jié)果數(shù)據(jù)集,若第二數(shù)據(jù)集非空,則將第四數(shù)據(jù)集中的數(shù)據(jù)存入結(jié)果數(shù)據(jù)集。
20、進(jìn)一步地,指針datahashmapone指向第一數(shù)據(jù)集,指針datahashmaptwo指向第二數(shù)據(jù)集,指針onedata指向第三數(shù)據(jù)集,指針twodata指向第四數(shù)據(jù)集;步驟(1)和步驟(3)中所述清空第一數(shù)據(jù)集和第三數(shù)據(jù)集,第一數(shù)據(jù)集和第二數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,第三數(shù)據(jù)集和第四數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,此時(shí)第二數(shù)據(jù)集和第四數(shù)據(jù)集清空包括:
21、清空datahashmapone和onedata指向的數(shù)據(jù)集;
22、將datahashmapone重新指向datahashmaptwo指向的數(shù)據(jù)集、onedata重新指向twodata指向的數(shù)據(jù)集;
23、datahashmaptwo指向datahashmapone以前的數(shù)據(jù)集、twodata指向以前的onedata指向的數(shù)據(jù)集;
24、完成數(shù)據(jù)的清空和交換。
25、進(jìn)一步地,所述原始數(shù)據(jù)集為有序數(shù)據(jù)集,待清洗數(shù)據(jù)按照二級(jí)事件編號(hào)、時(shí)間兩個(gè)維度進(jìn)行排列,得到有序的原始數(shù)據(jù)集。
26、本發(fā)明所述時(shí)間數(shù)據(jù)清洗系統(tǒng),事件的待清洗數(shù)據(jù)包括二級(jí)事件名稱和時(shí)間,所述系統(tǒng)用于通過數(shù)據(jù)清洗得到所述時(shí)間的開始時(shí)間和結(jié)束時(shí)間,所述系統(tǒng)包括:
27、數(shù)據(jù)集建立單元,用于將所述待清洗數(shù)據(jù)存入原始數(shù)據(jù)集,建立第一數(shù)據(jù)集、第二數(shù)據(jù)集、第三數(shù)據(jù)集、第四數(shù)據(jù)集;第一數(shù)據(jù)集、第二數(shù)據(jù)集的長(zhǎng)度為二級(jí)事件的數(shù)量,第三數(shù)據(jù)集、第四數(shù)據(jù)集分別用于記錄第一數(shù)據(jù)集、第二數(shù)據(jù)集中的開始時(shí)間和結(jié)束時(shí)間;
28、第一數(shù)據(jù)清洗單元,用于從原始數(shù)據(jù)集中獲取一條數(shù)據(jù)a,若滿足第一條件,則將a放入第一數(shù)據(jù)集中,更新第三數(shù)據(jù)集并執(zhí)行第四數(shù)據(jù)清洗單元;不滿足第一條件則執(zhí)行第二數(shù)據(jù)清洗單元;
29、第一條件為第一數(shù)據(jù)集中沒有數(shù)據(jù)或a中的時(shí)間與第三數(shù)據(jù)集中的開始時(shí)間間隔超過閾值;
30、第二數(shù)據(jù)清洗單元,用于在滿足第二條件時(shí),則將第三數(shù)據(jù)集中的數(shù)據(jù)存入結(jié)果數(shù)據(jù)集,清空第一數(shù)據(jù)集和第三數(shù)據(jù)集,第一數(shù)據(jù)集和第二數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,第三數(shù)據(jù)集和第四數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,此時(shí)第二數(shù)據(jù)集和第四數(shù)據(jù)集清空;在滿足第三條件時(shí),將a放入第一數(shù)據(jù)集中,更新第三數(shù)據(jù)集并執(zhí)行執(zhí)行第四數(shù)據(jù)清洗單元,不滿足第三條件,則將a放入第二數(shù)據(jù)集,更新第四數(shù)據(jù)集并執(zhí)行執(zhí)行第四數(shù)據(jù)清洗單元;不滿足第二條件則執(zhí)行執(zhí)行第三數(shù)據(jù)清洗單元;
31、第二條件為第一數(shù)據(jù)集中的數(shù)據(jù)長(zhǎng)度等于二級(jí)事件的數(shù)量;
32、第三條件為第一數(shù)據(jù)集中沒有數(shù)據(jù)或a中的時(shí)間與第三數(shù)據(jù)集中的最小時(shí)間間隔超過閾值;
33、結(jié)果數(shù)據(jù)集用于存儲(chǔ)該事件的開始時(shí)間和結(jié)束時(shí)間;
34、第三數(shù)據(jù)清洗單元,用于在滿足第四條件時(shí),判斷是否滿足第五條件,若滿足第五條件則將a放入第二數(shù)據(jù)集,更新第四數(shù)據(jù)集并執(zhí)行第四數(shù)據(jù)清洗單元;不滿足第五條件,表示第一數(shù)據(jù)集中數(shù)據(jù)不完整,則根據(jù)所述事件的時(shí)間范圍查詢并補(bǔ)足數(shù)據(jù)b,將b存入結(jié)果數(shù)據(jù)集,清空第一數(shù)據(jù)集和第三數(shù)據(jù)集,第一數(shù)據(jù)集和第二數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,第三數(shù)據(jù)集和第四數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行交換,此時(shí)第二數(shù)據(jù)集和第四數(shù)據(jù)集清空;若滿足第三條件,則將a放入第一數(shù)據(jù)集中,更新第三數(shù)據(jù)集并執(zhí)行第四數(shù)據(jù)清洗單元,不滿足第三條件,則將a放入第二數(shù)據(jù)集,更新第四數(shù)據(jù)集并執(zhí)行第四數(shù)據(jù)清洗單元;
35、第四條件為第一數(shù)據(jù)集中的數(shù)據(jù)長(zhǎng)度小于二級(jí)事件的數(shù)量;
36、第五條件為第二數(shù)據(jù)集中沒有數(shù)據(jù)或a中的時(shí)間與第四數(shù)據(jù)集中的最小時(shí)間間隔超過閾值;
37、第四數(shù)據(jù)清洗單元,用于在原始數(shù)據(jù)集非空時(shí),則執(zhí)行第一數(shù)據(jù)清洗單元,直至原始數(shù)據(jù)集為空集,輸出結(jié)果數(shù)據(jù)集。
38、本發(fā)明所述電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被加載至處理器時(shí)實(shí)現(xiàn)所述的時(shí)間數(shù)據(jù)清洗方法。
39、本發(fā)明所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述的時(shí)間數(shù)據(jù)清洗方法。
40、有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:(1)本發(fā)明可以準(zhǔn)確快速處理據(jù)特征多、量大、重復(fù)、雜亂無序的數(shù)據(jù);(2)本發(fā)明可以準(zhǔn)確快速處理跨年的數(shù)據(jù);(3)本發(fā)明可以準(zhǔn)確快速地從一大堆重復(fù)、雜亂無序的數(shù)據(jù)中分析得出一個(gè)事件在一段時(shí)間內(nèi)每次的開始時(shí)間和結(jié)束時(shí)間。