您的位置:首页 > 其它

法律网推荐(一) 用Hive进行数据探索分析

2016-12-21 12:14 525 查看
电子商务网站用户行为分析及服务推荐(云计算 法律网案例)

本案例分为三篇文章来讲解

(一) 用Hive进行数据探索分析

(二) 用Pig进行数据预处理

(三) 用Spark_ALS进行推荐

思路如下:

一、挖掘背景及目标
二、系统架构
三、分析过程及实现

      1)数据抽取

      2)数据探索分析

           1.网页类型分析

           2.点击次数分析

           3.网页排名

      3)数据预处理

           1. 数据清洗

           2. 数据变换

           3. 属性规约  

一、挖掘背景及目标

       挖掘背景:

   随着互联网和信息技术的快速发展,电子商务、网上服务与交易等网络业务越来越普及,因此产生海量数据,用户想要从海量数据中快速准确地寻找到自己感兴趣的信息已经变得很困难,因此搜索引擎就诞生了,如Google,百度等。搜索引擎根据关键词相关信息。但无法解决用户的很多其他需求,如用户无法找到准确描述自己需求的关键词时,搜索引擎就无能为力了。

   本例主要研究北京某法律网站,其致力于为用户提供丰富的法律信息与专业咨询服务,随着其网站访问量的增大,用户在面对大量信息时,无法及时从中获得自己需要的信息,对信息的使用效率越来越低。

   挖掘目标:

   与搜索引擎不同,推荐系统并不需要用户提供明确的需求,而是通过分析用户的历史行为主动为用户推荐能够满足他们兴趣和需求的信息。为了能够更好地满足用户需求,依据其网站海量的数据,研究用户的兴趣偏好,分析用户的需求和行为,发现用户的兴趣点,从而引导用户发现自己的信息需求,将长尾网页(长尾网页是指网页的点击情况满足长尾理论中尾巴部分的网页)准确地推荐给所需用户,为用户提供个性化服务。 

             1、按地域研究用户访问时间、访问内容、访问次数等分析主题,深入了解用户访问网站的行为、目的及关心的内容

              2、借助大量用户访问记录,发现用户访问习惯,对不同用户推荐相关服务页面

二、系统架构(推荐系统)

 

 

三、分析过程及实现

   该案例的目标是需要对用户进行推荐,即以一定的方式将用户与物品(本文指网页)建立联系。为了更好的帮助用户从海量的数据中快速发现感兴趣的网页,在目前相对单一的推荐系统上进行补充,采用协同过滤算法进行推荐。

          由于用户访问网站的数据记录很大,如果对数据不进行分类处理,对所有记录直接采用推荐系统进行推荐,这样会存在以下问题:

           1数据量太大意味着物品数与用户数很多,在模型构建用户与物品的稀疏矩阵时,出现设备内存空间不够的情况,并且模型计算需要消耗大量的时间;

           2、用户区别很大,不同的用户关注信息不一样,因此即使能够得到推荐结果,其推荐准确度不高。

   为了避免出现上述问题,需要对海量记录进行分类处理与分析。正常的情况下,需要对用户的兴趣爱好以及需求进行分类。因用户访问记录中,没有记录用户访问网页时间的长短,因此不容易判断用户兴趣爱好。因此本文根据用户浏览的网页信息进行分类处理,主要采用以下方法处理:

           1、以用户浏览网页的类型进行分类。

           2、然后对每个类型中的内容进行推荐。

   采用上述的分析方法与思路,结合该案例的原始数据以及分析目标,可得整个实现过程主要包含以下步骤:

     

             1[b]、从系统中获取用户访问网站的原始记录。

             2对数据进行多纬度分析,用户访问内容,流失用户分析以及用户分类等分析。

             3对数据进行预处理,包含数据去重,数据删选,数据分类等处理过程。

             4以用户访问html后缀的网页为关键条件,对数据进行处理。

             5基于Mahout的协同过滤、SparkMlibALS等推荐算法建立模型,通过模型评价,得到比较好的智能推荐模型。通过模型对样本数据进行预测,获得推荐结果。

   1)数据抽取  

   协同过滤等推荐算法的特性就是通过历史数据找出相似的用户或者网页,因此在数据抽取的过程中,尽可能选择大量的数据,这样就能降低推荐结果随机性,提高推荐结果的准确性,能更好的发掘长尾网页中用户感兴趣的网页。

           以用户的访问时间为条件,选取三个月内(2015-02-01~2015-04-29)用户的访问数据作为原始数据集。由于每个地区的用户访问习惯以及兴趣爱好存在差异性,因此抽取广州地区的用户访问数据进行分析,其数据量总共有837450条记录,其中包括用户号、访问时间、来源网站、访问页面、页面标题、来源网页、标签、网页类别、关键词等。

   法律网真实数据样式如下:  
      


   data中各属性名称及属性说明:

  


