Добрый день,
У меня есть функция, которая должна иметь возможность опускать и маркировать текст и возвращать токены.
Вот функция ниже:
def preprocess_text(text):
""" A function to lower and tokenize text data """
# Lower the text
lower_text = text.lower()
# tokenize the text into a list of words
tokens = nltk.tokenize.word_tokenize(lower_text)
return tokens
Затем я хочу применить функцию к моим фактическим текстовым данным под названием data
, представляющим собой список со строками внутри него. Я хочу перебрать каждую строку внутри data
и применить функцию для опускания и токенизации текстовых данных.
Наконец, я хочу добавить токенизированные слова в окончательный список с именем tokenized_final
, который должен быть окончательным списком, содержащим токенизированные слова.
Вот следующий бит кода ниже:
# Final list with tokenized words
tokenized_final = []
# Iterating over each string in data
for x in data:
# Calliing preprocess text function
token = preprocess_text(x)
tokenized_final.append(token)
Однако, когда я все это делаю и распечатываю список tokenized_final
. Он выводит большой список, содержащий списки внутри него.
print (tokeninized_final)
Output:
[['pfe', 'bulls', 'have', 'reasons', 'on'],
['to', 'pay', 'more', 'attention'],
['there', 'is', 'still']]
Когда желаемый результат для tokenized_final
должен быть таким в одном списке:
['pfe', 'bulls', 'have', 'reasons', 'on','to', 'pay','more', 'attention','there','is', 'still']
Есть ли способ исправить функцию предварительной обработки и применить ее к данным, чтобы получить желаемый результат. Или есть ли способ сделать это? ...
Помощь действительно будет оценена здесь.
Заранее спасибо