0

我有一个这种形状的词典

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

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

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

4

1 回答 1

1

lex_scoreIIUC ,您可以将每条推文中有效词典条目的分数相加,然后将该分数附加到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
于 2017-09-03T21:01:15.863 回答