почему функция python не показывает полные функции [: 1500]?

Я работаю над простым проектом НЛП с открытым исходным кодом. Я пытаюсь показать [: 1500] функции, но он показывает только 1 функции. фрагмент кода в ответ на первый вопрос

word_features = list(all_words.keys())[:1500]
In [26]:
# define find_features functions
def  find_features(message):
    words = word_tokenize(message)
    features = {}
    for word in word_features:
        features[word] = (word in words)

        return features
# lets see an example
features = find_features(processed[0])
for key, value in features.items():
    if value == True:
        print(key)
go
In [27]:
features
Out[27]:
{'go': True} ```


i also even tried change value in this line 
features = find_features(processed[:1500]) 

but still not getting desired result.
Someone with expertise can help.
i will be really grateful to you.

i am pastin link full code below to understand the context .
https://github.com/faheem77/TextClassification/blob/master/Text_classification.ipynb

Всего 1 ответ


Отступ вашего заявления о возврате неверен. Должно быть:

    for word in word_features:
        features[word] = (word in words)

    return features

В противном случае вы выходите из вызова по первому элементу.

РЕДАКТИРОВАТЬ: Вот простой пример, иллюстрирующий это:

def get_numbers():
    numbers = {}
    for number in (1, 2, 3):
        numbers[number] = number
        return numbers

print(get_numbers())

Результат: {1: 1}

def get_numbers():
    numbers = {}
    for number in (1, 2, 3):
        numbers[number] = number
    return numbers

print(get_numbers())

Результат: {1: 1, 2: 2, 3: 3}

В первом примере добавляется только 1 к словарю перед его возвратом, потому что оператор return находится внутри цикла, в то время как второй правильно перебирает все числа перед возвратом словаря.


Есть идеи?

10000