我有一个单词列表,像这样:
wordlist = ['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>', 'i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>']
我想列出一个句子列表: 这是我正在使用的代码
sentence = []
start = []
end = []
wordlist = [word.replace('.','<s>') for word in wordlist]
for word in wordlist:
end = word['<s>']
for word in wordlist:
sentence = word[0][end]
sentence.append([])
我正在尝试获取如下列表:
sentence=[['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'], ['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>], ...etc]
我的想法是用“”标记句子的结尾,并告诉我的句子列表在“”之后创建一个新列表。一切都会有帮助的,谢谢。
答案 0 :(得分:1)
您不必将'<s>'
的字符串替换为'.'
来跟踪句子何时结束。如果您想在'<s>'
结尾句子,则只需在每次向当前句子中添加一个单词时进行检查,就像这样:
sentences = []
current_sentence = []
for word in wordlist:
current_sentence.append(word)
if word == '<s>':
sentences.append(current_sentence)
current_sentence = []
print(sentences)
在这里,我将您的sentence
列表替换为sentences
。这将跟踪您从单词列表中创建的所有句子。 current_sentence
将跟踪您当前句子中的所有单词。当您到达'<s>'
时,此代码会将您当前的句子列表添加到sentences
,然后将current_sentence
重置为空列表。
答案 1 :(得分:0)
您可以从iter
创建一个wordlist
,然后对while
使用try/except
循环来迭代并创建子列表,这些子列表将附加到最终列表中。 / p>
a = iter(wordlist)
res = []
temp = []
while True:
try:
b = next(a)
if b != '<s>':
temp.append(b)
else:
temp.append(b)
res.append(temp)
temp = []
except StopIteration:
break
print(res)
# [['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'], ['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant', '<s>']]
答案 2 :(得分:0)
将结果添加到列表中,找到结束后将其重置,在这种情况下为<s>
wordlist = ['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>', 'i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>']
results = []
result = []
for word in wordlist:
if word == '<s>':
result.append(word)
results.append(result)
result = []
else:
result.append(word)
results
中的最终输出:
[['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'],
['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant', '<s>']]