Как я могу применить лексикон к списку предложений?

У меня есть словарь лексики в этой форме

6   ابن جزمه    1
7   ابو جهل -1
8   اتق الله    -1
9   اتقو الله   1

Я хочу создать новый список, содержащий оценку каждого предложения, основываясь на лексиконе, добавляющем оценку каждого слова, и если слов не существует, добавьте ноль, когда я реализую свой код, я получаю len(lex_score) = 3679 после того как я добавлю элиф условие я получаю len(lex_score) = 95079

len(lex_score) должно быть равно 6064

lex_score = []
def lexic(text):
    for tweet in sentences:
        score = 0
        for word in tweet.split():
            if word in lexicon:
                score = score+lexicon[word]
            elif word not in lexicon:
                score = 0
                lex_score.append(score)

Я хочу создать новый столбец во фрейме данных, содержащий оценку каждого предложения. Что я делаю неправильно? и есть ли лучший способ сделать это?

1 ответ

Решение

IIUC, вы можете просто суммировать оценки действительных записей лексики в каждом твите, а затем добавить эту оценку к lex_score на каждой итерации sentences,

Примечание: я предполагаю text == sentences - в противном случае пропущена строка, где text разбит на sentences, В любом случае, этот базовый подход все еще должен работать:

def lexic(text):
    lex_score = []
    for tweet in text: # assuming sentences == text
        score = sum([lexicon[word] for word in tweet.split() if word in lexicon])
        lex_score.append(score)
    return lex_score
Другие вопросы по тегам