Python, частота слов в каждом предложении для обобщения

Я пытаюсь суммировать текст на основе графа.

sentences_rank_frek=[]
for sentence in copy_sent:
    for word in sentence:
        if word in freq:
            sentences_rank_frek[sentence]+=freq[copy_sent[sentence][word]] 

Этот код выдает ошибку: индексы списка должны быть целыми числами или фрагментами, а не списком. Я могу показать эту частоту[copy_sent[0][1]] = 4


person Sdeveci    schedule 15.03.2021    source источник
comment
Вы не можете получить доступ к списку sentences_rank_frek, если ваш sentence не является целым числом.   -  person Kris    schedule 15.03.2021
comment
предложение является целым числом   -  person Sdeveci    schedule 15.03.2021
comment
А как насчет copy_sent[sentence][word]?   -  person Kris    schedule 15.03.2021
comment
copy_sent — это текстовый список.// copy_sent[0][1] = продажа // copy_sent[0]= Первое предложение в тексте   -  person Sdeveci    schedule 15.03.2021
comment
Вы хотите сказать, что пытаетесь получить доступ к списку freq с помощью текста?   -  person Kris    schedule 15.03.2021


Ответы (1)


Вам нужно проверить тип вашей переменной sentence при попытке сделать этот доступ sentences_rank_frek[sentence]. Я предполагаю.... это предложение, поэтому оно должно быть строкой или списком строк. Вы пытаетесь получить доступ к индексу в списке, используя строку.

Возможно, вы захотите, чтобы ваш sentences_rank_frek=[] был словарем, а не массивом.

person vinni3000    schedule 15.03.2021
comment
{#частота для предложения в copy_sent: для слова в предложении: если слово в freq: freq[word]=freq[word]+1 else : freq[word]=1} - person Sdeveci; 15.03.2021
comment
Я могу вычислить частоту каждого слова - person Sdeveci; 15.03.2021
comment
Не могли бы вы четко перечислить различные типы данных каждой переменной? - person vinni3000; 16.03.2021