我正在写一个函数,它应该计算一个句子中积极词和消极词的数量,为每个句子创建两个词汇表,列出词汇表中的词,然后总结每个词汇表,得到每个句子中积极词和消极词的长度
我写了一个函数,但我在为每个句子打印字典时遇到了问题,它总是附加其他句子的单词,这不是我想要的
代码如下:
def pwd_3(texte, liste1, liste2):
''' Calcul de la polarité d'une phrase
On récupère le nombre de mots positifs et négatifs
et on divise par le nombre total de mots dans la phrase '''
d_neg = dict()
d_pos = dict()
d_0 = dict()
texte = spacy_process(texte)
#print(texte)
liste_phrase =[]
label = []
for elt in texte:
elts = elt.split()
print(' "Phrase à traiter " :' , elt, '\n')
for w in elts:
if w in lexiconpos:
#print(w, ': est dans le lexique positif', )
d_pos[w] =+ 1
elif w in lexiconneg:
#print(w ,': est dans le lexique négatif', )
d_neg[w] =+ 1
else:
#print(w, ': ne se trouve dans aucun des deux dictionnaires', )
d_0[w] =+ 1
print(d_pos)
print(d_neg)
a= ["Le film est superbe mais cette édition DVD est nulle !","J'allais dire déplorable, mais je serais peut-être un peu trop extrême."]
lexiconpos =['aller','superbe']
lexiconneg = ['nul', 'déplorable', 'extrême']
pwd_3(a, lexiconpos, lexiconneg)
结果如下:
"Phrase à traiter " : le film être superbe mais ce édition dvd être nul
{'film': 1, 'superbe': 1, 'édition': 1}
{'nul': 1}
"Phrase à traiter " : je aller dire déplorable mais je être pouvoir être un peu trop extrême
{'film': 1, 'superbe': 1, 'édition': 1, 'aller': 1}
{'nul': 1, 'déplorable': 1, 'pouvoir': 1}
以下是预期的答案:
"Phrase à traiter " : le film être superbe mais ce édition dvd être nul
list of positive words for this sentence: {'film': 1, 'superbe': 1, 'édition': 1}
list of negative words : {'nul': 1}
"Phrase à traiter " : je aller dire déplorable mais je être pouvoir être un peu trop extrême
list of positive words for this sentence: {'aller': 1}
list of negative words : {''déplorable': 1, 'pouvoir': 1}
很简单,您只需清除每个
for
循环的dict
:因为
dict
在每次迭代中都被重新定义,所以不需要在for
循环中定义它们,所以可以消除这些行(注意您的增量语法是错误的。我在这段代码中修复了它)相关问题 更多 >
编程相关推荐