下面进行(一) 用Hive进行数据探索分析的讲解:

           数据探索分析分为三步
           1.网页类型分析
           2.点击次数分析
           3.网页排名

 在进行探索分析之前先用Hive创建law表:

1.----创建law表
CREATE TABLE  law (
ip bigint,
area int,
ie_proxy string,
ie_type string ,
userid string,
clientid string,
time_stamp bigint,
time_format string,
pagepath string,
ymd int,
visiturl string,
page_type string,
host string,
page_title string,
page_title_type int,
page_title_name string,
title_keyword string,
in_port string,
in_url string,
search_keyword string,
source string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;


      





      建立law表                                     查看表结构

2.	---导入数据
load data local inpath '/root/law_utf8.csv' overwrite into table law;  导入数据时间可能会比较久(方式:从Linux本地导入)
3.----查询law 记录数
select count(1) from law;
     结果:     837450     

  网页类型分析----1. 网页类型统计

    针对原始数据中用户点击的网页类型进行统计,统计内容为:网页类型( 对应字段visiturl )、记录数及其所占总记录百分比:

   1、创建law表,导入数据law_utf8.csv。

    2、查询表law中总记录数,统计网页类型,结果字段为:网页类型、记录数、记录所占总记录百分比。
  
4.----统计网页类型
select substring(page_type,1,3) as page_type,
count(*) as count_num,
round((count(*)/837450.0)*100,4) as weights
from law group by substring(page_type,1,3)
order by count_num desc limit 7;


   通过以上操作,网页类型统计统计如下:

    


   从统计结果中发现点击与咨询相关(网页类型为101,http://www.****.cn/ask/)的记录占了49.16%,其次是其他的类型(网页类型为199)占比24%左右,然后是知识相关(网页类型为107,http://www.****.com/info/)占比22%左右。

   因此可以得到用户点击的页面类型的排行榜为:咨询相关、知识相关、其他方面的网页、法规(类型为301)、律师相关(类型为102)。可以初步得出相对于长篇的知识,用户更加偏向于查看咨询或者进行咨询。

   

     进一步对咨询类别内部进行统计分析,统计内容为:101网页类型的子类型、记录数及其所占101网页类型总记录百分比。

   创建动态分区表law_part,分区字段为page_type,导入对应数据到分区。

1.----创建动态分区表,以page_type分区。
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nostrict;

CREATE TABLE  law_part (
ip bigint,
area int,
ie_proxy string,
ie_type string ,
userid string,
clientid string,
time_stamp bigint,
time_format string,
pagepath string,
ymd int,
visiturl string,
page_type string,
host string,
page_title string,
page_title_type int,
page_title_name string,
title_keyword string,
in_port string,
in_url string,
search_keyword string,
source string)
partitioned by(page_type_part string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

2.-----导入数据到分区
INSERT OVERWRITE TABLE law_part PARTITION (page_type_part)
SELECT *,substring(page_type,1,3) FROM law ;
3.-----查看分区数,即网页类别数
show partitions law_part;

4.-----咨询类别内部统计
select substring(page_type,1,6) as page_type,
count(*) as count_num,
round((count(*)/411665.0)*100,4) as weights
from law_part where page_type_part=101
group by substring(page_type,1,6)
order by count_num desc;


   

   通过以上操作,咨询类别内部统计如下:
          


       

   由咨询类别内部统计表可知,其中浏览咨询内容页(101003)记录最多,其次是咨询列表页(101002)和咨询首页(101001)。结合上述初步结论,可以得出用户都喜欢通过浏览问题的方式找到自己需要的信息,而不是以提问的方式或者查看长篇的知识的方式。

           网页类型分析---2. 网页中带有“?”的记录统计

   使用Hive统计所有访问网页中带有“?”的总记录数。统计分析访问网页中带有?的所有记录中,各网页类型、记录数、占访问网页中带有?的记录总数的百分比。

1.----包含“?”的网页数量:
select COUNT(1) from law_part where visiturl like '%?%';
2.----统计访问网页中带有?的所有记录中,各网页类型、记录数、占访问网页中带有?的记录总数的百分比:
select  count(*) as count_num,
page_type,
round((count(*)/65477.0)*100,4) as weights
from law where visiturl like '%?%'
group by page_type
order by count_num desc limit 7;
         通过以上操作,网页中带有“?”的记录统计如下:
          


         

          网页类型分析----3. 其他网页类型分析

   由带问号字符网址类型统计表可知,其中其他网页类型占了98%左右,比重较大,因此需要进一步分析其类型内部的规律。知识相关与法规专题占比1%左右。通过分析发现,大部分网址是以如下形式存在:

             http://www.****.cn/guangzhou/p2lawfirm 地区律师事务所

             http://www.****.cn/guangzhou 地区网址

             http://www.****.cn/ask/ask.php

             http://www.****.cn/ask/midques_10549897.html中间类型网页

             http://www.****.cn/ask/exp/4317.html咨询经验

             http://www.****.cn/ask/online/138.html在线咨询页

    带有标记的三类网址本应该有相应的分类,但是由于分类规则的匹配问题,没有相应的匹配。带有lawfirm关键字的对应是律师事物所,带有ask/exp、ask/online关键字的对应是咨询经验和在线咨询页。所以在处理数据过程中将其进行清楚分类,便于后续数据分析。

              在1999001类型中,有法律快车-律师助手、带有“?”的访问页面记录等类型数据,通过业务了解快车-律师助手类型的页面,是律师的一个登录页面。带有“?”的页面记录,类似为http://www.****.com/ask/question_9152354.html?&from=androidqq这类型网页是被分享过的,可以对其进行处理,截取?前面的网址,还原其原类型。

 
 由于带问号字符网址类型统计表中得出网址中带有“?”的情况不仅仅出现在其他类别中,同时也会出现在咨询内容页和知识内容页中。因此需要统计各类访问网页中带有“?”比例。

   可以从带问号字符网址类型统计表中得出网址中带有“?”的情况不仅仅出现在其他类别中,同时也会出现在咨询内容页和知识内容页中。但其他类型中(1999001)占了大部分98.8%,因此需要进一步分析其类型内部的规律。

  

    可以从带问号字符网址类型统计表中得出网址中带有“?”的情况不仅仅出现在其他类别中,同时也会出现在咨询内容页和知识内容页中。但其他类型中(1999001)占了大部分98.8%,因此需要进一步分析其类型内部的规律。

1.----昨天作业得出,网页ID为1999001的有64691条,占带问号网页的98.7996,现在对其进行细化分析,看着64691个网页中具体包含了哪些:
   

    

2.----网页ID为1999001的64691记录的网页标题、记录数,所占比例各是多少?
select  count(*) as count_num,
page_title,
round((count(*)/64691.0)*100,4) as weights
from law where page_type=1999001
group by page_title
order by count_num desc limit 15;


   

   通过以上操作,网页ID为1999001的有64691条,占带问号网页的98.7996,现在对其进行细化分析,看着64691个网页中具体记录统计如下:

   

   

 

   通过统计分析,在1999001类型中,标题为快车-律师助手的这类信息通过业务了解这是律师的一个登录页面。标题为咨询发布成功页面是自动跳转的页面。其它类型中的大部分为http://www.****.com/ask/question_9152354.html?&from=androidqq这类型网页是被分享过的,可以对其进行处理,截取?前面的网址,还原其原类型。

          由于快搜和免费发布咨询网址中,类型很混杂,不能直接采用?进行截取,无法还原其原类型,且整个数据集中占比很小,因此在处理数据环节可以对这部分数据进行删除。同时分析其他类别中的网址情况。

         网页类型分析----4. html后缀结尾网页统计

   在查看数据的过程中,发现存在一部分这样的用户,他们没有点击具体的网页(以.html后缀结尾),他们点击的大部分是目录网页,这样的用户可以称为“瞎逛”。分析其中的网页类型,统计结果见下表。可以从中看出,小部分是与知识、咨询相关,大部分是地区、律师和事物所相关的。这部分用户有可能找律师服务的,或者是瞎逛的。

1.----查询law记录数
select count(1) from law;

结果:
837450
2.----非html后缀结尾网页统计:
select count(*) as count_num,
substring(page_type,1,3) as page_type,
round((count(*)/837450.0)*100,4) as weights
from law where visiturl not like '%.html%'
group by substring(page_type,1,3)
order by count_num desc;


   

Ps.
如果:
select count(*) as count_num,
substring(page_type,1,3) as page_type,
round((count(*)/837450.0)*100,4) as weights
from law where visiturl notlike'%.html%'
group by substring(page_type,1,3)
order by count_num desc;
        结果如下(第2张图):

         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: