我正在尝试使用Mahout对用户进行聚类和分类.目前我处于规划阶段,我的想法与想法完全混合,因为我对这个领域相对较新,所以我坚持数据格式化.
假设我们有两个数据表(足够大).在第一个表中有用户及其操作.每个用户至少有一个动作,他们也可以有太多的动作.表中有大约10000个不同的user_actions和数百万条记录.
user - user_action
u1 - a
u2 - b
u3 - a
u1 - c
u2 - c
u2 - c
u1 - b
u4 - f
u4 - e
u1 - e
u1 - d
u5 - d
Run Code Online (Sandbox Code Playgroud)
在另一个表中,有行动类别.每个动作可能没有或多个类别.共有60个类别.
user_action - category
a - cat1
b - cat2
c - cat1
d - NULL
e - cat1, cat3
f - cat4
Run Code Online (Sandbox Code Playgroud)
我将尝试使用Mahout构建用户分类模型,但我不知道应该做什么.我应该创建什么类型的用户向量?或者我真的需要用户向量吗?
我想我需要创造类似的东西;
u1 (a, c, b, e, d)
u2 (b, c, c)
u3 …Run Code Online (Sandbox Code Playgroud) 您可以在http://jsfiddle.net/6gnAF/1/上看到问题
我的列表元素没什么问题.
我使用的是非常简单的无序列表;
<div>
<ul>
<li class='button'>Element 1</li>
...
<li class='button'>Element N</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
(列表元素的数量N在每页上都有所不同.)
在div其中包含ul是696 px宽度.列表元素li是水平对齐的,当它们到达div宽度的末尾时,它们会在新行上进行转换.
我想要在每一行中添加.left第li一个类,并将类添加.right到最后一行.
$('li').each(function() {
var liWidthOut = $(this).width();
totalWidth += liWidthOut;
if (totalWidth >= divWidth) {
$(this).addClass("left");
$(this).prev().removeClass("middle").addClass("right");
totalWidth = liWidthOut;
}
else {
$(this).addClass("middle");
}
});
Run Code Online (Sandbox Code Playgroud)
我用Jquery管理过,但我有点问题.
您可以在http://jsfiddle.net/6gnAF/1/上看到问题
问题是,.left和.right类改变的宽度li将其加入的元素,所以有些时候,他们创造新的生产线,以及最后的li元素成为具有第一位.right的,而不是类.left.
我怎样才能解决这个问题?
(抱歉语法错误)
PHP 脚本按降序输出电子邮件地址列表,如下所示:
_abc_@testmail.com
_abc45_@testmail.com
_abc2_@testmail.com
ypaux2aux@yahoo.com
yaremchuk56@testmail.com
vasillevn@hotmail.com
ugur@hotmail.com
twes@gmail.com
tukaux@yahoo.com
ttsetaux1@yahoo.com
tra@testmail.com
Run Code Online (Sandbox Code Playgroud)
在 Java 中,我从这些电子邮件创建一个 ArrayList,然后按降序排序。结果不一样:
ypaux2aux@yahoo.com
yaremchuk56@testmail.com
vasillevn@hotmail.com
ugur@hotmail.com
twes@gmail.com
tukaux@yahoo.com
ttsetaux1@yahoo.com
tra@testmail.com
_abc45_@testmail.com
_abc2_@testmail.com
_abc_@testmail.com
Run Code Online (Sandbox Code Playgroud)
差异是由下划线“_”引起的。我想实现与 PHP 脚本相同的排序顺序。我怎样才能做到这一点?我无法访问 PHP 代码。
我使用的Java测试代码是:
import java.util.ArrayList;
import java.util.Collections;
public class sorty {
public static void main(String[] args) {
ArrayList<String> listStrings = new ArrayList<>();
listStrings.add("_abc_@testmail.com");
listStrings.add("_abc45_@testmail.com");
listStrings.add("_abc2_@testmail.com");
listStrings.add("ypaux2aux@yahoo.com");
listStrings.add("yaremchuk56@testmail.com");
listStrings.add("vasillevn@hotmail.com");
listStrings.add("ugur@hotmail.com");
listStrings.add("twes@gmail.com");
listStrings.add("tukaux@yahoo.com");
listStrings.add("ttsetaux1@yahoo.com");
listStrings.add("tra@testmail.com");
for (int i = 0; i < listStrings.size(); i++) {
System.out.println(listStrings.get(i));
}
Collections.sort(listStrings);
Collections.reverse(listStrings);
for (int …Run Code Online (Sandbox Code Playgroud)