Я работаю над проектом в python, который начинает подавлять мои низкоуровневые окна, и я хотел попросить совета о том, как найти дополнительную вычислительную мощность I Думаю, мне нужно.Запустите скрипт python на amazon EC2 или другом сервере
Немного подробно о моем проекте: Я обрабатываю и анализирую довольно большую базу данных текста из Интернета. Примерно 10 000 файлов, каждый эквивалент которых составляет примерно 500 слов или около того (хотя и с большим разбросом по этому значению). Первым шагом является выбор определенных ключевых фраз и использование GenSim для проведения довольно простого анализа подобия. Это занимает мой компьютер, но он может справиться с этим, если я нежен. Во-вторых, как только я определил короткий список кандидатов, я отпечатываю отпечаток каждого документа кандидата, чтобы более точно оценить сходство. Для каждого файла требуется отпечаток пальца и сравнение над 2-10 другими файлами - так что это не сравнение n-to-n, которое потребует месяцев компьютерного времени, о котором я не думаю.
Это второй шаг, на котором мой компьютер начинает бороться. Я рассматривал возможность запуска сценария в среде EC2, но когда я начал читать об этом здесь, я увидел комментарий, который эффектно для этого требует уровня сложности linux sys admin. Я почти так же далеко от этого уровня сложности, поскольку любой член этого сайта может быть.
Так есть еще один вариант? Или получается довольно простой скрипт python, запущенный на ES2, не так сложно.
Ниже приведена часть сценария, которая кажется наиболее ресурсоемкой. Для каждого текстового файла он создает список отпечатков пальцев, выбирая определенные текстовые файлы из обрезки amdt_word_bags в соответствии с критериями в PossDupes_1 (оба из которых являются списками). Он использует модуль fingerprintgenerator, который я нашел здесь: https://github.com/kailashbuki/fingerprint.
fingerprints_hold=[]
counter=0
error_count=0
for amdt, sims in zip(amdt_word_bags_trim, PossDupes_1):
counter+=1
if counter%100==0:
print counter
if len(sims)>1:
poss_sim=[sim for sim in sims if sim !=(counter-1)]
fpg_orig = FingerprintGenerator(input_string=amdt)
try:
fpg_orig.generate_fingerprints()
orig_prints=fpg_orig.fingerprints
except IndexError as s:
orig_prints=["small"]
print s
error_count+=1
print error_count
cand_text=[[cand for cand in amdt_word_bags_trim[num]] for num in poss_sim]
cand_text=[''.join(c) for c in cand_text]
fing_cands_hold=[]
for text in cand_text:
fpg_cands = FingerprintGenerator(input_string=text)
try:
fpg_cands.generate_fingerprints()
fing_cands_pre=[int(a[0]) for a in fpg_cands.fingerprints]
fing_cands_hold.append(fing_cands_pre)
except IndexError as s2:
fing_cands_hold.append('small cand')
except TypeError as s3:
fing_cands_hold.append("none")
fingerprints_hold.append([orig_prints, fing_cands_hold])
else: fingerprints_hold.append("no potential matches")
ознакомьтесь с этим руководством (http://aameer.github.io/cloud-computing-101/) – Aameer