Составление списка в списке: составление списков слов из слов в списке слов - PullRequest
0 голосов
/ 24 октября 2018

У меня есть список слов слов примерно так:

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([])

I 'Я пытаюсь получить список, подобный этому: sentence=[['i', 'would', 'like', 'to', 'go', 'to', 'the', 'store', '<s>'], ['i', "'d", 'like', 'to', 'go', 'to', 'a', 'fancy', 'restaurant','<s>], ...etc]

Моя идея пометить конец предложения с помощью '' и сказать моему списку предложений, чтобы создать новый список после ''.все поможет, спасибо.

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Добавьте свои результаты в список и сбросьте его после того, как вы нашли свой конец, в данном случае это <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>']]
0 голосов
/ 24 октября 2018

Вам не нужно заменять '<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 в пустой список.

0 голосов
/ 24 октября 2018

Вы можете создать iter из wordlist, а затем использовать цикл while с try/except для итерации и создания своих списков, которые будут добавлены в ваш окончательный список.

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>']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...