Вывод заполнения цикла for в кадре данных вместо возврата соответствующих значений для каждой строкиPython

Программы на Python
Anonymous
 Вывод заполнения цикла for в кадре данных вместо возврата соответствующих значений для каждой строки

Сообщение Anonymous »

Я использую SpaCy для обработки серии предложений и возврата пяти наиболее распространенных слов в каждом предложении. Моя цель — сохранить результаты этого частотного анализа (с использованием Counter) в столбце рядом с каждым соответствующим предложением. Я думаю, что здесь речь идет просто о недостатке кофе и сна, но я застрял на том, почему это продолжает выводить фрейм данных, в котором первое значение заполняется полностью (и повторяется) вместо уникальных значений, которые соответствуют выводу самого предложения.
Код:

Код: Выделить всё

# test_data is a Dataframe with three columns: a unique identifier, a title, and a sentence for each title. #

for value in test_data['desc']: # for each sentence in dataset
desc = nlp(value) # run spacy natural language processing on the description
words = [
token.text # for each token, etc
for token in desc
if not token.is_stop and not token.is_punct # essentially, just keywords, no filler
]
keys = list(Counter(words).most_common(5)) # store values from Counter
key_list = ", ".join(map(str, keys)) # convert list to string
test_data['key'] = key_list # carry list over to dataframe
Я получаю что-то вроде:



uniq
title
desc
key




1
Название первое...
Предложение первое..
('kword1', 12), ('kword2', 8), ('kword3', 7)


2
Название второе...
Второе предложение...
('kword1', 12), ('kword2', 8), ('kword3', 7)


3
Третий заголовок...
Предложение третье...
('kword1', 12), ('kword2', 8), ('kword3', 7)


4
Четвертый заголовок...
Четвертое предложение...
('kword1', 12), ('kword2', 8), ('kword3', 7)



Где kword1, 2 и 3 идеально подходят для первой строки (например, это правильный вывод для первого предложения), но дублируются для заполнения всех строк (неправильный вывод для второго, третьего, четвертого предложения).
Я не уверен, что это имеет какой-то смысл, и я немного новичок в Python без опыта/основы в области компьютерных наук, поэтому я готов к помощи. Заранее спасибо!!!

Подробнее здесь: https://stackoverflow.com/questions/798 ... responding

Вернуться в «Python»