我在一个列表中有一组大小为 3 的元组,它们表示窗口序列。我需要的是使用 pyspask 来获得(给定元组的前两个部分)第三个。
所以我需要它根据它们的频率创建三个元素的序列。
这就是我正在做的事情:
data = [[['a','b','c'],['b','c','d'],['c','d','e'],['d','e','f'],['e','f','g'],['f','g','h'],['a','b','c'],['d','e','f'],['a','b','c'],['b','c','d'],['f','g','h'],['d','e','f'],['b','c','d']]]
rdd = spark.sparkContext.parallelize(data,2)
rdd.cache()
model = PrefixSpan.train( rdd, 0.2, 3)
print(sorted(model.freqSequences().take(100)))
虽然,我希望看到它们遵循字母表的序列和频率,但它们没有。
我得到的序列如下:
FreqSequence(sequence=[[u'c'], [u'd'], [u'b']], freq=1)
FreqSequence(sequence=[[u'g'], [u'c'], [u'c']], freq=1)
没有出现在定义的那些中。显然,我构建功能的方式存在问题,或者我在该算法的目的和功能上遗漏了一些东西。
谢谢!