三十一、电子商务分析与服务推荐
生活随笔
收集整理的這篇文章主要介紹了
三十一、电子商务分析与服务推荐
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 數據預處理
1.2 數據預處理的流程
本案例在原始數據的探索分析的基礎上,發現與分析目標無關或模型需要處理的數據,針對此類數據進行處理。其中涉及的數據處理方式有:
- 數據清洗
- 數據變換
- 屬性歸約
2. 數據清洗
2.1 數據清洗規則
-
從探索分析的過程中發現與分析目標無關的數據,歸納總結其數據滿足如下規則:中間頁面的網址、咨詢發布成功頁面、律師登錄助手的頁面等。將其整理成刪除數據規則,下表給出了信息的結果。律師用戶占了所有記錄的22%左右,其他數據占比很小,大概5%左右。
-
經過上述清洗后的記錄中仍然存在大量的目錄網頁(可理解為用戶瀏覽信息的路徑),在進入推薦系統時,這些信息的作用不大,反而會影響推薦的結果。因此需要進一步篩選以html為后綴的網頁。
-
根據分析目標以及探索結果可知,咨詢與知識是其主要業務來源,故篩選咨詢與知識相關的記錄,將此部分數據作為模型分析需要的數據。
數據清洗操作的實現
import pandas as pd from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?charset=utf8') sql = pd.read_sql('all_gzdata', engine, chunksize = 10000) for i in sql:d = i[['realIP', 'fullURL']] #只要網址列d = d[d['fullURL'].str.contains('\.html')].copy() #只要含有.html的網址#保存到數據庫的cleaned_gzdata表中(如果表不存在則自動創建)d.to_sql('cleaned_gzdata', engine, index = False, if_exists = 'append')3 數據變換
3.1 用戶翻頁處理
- 因此,針對這些網頁需要還原其原始數據類型,處理方式為首先是被翻頁的網址,然后對翻頁的網址進行還原,最后針對每個用戶訪問的頁面進行重操作。
3.2 用戶翻頁處理的實現
import pandas as pd from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?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') #保存3.3 網址分類
- 由于在探索階段發現有部分網頁的所屬類別是錯誤的,需對其數據進行網頁分類,且分析目標是分析咨詢類別與知識類別,因此需對這些網址進行手動分類,其分類的規則為包含”ask”、”askzt”關鍵字的記錄人為歸類至咨詢類別,對網址包含“知識”、“faguizt”關鍵字的網址歸類為知識類別。
3.4 網址分類的實現
import pandas as pd from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?charset=utf8') sql = pd.read_sql('changed_gzdata', engine, chunksize=10000)for i in sql:d = i.copy()d['type_l'] = d['fullURL']d['type_l_1'] = Noned['type_l_2'] = Noned['type_l'][d['fullURL'].str.contains('(ask)|(askzt)')] = 'zixun'd['type_l'][d['fullURL'].str.contains('(info)|(zhishiku)')] = 'zhishi'd['type_l'][d['fullURL'].str.contains('(faguizt)|(lifadongtai)')] = 'fagui'd['type_l'][d['fullURL'].str.contains('(fayuan)|(gongan)|(jianyu)|(gongzhengchu)')] = 'jigou'd['type_l'][d['fullURL'].str.contains('interview')] = 'fangtan'd['type_l'][d['fullURL'].str.contains('d\d+(_\d)?(_p\d+)?\.html')] = 'zhengce'd['type_l'][d['fullURL'].str.contains('baike')] = 'baike'd['type_l'][d['type_l'].str.len() > 15] = 'etc'd[['type_l_1', 'type_l_2']] = d['fullURL'].str.extract('http://www.lawtime.cn/(info|zhishiku)/(?P<type_l_1>[A-Za-z]+)/(?P<type_l_2>[A-Za-z]+)/\d+\.html',expand=False).iloc[:, 1:]d.to_sql('splited_gzdata', engine, index=False, if_exists='append')屬性歸約
6 完整代碼
6.1 代碼目錄結構
6.2 完整代碼
1. sql_clean_save.py
import pandas as pd from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?charset=utf8') sql = pd.read_sql('all_gzdata', engine, chunksize = 10000) for i in sql:d = i[['realIP', 'fullURL']] #只要網址列d = d[d['fullURL'].str.contains('\.html')].copy() #只要含有.html的網址#保存到數據庫的cleaned_gzdata表中(如果表不存在則自動創建)d.to_sql('cleaned_gzdata', engine, index = False, if_exists = 'append')2. sql_data_change.py
import pandas as pd from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?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') #保存3. sql_data_split.py
import pandas as pd from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?charset=utf8') sql = pd.read_sql('changed_gzdata', engine, chunksize=10000)for i in sql:d = i.copy()d['type_l'] = d['fullURL']d['type_l_1'] = Noned['type_l_2'] = Noned['type_l'][d['fullURL'].str.contains('(ask)|(askzt)')] = 'zixun'd['type_l'][d['fullURL'].str.contains('(info)|(zhishiku)')] = 'zhishi'd['type_l'][d['fullURL'].str.contains('(faguizt)|(lifadongtai)')] = 'fagui'd['type_l'][d['fullURL'].str.contains('(fayuan)|(gongan)|(jianyu)|(gongzhengchu)')] = 'jigou'd['type_l'][d['fullURL'].str.contains('interview')] = 'fangtan'd['type_l'][d['fullURL'].str.contains('d\d+(_\d)?(_p\d+)?\.html')] = 'zhengce'd['type_l'][d['fullURL'].str.contains('baike')] = 'baike'd['type_l'][d['type_l'].str.len() > 15] = 'etc'd[['type_l_1', 'type_l_2']] = d['fullURL'].str.extract('http://www.lawtime.cn/(info|zhishiku)/(?P<type_l_1>[A-Za-z]+)/(?P<type_l_2>[A-Za-z]+)/\d+\.html',expand=False).iloc[:, 1:]d.to_sql('splited_gzdata', engine, index=False, if_exists='append') 1>[A-Za-z]+)/(?P<type_l_2>[A-Za-z]+)/\d+\.html',expand=False).iloc[:, 1:]d.to_sql('splited_gzdata', engine, index=False, if_exists='append')總結
以上是生活随笔為你收集整理的三十一、电子商务分析与服务推荐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三十、电子商务分析与服务推荐的分析方法与
- 下一篇: 三十二、电子商务服务推荐模型构建