返回介绍

2.数据变换

发布于 2024-01-28 21:41:24 字数 3112 浏览 0 评论 0 收藏 0

由于在用户访问知识的过程中,存在翻页的情况,不同的网址属于同一类型的网页,见表12-17。数据处理过程中需要对这类网址进行处理,最简单的处理方法是将翻页的网址删掉。但是,用户访问页面是通过搜索引擎进入网站的,所以其入口网页不一定是其原始类别的首页,采用删除的方法会损失大量的有用数据,在进入推荐系统时,会影响推荐结果。因此,针对这些网页需要还原其原始类别,处理方式为首先识别翻页的网址,然后对翻页的网址进行还原,最后针对每个用户访问的页面进行去重操作,其操作结果见表12-18。

表12-17 用户翻页网址表

表12-18 数据变换后的用户翻页表

有关于用户翻页的数据处理代码如代码清单12-6所示。

代码清单12-6 Python访问MariaDB(MySQL)数据库进行数据变换

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8')
sql = pd.read_sql('cleaned_gzdata', engine, chunksize = 10000)
for i in sql: #逐块变换并去重
  d = i.copy()
  d['fullURL'] = d['fullURL'].str.replace('_\d{0,2}.html', '.html') #将下划线后面部
      分去掉,规范为标准网址
  d = d.drop_duplicates() #删除重复记录
  d.to_sql('changed_gzdata', engine, index = False, if_exists = 'append') #保存

代码详见:demo/code/sql_data_change.py

由于在探索阶段发现有部分网页的所属类别是错误的,需对其数据进行网址分类,且分析目标是分析咨询类别与知识类别,因此需对这些网址进行手动分类,其分类的规则和结果见表12-19,其中对网址中包含“ask”、“askzt”关键字的记录人为归类至咨询类别,对网址中包含“zhishi”、“faguizt”关键字的网址归类为知识类别。

表12-19 网页类别规则

因为目标是需要为用户提供个性化的推荐,在处理数据的过程中需要进一步对数据进行分类,其分类方法如图12-7所示,图中知识部分是由很多小的类别组成。由于所提供的原始数据中知识类别无法进行内部分类,故从业务上进行分析,可以采用其网址的构成对其进行分类。对表12-20中的用户访问记录进行分类,其分类的结果见表12-21。

图12-7 网页分类图

表12-20 网页分类表

表12-21 网页分类结果表

网址分类的数据处理见代码清单12-7。

代码清单12-7 Python访问MariaDB(MySQL)数据库进行网址分类

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8')
sql = pd.read_sql('changed_gzdata', engine, chunksize = 10000)
for i in sql: #逐块变换并去重
  d = i.copy()
  d['type_1'] = d['fullURL'] #复制一列
  d['type_1'][d['fullURL'].str.contains('(ask)|(askzt)')] = 'zixun' #将含有ask、
      askzt关键字的网址的类别一归为咨询(后面的规则就不详细列出来了,实际问题自己添加即可)
  d.to_sql('splited_gzdata', engine, index = False, if_exists = 'append') #保存

代码详见:demo/code/sql_data_split.py

统计分析每一类中的记录,以知识类别中的婚姻法为例进行统计分析见表12-22。可见其网页的点击率基本满足二八定律,即80%的网页只占了浏览量的20%左右,通过这个规则,按点击行为进行分类,20%的网页是热点网页,其他80%的页面属于点击次数少的。因此在进行推荐过程中,需要将其分开进行推荐,已达到最优的推荐效果。

表12-22 婚姻知识点击次数统计表

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文