У меня есть следующая mongoDBschema-
ObjectID - это несколько записей в базе данных, в которой хранятся дополнительные данные.
ObjectId("a")
posts
[0]
comments
[0]
comment
fb_id
[1]
[2]
[3]
[4]
ObjectId("b")
ObjectId("c")
Я пытаюсь кумулятивно добавить значение чувства, я назначаю словарь для каждого комментария, соответствующего каждому fb_id. Я пытался использовать метод счетчика, но его значения очищаются перед автоматическим вводом комментария другого идентификатора.
Ранее я задавал этот вопрос - Кумулятивно добавляйте значения в словарь Python , и вывод, который я получил, ниже -
Counter({'100002204201460': 0.0})
Counter({'100002204201460': 0.0, '100025548426588': -0.592})
Counter({'1490834948': 0.5792,
'100002204201460': 0.0,
'100025548426588': -0.592})
Счетчик очищается перед тем, как войти в другой комментарий того же поста.
Моя реализация-
for doc in result:
dict_of_comments = Counter()
for post in doc['posts']: # traverse each user's post
if 'comments' in post:
for com in post['comments']:
s=com['comment']
vs=analyzer.polarity_scores(s) //sentiment analyser
dict_of_comments[com['fb_id']] += vs['compound']
pprint.pprint(dict_of_comments)
Как это сделать правильно, я просто хочу кумулятивно добавлять значения, не теряя ни одно из значений, как в настоящее время, я теряю с помощью счетчика.
Ввод в один из идентификаторов объекта
{
"_id" : ObjectId("5b7fa2a745d12b10324d3a01"),
"date_time" : "24, Aug 2018 11:44",
"original_query" : "sanjeevnewar",
"posts" : [
"comments" : [
{
"comment" : "आशीष जी को कोटि कोटि प्रणाम।",
"commentator" : "Amrit Kumar Deb",
"fb_id" : "100002204201460"
},
{
"comment" : "Double standard is not going to work Stop ogling over Muslim women",
"commentator" : "Akif Khan",
"fb_id" : "100025548426588"
}
]
]
}
Вывод , если используется стандартный словарь без счетчика, как показано ниже
{'100002204201460': 0.0}
{'100002204201460': 0.0, '100025548426588': -0.296}
Это просто пример вывода, не все значения включены.
Но проблема в том, что если моя программа встретит такое же значение fb_id (которое составляет 100002204201460
) в более поздних публикациях, то она просто перезапишет словарь новыми значениями, а не добавит значения к нему.
Как это сделать?