三,论文研读
Web日志挖掘预处理流程
数据清理
用户识别
会话识别
用户访问序列获得事务算法
事务识别是从用户访问会话序列中找出有意义的页面访问序列,即用户访问事务。之前数据预处理中事务识别之前是使用路径补充技术来补全访问日志中没有记录的用户请求,获得用户完整的访问路径,正确识别有意义的用户访问路径,然后采用最大向前引用路径来定义事务。
从用户访问序列获得事务的算法(STT),根据网站拓扑结构,不需要补充回退路径,得到用户访问路径,对其进行识别,最终得到访问事务数据。
STT算法
STT算法首先把网站的树形拓扑结构转换成二叉树的结构,然后在二叉树结构上根据用户的会话序列得到事务序列。
获得最大向前参引路径的算法如下:
IniStack(St); //初始化栈
P=T; //P 指向二叉树的根结点
flag=0;
While (S!=Null) //判断用户访问序列是否结束
{ if (flag==0)
If (P) { //如果根的当前结点与用户访问序列中的当前结点相同,将其加入到 Path 中
If (P->data==S)
{ 把 P 加入到 Path 中,S++;
if (flag==0) Flag=1;}
push(St,P); //把当前结点压入栈中
P=P->lchild;} //指向 P 的左孩子结点
else { pop(St,P); //栈顶元素出栈并赋给 P
P=P->rchild; } //指向 P 的右孩子结点
else if (P) { if (P->data==S)
{ 把 P 加入到 Path 中,S++;
push(St,P);
P=P->lchild; }
Else { push(St,P);
P=P->rchild; }
Else { if (P 的前一个结点是左结点) 保存当前路
径 Path;
pop(St,P);
if (P 在 path 中)从 path 中删去 P;
P=P->rchild;}
if(StackEmpty(St)) //如果栈空但访问序列并未结束,则
将 P 指向树根结点,flag 赋为 0
{ P=T; flag=0; }
}
原文:https://www.cnblogs.com/zaw-315/p/11228218.html