Я хочу посчитать вхождения положительной/отрицательной частоты документа для каждого токена. Но мой скрипт python работает и работает на все утро. Не могли бы вы рассказать мне, что не так с чем-то? Оценивается заранее.Как эффективно подсчитывать вхождения каждого ключа в список словарей?
import numpy as np
positive_feature=[[{'a':2,'b':1},1],
[{'b':2,'c':1},1]
]
negative_feature=[[{'e':2,'b':1},0]
]
alltokens=['a','b','c','e']
dic=dict((t,i) for i,t in enumerate(alltokens))
vacabulary_size=len(dic)
positive_doc_frequency,negative_doc_frequency=np.zeros(vacabulary_size), np.zeros(vacabulary_size)
for t in alltokens:
for x in positive_feature:
if t in x[0].keys():
positive_doc_frequency[dic[t]]+=1
for x in negative_feature:
if t in x[0].keys():
negative_doc_frequency[dic[t]]+=1
Согласно приказу элементного alltokens списка, я хочу к positive_doc_frequency/negative_doc_frequency это вроде как:
alltokens=['a','b','c','e']
positive_doc_frequency=[1,2,1,0]
negative_doc_frequency=[0,1,0,1]
но сценарий питона все еще работает сейчас, (с 8:00 до 4 : 00PM), Любая оптимизация для моего скрипта? Еще раз спасибо.
ОБНОВЛЕНИЕ: Вопрос вводит в заблуждение из-за плохих данных образца. Позвольте мне исправить это.
Вход:
alltokens=['a','b','c','e']
positive_feature=[[{'a':aa,'b':bb},1],
[{'b':vv,'c':cc},1]
]
negative_feature=[[{'e':ee,'b':bb},0]
]
Выход я хочу это:
positive_doc_frequency=[1,2,1,0]
negative_doc_frequency=[0,1,0,1]
1,2,1,0 в списке positive_doc_frequency означает 'а' встречается один раз в списке positive_feature, «б «происходит два раза,« c »происходит один раз,« e »имеет нулевое время в списке положительных_файлов.
Как этот код, возможно, работает уже в течение 8 часов? –
Вы уверены, что работали в течение этого периода времени? Я бы поставил некоторые заявления о печати, чтобы вы могли затем контролировать, где вы лучше. @EliSadoff Моя ставка заключается в том, что OP просто дает образцы данных, а не является фактической информацией. – Fallenreaper
Он не работает так долго, он только что завершил сценарий и вышел, просто добавьте инструкцию печати, и вы получите вывод 'print (positive_doc_frequency)' 'print (negative_doc_frequency)' – user2728397