如何将词典应用于句子列表?
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
我有一本这种形状的词典
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