如何将词典应用于句子列表?

How can I apply a lexicon to a list of sentences?

我有一本这种形状的词典

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

我想创建一个新列表,其中包含基于词典的每个句子的分数,添加每个单词的分数,如果不存在单词,则追加零 当我实现我的代码时,我在添加 elif 条件后得到 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)

我想在包含每个句子分数的数据框中创建一个新列。我究竟做错了什么? 有更好的方法吗?

IIUC,您可以将每条推文中有效词典条目的分数相加,然后在 sentences 的每次迭代中将该分数附加到 lex_score

注意:我假设 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