Python 获取连续词的组合
Python get combination of continous words
我有一个这样的列表:
tokens = ["hi", "how", "are", "you"]
我正在尝试获取最多 n=3
个单词的组合
我的预期输出是:
output = [ ["hi"], ["hi", "how" ], ["hi", "how" , "are"], ["how"], ["how", "are"], ["how", "are", "you"], ["are"], ["are", "you"], ["you"]
我的代码:
comb = []
for i in range(3):
comb += list(itertools.combinations(tokens,i+1))
但我的代码提供了所有内容的组合,而不仅仅是下一个单词。这里有什么问题吗?
请检查此代码片段是否解决了您的目的,您可以尝试使用此代码:
import itertools
tokens = ["hi", "how", "are", "you"]
output = [tokens[start:end] for start, end in itertools.combinations(range(len(tokens)+1), 2)]
output
输出:
[['hi'], ['hi', 'how'], ['hi', 'how', 'are'], ['hi', 'how', 'are', 'you'], ['how'], ['how', 'are'], ['how', 'are', 'you'], ['are'], ['are', 'you'], ['you']]
我有一个这样的列表:
tokens = ["hi", "how", "are", "you"]
我正在尝试获取最多 n=3
个单词的组合
我的预期输出是:
output = [ ["hi"], ["hi", "how" ], ["hi", "how" , "are"], ["how"], ["how", "are"], ["how", "are", "you"], ["are"], ["are", "you"], ["you"]
我的代码:
comb = []
for i in range(3):
comb += list(itertools.combinations(tokens,i+1))
但我的代码提供了所有内容的组合,而不仅仅是下一个单词。这里有什么问题吗?
请检查此代码片段是否解决了您的目的,您可以尝试使用此代码:
import itertools
tokens = ["hi", "how", "are", "you"]
output = [tokens[start:end] for start, end in itertools.combinations(range(len(tokens)+1), 2)]
output
输出:
[['hi'], ['hi', 'how'], ['hi', 'how', 'are'], ['hi', 'how', 'are', 'you'], ['how'], ['how', 'are'], ['how', 'are', 'you'], ['are'], ['are', 'you'], ['you']]