我有一个这种形状的词典词典
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)
我想在数据框中创建一个包含每个句子分数的新列。我究竟做错了什么? 有没有更好的方法呢?
答案 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