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

时间:2017-09-03 20:38:19

标签: python nlp sentiment-analysis lexicon

我有一个这种形状的词典词典

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)

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

1 个答案:

答案 0 :(得分: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