我知道如何生成 n-gram 句子。 例如:一元语法和二元语法(使用数字序列)
1 2 3 4 5 (original senctence)
=>
1,2,3,4,5 (unigram)
12,23,34,45 (bigram)
如何组合一元语法和二元语法(或更大的 n 元语法)以使所有可能的句子具有相同的原始长度。
1,2,3,4,5 (unigram)
12,23,34,45 (bigram)
=>
1 2 3 4 5
1 2 3 45
1 2 34 5
1 23 4 5
1 23 45
12 3 4 5
12 3 45
12 34 5
我想找到解决这个问题的算法。 谢谢!
最佳答案
这里是提示:
- 假设您有 5 个数字 [1 2 3 4 5]
- 有 4 个位置可以插入空格 [1-2, 2-3, 3-4, 4-5]
- 4位二进制数表示组合(0 - 无空格,1 - 空格)
- 例如:代码 0110 匹配 [1 (0) 2 (1) 3 (1) 4 (0) 5] == [12 3 45]
- 迭代所有 n-1 个二进制代码。
关于algorithm - 从 n 元组中生成所有可能的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765968/