Прежде всего, английский не мой родной язык.
У меня есть текстовый файл, который выглядит следующим образом: Это список слов с числовым счетом:
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
У меня есть список таких подсписков, где каждый список содержит несколько слов:
[['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']]
Я сохраняю txt-файл в моем скрипте в dictionnairy: который выглядит так:
{'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']}
для каждого подсписка в моем списке, я проверяю, является ли какое-либо из его слов моимсловарь, и если он находит слово в моем подсписке в словаре, он получает числовое значение каждого слова в моем списке и суммирует значение каждого слова для каждого столбца.
Например:
[ 'voir', 'système', 'aller', 'être', 'difficile', 'faire', 'plus',
'sorbre'] : 'difficile' ['0', '47', '866\r\n']
'sorbre': ['118', '302', '225']
в этом подсписке есть два слова, присутствующих в моем дико, я хотел бы суммировать каждый вместе каждый индекс всех слов в моем подсписке и делать это для каждогоподсписок в моем списке;
Я ожидаю, что для каждого списка моего подсписка я получу сумму баллов в первом индексе (0), а затем сумму баллов во втором индексе (1) и сумму баллов длятретий индекс (2) для всех слов, присутствующих в моем dico и моем подсписке:
[ 'voir', 'système', 'aller', 'être', 'difficile', 'faire', 'plus',
'sorbre'] : pos : 118, neu : 349, neg 1091
Это мой сценарий:
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
вывод такой:
['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
Вывод не совпадает с тем, что я себе представлял, я думаю, что он суммирует все значения слов во всем подсписке. У вас есть идеи, как это исправить, я должен выглядеть так:
['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
Мне также хотелось бы, чтобы одна третья сумма для каждого подсписка была выше, чем две другие, я хочу отобразить список и только более высокий балл.