u*****o 发帖数: 1224 | 1 我是菜鸟。。。刚刚上班不久就遇到一个不太解决的了的问题,希望牛牛们给点指点,
让我好知道如何下手,马上要和老板谈思路,怕自己什么也说不出来。
我现在有两组数据,第一组是navigator的User-agent string,我们叫它A
一个例子就是
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0;
SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media
Center PC 6.0; .NET4.0C; .NET4.0E; BRI/1; MDDC; InfoPath.1; BRI/2)
另一组数据时browser的user-agent string,我们叫它B
一个例子是
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
我不太清楚具体两组数据是如何收集的,但都是针对同一个user的browser收集的数据,
我现在的问题是,如何知道B是不是A的subset? 他们具体有多相似? 如何提取B的extra
information?
想知道A,B的关系是为了以后的feature selection,看应该选A还是B放在数据分析的
模型里。如果另一个不具有added value,那么放一个就可以了。我开始试过edit
distance比较两个string的相似度,后来发现得到的数字没有什么意义,不具有描述性
,如果R里面有什么package可以用就好了,哪怕是做个preliminary analysis启发一下
也行呀,我听说过cramer'v,没用过,不知大家是否了解。 |
k*z 发帖数: 4704 | 2 try a proc freq and see distinction.
if not a lot, build a foreign key then hard code number to each word. |
Y****a 发帖数: 243 | 3 在R里,把所有的number filter掉,string split by ";", unique 一下,你会得到所
有系统或软件的名称,without version number. 然后,把这些设为变量名。
第二遍扫描数据,把version number 填在相应的变量名下。
然后就可以查B是不是A的子集了。 |
h***i 发帖数: 3844 | 4 edit distance.
【在 u*****o 的大作中提到】 : 我是菜鸟。。。刚刚上班不久就遇到一个不太解决的了的问题,希望牛牛们给点指点, : 让我好知道如何下手,马上要和老板谈思路,怕自己什么也说不出来。 : 我现在有两组数据,第一组是navigator的User-agent string,我们叫它A : 一个例子就是 : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; : SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media : Center PC 6.0; .NET4.0C; .NET4.0E; BRI/1; MDDC; InfoPath.1; BRI/2) : 另一组数据时browser的user-agent string,我们叫它B : 一个例子是 : Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
|
c****0 发帖数: 14490 | 5 赶紧mark下~~
【在 Y****a 的大作中提到】 : 在R里,把所有的number filter掉,string split by ";", unique 一下,你会得到所 : 有系统或软件的名称,without version number. 然后,把这些设为变量名。 : 第二遍扫描数据,把version number 填在相应的变量名下。 : 然后就可以查B是不是A的子集了。
|
u*****o 发帖数: 1224 | 6 这个edit distance我试过了
这是一部分结果,我把distance normalized by length of string,换成0-1的百分数
了。然后再根据browser的类型计算了一下平均数,
比如:Safari browser average distance = 0.027
IE average distance = 0.55
Chrome average distance = 0.0008
这些数据并没有太大的意义呀,除了说明IE两组数据比较不像,Chrome非常相似。。
【在 h***i 的大作中提到】 : edit distance.
|
t********m 发帖数: 939 | 7 必须mark一下,R里面用什么package做这个,大牛给具体讲讲?
【在 Y****a 的大作中提到】 : 在R里,把所有的number filter掉,string split by ";", unique 一下,你会得到所 : 有系统或软件的名称,without version number. 然后,把这些设为变量名。 : 第二遍扫描数据,把version number 填在相应的变量名下。 : 然后就可以查B是不是A的子集了。
|
Y****a 发帖数: 243 | 8 没package,自己写code
不知道数据有多大,不大的话几个for loop,大的话for loop会很慢,要找些别loop。
或者用python,建dictionary 可能会有帮助。
建议先用几十行数据做test,再慢也慢不到哪去。所有的input,output都fix了以后再
上全部数据。 |
r****t 发帖数: 10904 | 9 ie variant 多,历史久。chrome 太新了
navigator 和 browser 有什么不同,我还以为是一样的了
【在 u*****o 的大作中提到】 : 这个edit distance我试过了 : 这是一部分结果,我把distance normalized by length of string,换成0-1的百分数 : 了。然后再根据browser的类型计算了一下平均数, : 比如:Safari browser average distance = 0.027 : IE average distance = 0.55 : Chrome average distance = 0.0008 : 这些数据并没有太大的意义呀,除了说明IE两组数据比较不像,Chrome非常相似。。
|