example1.py
1.RawLogPath :原始日志存放位置
2.RawLogFile :原始日志名字
3.OutputPath :輸出文件的存放位置
para:__init__():
1.removable:布爾值
2.removeCol:列表,要被拋棄的關(guān)鍵字在wordSeq列表中的序號
3.regular:布爾值
4.rex:列表,兩個正則表達式,說明哪些關(guān)鍵詞用 空 替代
5.groupNum:整型,分成的組數(shù)
myparser:__init__():
1.wordLL:列表
2.loglineNum:整型
3.termpairLLT:列表
4.logNumPerGroup:列表
5.groupIndex:字典
6.termPairLogNumLD:列表
7.logIndexPerGroup:列表
termpairGene():
1.lines:原始日志記錄
2.line:原始日志記錄中的每一條記錄
3.wordSeq:列表,存放一條正則化后的日志記錄被切割成單個關(guān)鍵字的結(jié)果 -> 后被更新為去掉前面已經(jīng)定好的需要去掉的關(guān)鍵字后剩余的關(guān)鍵字
4.wordLL:列表,每個元素均為元組(將wordSeq列表變?yōu)樵M,存放此中);所有記錄均存于此
initialization():
1.wordL:wordLL中的一個元素
2.termpair:元組,放相鄰關(guān)鍵字組成的關(guān)鍵字對
3.wordLT:列表,放的是line對應(yīng)的所有的關(guān)鍵字對
4.termpairLLT:列表,每個元素也是列表(wordLT == termpairLT)lines
5.newDict:字典
6.termPairLogNumLD:列表,每個元素均為字典(每組日志文件中所有的關(guān)鍵字對中的一個:總體出現(xiàn)的次數(shù))
7.logNumPerGroup:
8.loglineNum:整型,日志總數(shù)
9.groupIndex:每條日志記錄對應(yīng)的組號,此時為隨機分配,后面會變。字典,{日志記錄編號:屬于哪個group}
10.logNumPerGroup:列表,每個元素對應(yīng)此組隨機分配后的日志條數(shù)
11.currGroupIndex:隨機分配后,每條日志記錄對應(yīng)的組號
LogMessParti():
1.curGroup:日志記錄當前屬于哪個group
2.changed:布爾值,是否交換組號
signatConstr():
1.candidateTerm:列表,14個元素(每個元素均為字典 -> 出現(xiàn)次數(shù)超過隊列中日志總數(shù)一半的關(guān)鍵字:次數(shù))
2.candidateSeq:列表,元素為 newCandidate ,為14個字典(keySeq(tuple(newCandiSeq)):出現(xiàn)次數(shù))
3.signature :列表,索引為組號,元素內(nèi)容是本組出現(xiàn)次數(shù)最多的關(guān)鍵字序列
4.groupIndex:字典;日志記錄編號:所屬group編號
5.logIndexPerGroup:列表,索引為組號,元素依舊為列表,存放在此組中的日志的lineNo。
6.wordFreqPerGroup:長度為14的列表;其中每個元素均為字典(此組日志記錄的關(guān)鍵字:出現(xiàn)次數(shù))
7.candidateTerm:列表;每個元素都是字典,出現(xiàn)次數(shù)超過日志行數(shù)一半的關(guān)鍵字:出現(xiàn)次數(shù)
8 .newCandiSeq:列表,元素為選定的關(guān)鍵字,來自 candidateTerm
9.keySeq:將 newCandiSeq 變成元組
templatetxt():
1.numLogOfEachGroup:第i組的所有日志記錄的編號