有没有一种算法可以有效地找到大型文本语料库中n个最常见的k词序列?
例如,如果n = 1
和k = 5
,而我的语料库是:
a b a b a c d e f a b a b a c c b c b a b c
输出为a b a b a
答案 0 :(得分:1)
这是一个简单的算法。在每个单词处,逐行将单词序列按k个单词的顺序拆分。对于您的示例,我们有:
a b a b a
b a b a c
a b a c d
b a c d e
a c d e f
c d e f a
d e f a b
e f a b a
f a b a b
a b a b a
b a b a c
a b a c c
b a c c b
a c c b c
c c b c b
c b c b a
b c b a b
c b a b c
c b a b c
对它们进行排序:
a b a b a
a b a b a
a b a c c
a b a c d
a c c b c
a c d e f
b a b a c
b a b a c
b a c c b
b a c d e
b c b a b
c b a b c
c b a b c
c b c b a
c c b c b
c d e f a
d e f a b
e f a b a
f a b a b
现在很容易找到最常见的k序列。如果文件很大,则可能需要将其拆分,分类,然后合并。