我有5个垂直字符串,它们是按照分类器的概率顺序生成的。如果分类器的置信度非常高,我想保留该分类,但对于低置信度的分类,我希望在所有可能的组合顺序之间变化,创建一个包含所有可能垂直字符串的列表。
因此,我的数据看起来像这样:
aa aa aa aa aa
ab ac aa ad ae
aa ab af ae ag
我希望能够获得所有可能的有序组合。
aa aa aa aa aa aa aa aa aa aa ...
ab ac aa ad ae ae ab ac aa ad ...
aa ab af ae ag aa ab af ae ag...
我尝试使用itertools,但似乎找不到合适的工具来做这件事。有人知道如何做吗?
目前我尝试过以下方法:
import sys
import os
import itertools
from itertools import permutations
in_file = sys.argv[1]
f1 = open(in_file, 'r')
new_lines = []
for line in f1.readlines():
line = line.strip()
do stuff to replace my higher confidence matches...
new_lines.append(line)
for x in new_lines:
for a,b,c,d,e,f,g,h,i,j in permutations(x.split(), 10):
print '{} {} {} {} {} {} {} {} {} {}'.format(a.rstrip('\n'), b.rstrip('\n'), c.rstrip('\n'), d.rstrip('\n'), e.rstrip('\n'), f.rstrip('\n'), g.rstrip('\n'), h.rstrip('\n'), i.rstrip('\n'), j.rstrip('\n'))
我用10进行测试来确保它不会崩溃,但是这似乎并没有按照我想象中的方式工作。如果我放置5,它只是给我之前相同的列表。有没有办法可以做到这一点?
itertools.product
并按此链接进行操作。 - Gleland