回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>首先英语不是我的母语。你知道吗</p>
<p>我有一个txt文件,它是这样的:它是一个带有数字分数的单词列表:</p>
<pre><code>id;word;pos;neu;neg
0;***;21;127;0
1;vraiment;407;156;37
2;oiseau-à-berceau;102;259;0
3;Stoph;95;308;37
4;Conscience;372;144;35
5;rançonnement;0;635;433
6;provenir;304;227;47
7;esthétique;285;54;1
8;traversée;360;167;38
9;avant toute chose;241;108;34
10;sucrée;52;276;0
11;Lasker-Schüler;146;284;0
12;difficile;0;47;866
13;adjuration;300;44;40
14;Besnier-Boeck-Schaumann;0;39;315
15;sir Sacheverell Sitwell;38;277;0
16;Maria Callas;235;311;0
17;sorbre;118;302;225
</code></pre>
<p>我有这样的子列表,每个列表都包含一些单词:</p>
<pre><code>[['trouver', 'très', 'esthétique'], ['pêche', 'peu'], ['gros', 'prise', 'là'], ['prise', 'puis', 'borne', 'cela', 'voir'], ['derrière', 'télé', 'cela', 'aller'], ['voir', 'système', 'cela', 'aller', 'être', 'difficile', 'faire', 'plus', 'sorbre'], ['laudrel', 'être', 'mourir', 'hier', 'soir'], ['venir', 'lo']]
</code></pre>
<p>我将脚本中的txt文件存储在一个字典中:如下所示:</p>
<pre><code>{'vraiment': ['407', '156', '37\r\n'], 'oiseau-à-berceau': ['102', '259', '0\r\n'], 'Stoph': ['95', '308', '37\r\n'], 'Conscience': ['372', '144', '35\r\n'], 'rançonnement': ['0', '635', '433\r\n'], 'provenir': ['304', '227', '47\r\n'], 'esthétique': ['285', '54', '1\r\n'], 'traversée': ['360', '167', '38\r\n'], 'avant toute chose': ['241', '108', '34\r\n'], 'sucrée': ['52', '276', '0\r\n'], 'Lasker-Schüler': ['146', '284', '0\r\n'], 'difficile': ['0', '47', '866\r\n'], 'adjuration': ['300', '44', '40\r\n'], 'Besnier-Boeck-Schaumann': ['0', '39', '315\r\n'], 'sir Sacheverell Sitwell': ['38', '277', '0\r\n'], 'Maria Callas': ['235', '311', '0\r\n'], 'sorbre': ['118', '302', '225']}
</code></pre>
<p>对于我列表中的每个子列表,我检查其中是否有任何单词是我的字典,如果它在字典中的子列表中找到一个单词,它将检索我列表中每个单词的数值,并对每个列中每个单词的值求和。你知道吗</p>
<p>例如:</p>
<pre><code> [ 'voir', 'système', 'aller', 'être', 'difficile', 'faire', 'plus',
'sorbre'] : 'difficile' ['0', '47', '866\r\n']
'sorbre': ['118', '302', '225']
</code></pre>
<p>上面的子列表中有两个单词出现在我的dico中,我想把子列表中所有单词的索引加起来,并对列表中的每个子列表进行汇总</p>
<p>我希望我的子列表的每个列表都能得到第一个索引(0)中的分数总和,然后是第二个索引(1)中的分数总和,以及第三个索引(2)中dico和子列表中所有单词的分数总和:</p>
<pre><code> [ 'voir', 'système', 'aller', 'être', 'difficile', 'faire', 'plus',
'sorbre'] : pos : 118, neu : 349, neg 1091
</code></pre>
<p>这是我的剧本:</p>
<pre><code>from itertools import islice
dico = {}
#lexique = open('lexique.txt', 'rb')JeuxdeMotsPolarise.txt'
with codecs.open('lexique_entrainement.txt', 'r', 'utf-8', errors = 'ignore') as lexique:
for ligne in islice(lexique, 31, None):
#print(ligne)
ligne = ligne.split(';')
#print(ligne)
#print(ligne[-4:])
dico.update({ligne[-4]:ligne[-3:]})
print(dico)
somme_V0 = []
somme_V1 = []
somme_V2 = []
for k, v in dico.items():
for subl in Lemme_filtre2:
for w in subl:
if k == w:
somme_V0.append(int(v[0]))
somme_V1.append(int(v[1]))
somme_V2.append(int(v[2]))
#print(subl)
print(str(subl) + " : " + " a un score pos de: " + str(sum(somme_V0)) + " un score de neu de : " + str(sum(somme_V1)) + " et un score de neg de : " + str(sum(somme_V2)))118 349 1091
</code></pre>
<p>输出如下:</p>
<pre><code>['trouver', 'très', 'esthétique'] : a un score pos de: 285 un score de neu de : 54 et un score de neg de : 1
['voir', 'système', 'cela', 'aller', 'être', 'difficile', 'faire', 'plus', 'sorbre'] : a un score pos de: 285 un score de neu de : 101 et un score de neg de : 867
['voir', 'système', 'cela', 'aller', 'être','difficile', 'faire','plus', 'sorbre'] : a un score pos de: 403 un score de neu de : 403 et un score de neg de : 1092
</code></pre>
<p>输出结果和我想象的不一样,我想它是把所有子列表中所有单词的值加起来的,你知道我该怎么修复它吗,我应该是这样的:</p>
<pre><code>['trouver', 'très', 'esthétique'] : a un score pos de: 285 un score de neu de : 54 et un score de neg de : 1
['voir', 'système', 'cela', 'aller', 'être', 'difficile', 'faire', 'plus', 'sorbre'] : a un score pos de: 118 un score de neu de : 349 et un score de neg de : 1091
</code></pre>
<p>我还想如果每个子列表的第三个和高于其他两个,我想单独显示列表和较高的分数。你知道吗</p>