[英]How to identify a new pattern in a URL with a machine learning algorithm (Text mining)
在分析許多URL之后,我試圖確定新的模式。 假設我們正在調查假設的網站Yoohle.com,它們的URL具有以下結構。
因此樣本網址看起來像這樣
www.yoohle.com/test_folder/test_page?q=hello+world&lan=en&pr=stackoverflow&br=chrome
如果我正在調查該網站的網絡訪問量,並且發現每個月的異常增加情況,我想找出造成這種情況的原因。 在此示例中,我可以僅解析URL並查看pr =值,因為它會告訴我是否存在新的合作關系(也許yoohle.com將為stackoverflow提供動力,並推動這種增長等)。
問題是,我如何構建可以比較2(或更多)個月的可靠產品,並確切地告訴我是什么在推動增長。 我想要得到這樣的信息:“我們看到了增長,並且受到以下模式的驅動”
www.yoohle.com/test_folder/test_page%pr=stackoverflow%
棘手的部分是,與本示例不同,您對令牌的含義一無所知,因為我不知道令牌代表partner_id。 另一個問題是,如果我們逐個標記地查看標記,這將產生誤導,因為lan = en還將與新的合作伙伴聯系,並假設用戶仍將英語作為語言。
我的想法是通過查看所有組合來分析令牌,但這非常昂貴(在此示例中為4 !,對於其他網站,可能為10+!)。 分析令牌本身並不能解決問題,因為我仍然需要分析令牌的值。
我嘗試了k-means聚類,apriori算法對URL /文本挖掘進行了一些研究,但沒有得到我想要的。 關於如何構建算法的任何想法都是有益的。
假設您正在查看實時數據,那么我們正在談論分析給定月份中大約100K URL。
我會按照以下方式進行。 您可以創建下表:
URL
time
time_month -- time rounded to month, for demonstration purpose
q_bol -- boolean flag whether question parameter was used
q -- question parameter value
lan -- language parameter value
lan_bol -- boolean flag whether language parameter was used
pr -- partner parameter value
pr_bol -- boolean flag whether partner parameter was used
br -- browser parameter value
br_bol -- boolean flag whether browse parameter was used
現在,您可以編寫一些查詢。
with t as (
select
time_month,
q_bol, lan_bol, pr_bol, br_bol, count(*)
from
urldata
where
time_month > '2013-02-01'::date and time_month < '2013-04-01'::date -- last two months data
group by
time_month
)
, u as (
select
*,
t2-coalesce(t1,0) as abs_change, -- change in pattern MoM,
case when t1 is null then 0 else t2/t1 end as relchange -- relative change
from
t t1 full outer join t t2 using (q_bol, lan_bol, pr_bol, br_bol)
)
select * from u where abs_change > 5000 or relchange > 3
上面的查詢為您提供了參數模式,其中每月變化量超過5000,或者每月變化量超過300%。 如果可以在sql系統中使用“ group by rollup
,那么它還將給出更高級別的聚合(三個參數,兩個參數,一個參數的組合)。
您可以對參數的值執行相同的操作。 由於您不知道值會出現什么令牌,因此可以在以下表結構中解析url:
-- urls
id_url
url
time
-- parameters
id_url
token
value
然后,您將需要以某種方式重寫上面的查詢,例如,可以在PostgreSQL array_agg()
使用數組聚合函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.