Всем Приветы!Запилил простейший "Генератор Идей" на Питоне.Пока работает он очень просто. Он записывает в файл комбинации из слов из другого файла (назовём его словарём).https://drive.google.com/file/d/0BzT4UmNzwpVWSW5jeGZhVC1qc2c/view?usp=sharingРаботает медленно даже на i7, причём ресурсы компьютера почти не используются. Этим Питон и плох.Особенно с 4 и 5 словами, там вообще абзац, поэтому оставил только комбинации из 2 и 3 слов.В будущем сделаю ГУИ и добавлю темы для ключевых слов. Их можно будет включать и отключать, смотря что понадобится.Неплохо бы ускорить дело при помощи видеокарты, но я пока не знаю, КАК, я только вкатываюсь.В архиве скрипт на Питон и словарик для примера работы.После запуска нужно подождать, выходной файл будет несколько МБ.
>>1037161 (OP)> l2 = itertools.combinations(l, n)> l2 = list(l2)> l3 = str(l2)Это уж совсем пиздец, перепиши этот говнокод.
Переписал на Go https://play.golang.org/p/R1d-1az1Qv
>>1037161 (OP)> Работает медленно даже на i7
>>1037173Там было my_list_combinated и таких куча подяд, я же не просто так всё упростил, это нечитаемо было.
>>1037219Иди учи питон, ты даже не понимаешь, на сколько ты ебанутый говнокод высераешь.
>>1037180не позорься со своим школошлаком, что за неадекватный словарь?И ты даже алгоритм не смог повторить
>>1037223без советов от школьников, пожалуйста, у меня всё норм там
>>1037228> у меня всё норм там> l2 = itertools.combinations(l, n)> l2 = list(l2)> l3 = str(l2)> l3 = l3.replace('[','')> l3 = l3.replace(']','')> l3 = l3.replace("'",'')> l3 = l3.replace(",",'')> l3 = l3.replace("(",'')> l3 = l3.replace(') ', '\n')> l3 = l3.replace(")",'')Скажи, что ты просто толсто троллишь, я не верю, что можно быть на столько тупым.
>>1037236А как бы ты сам это написал, не тупой?
>>1037258регулярной строкой ищешь все символы и меняешь их на пустой знак в одну строку.
>>1037258Например так: https://ideone.com/IKOsZm
>>1037273ещё один говнокодер подкатил
>>1037319Давай, покажи свой не говнокод, чтобы я проникся им и осознал всю свою убогость.
Ящитаю, что сюда надо добавить машинное обучение и bit data manning
>>1037273Я устал ждать пока твой код работу закончит, у ОПа всё в 20 раз быстрее.
>>1037332А потом запускать это на суперкомпьютере.
>>1037334У нас за такое уже с работы бы уволили.Додумался форов напихать ещё, до завтрашнего дня ждать будем.
>>1037273Да ты нам своим говнокодингом жёсткие диски поломаешь, бля.
>>1037334Вариант ОПа:768 ms ± 13.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)Мой:777 ms ± 2.72 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)Где разница то?
>>1037337на петухоне не нужно использовать фор?
>>1037347Алсо, если убрать принт, то мой код в 2 раза быстрее. In [58]: %timeit %run ideagen.py104 ms ± 38.7 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)In [59]: %timeit %run ideagen_orig.py231 ms ± 678 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>1037375Попробуй так:https://ideone.com/wlrD8W
Сколько времени выполняется скрипт с ОПовским словарём?Или только у меня так долго? Баг что ли?
>>10373970.135s
>>1037399Как измерить на винде?
>>1037392In [63]: %timeit %run idegen_map.py53.7 ms ± 4.07 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
>>1037405Осталось ебашить в файл через mmap, чтобы еще ~10ms выжать.
У меня скрипт от ОПа делает за десятки секунд, что не так?
>>1037404https://ideone.com/zSPt8P
>>1037392При больших значениях лучше все же построчно писать в файл.
t1 = time.time()# do tested stuffprint(time.time() - t1)46.296653032302856Почему столько времени заняло?Файл там 6,5 Мб где-то всего.
За сколько времени у вас этот код выполняется?https://ideone.com/yukEmn
>>1037420>>1037347>Вариант ОПа:>768 ms ± 13.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
4.4999775886535645А это значение при запуске через консоль, а не через IDLE и всё равно тут 4,5 секунды, почему у меня нет ваших цифр на винде? Бред какой-то.
>>1037423Какая ОС? Почему настолько быстрее чем у меня и я спрашивал значение то, которое этот код даёт:https://ideone.com/yukEmn
>>1037425На шперме консолька тормозная, по сравнению с прыщевой, а у тебя там основное время скрипт с ней и работает.
>>1037429Можно нормально писать?почему всё так долго? Плюсы быстро компилировал.
>>1037429павершелл 4,7 далпринт убрать?
>>1037431Можно за хуй подержаться. Что тебе не понятно, на венде cmd тормозной, пик глянь, во сколько раз он медленнее по сравнению с популярными прыщевыми консольками.
>>1037429Без принт0.3124992847442627 сталоспсно всё равно медленно, правда, это оповский, что там с mmap?А какое блядство с IDLE сделано, это просто пиздец, игры там на пигейм падают, сраный скрипт в 10 раз дольше работает, пц, как такое в релиз только пускают?Я так сразу и понял, что-то не ладно, не может быть настолько медленно всё.
>>1037439В виртуалбоксе в иксах быстрее будет, чем cmd на хосте?Мне кажется, да.
>>1037442>что там с mmapНемного быстрее работать будет.
>>1037448Так как выглядит конечный вариант кода?Я гуглил, ещё вроде кэширование подключают.
>>1037453В документации же есть пример с записью файла через отображение файла, а кэширование тут никак не поможет, ты же один раз читаешь и один раз пишешь, причем в разные файлы.
>>1037456пишешь в один файлкэширование функций
>>1037457Ну так у опа там 2 файла, один со словарем, второй с результатом. Да и что там кэшировать то, если функция вызывается по одному разу с разными значениями?
>>1037458я не спец, но читал советы давали другим, кэшируй, мол, а у них тоже комбинации были.А как ускорить при помощи видеокарты?
ок, всем споки, завтра будет ускорять при помощи видеокарт
>>1037459>я не спец, но читал советы давали другим, кэшируй, мол, а у них тоже комбинации были.Ну закэшируй хуйли, только толку не будет при текущем коде. >А как ускорить при помощи видеокарты?А что ты ускорять собрался? Чтение/запись в файл? Вывод в консольку? У тебя эти действия 99% времени занимают.
>>1037463Комбинирование.Вывода на консоль уже нет.Чтение и запись - отдельная тема.
Этот вариант с mmap правильный?https://ideone.com/iEh32z
>>1037559Для 5 комбинирование занимает 6% времени и 94% это запись на диск.
NameError: name 'mmap' is not definedЧто импортировать для mmap?
Допилил код, теперь работает и так, как надо.https://ideone.com/8wgrKi
>>1037604https://ideone.com/S7bgIv
>>1037619код не допилен, кроме того, идёт ошибка
>>1037631Какая ошибка? Что значит не допилен?
>>1037635Стоит ли говорить с человеком, который не понимает, что фукции нужно вызывать...
>>1037640Зависит от твоих целей. Я считаю, что стоит, поскольку я люблю помогать новичкам.
>>1037642у тебя даже программа не внутри функции и всё равно ошибку вызывает
>>1037655Процитируй уже мне ошибку.В питоне программа необязательно должна быть внутри функции, более того, часть программы всегда будет вне функций, например, вызов main.
Мне кажется, что "for n in (2, 3):" не удобно для дальнейшей разработки, например, пользователь будет сам указывать сколько слов в комбинации он хочет и тут с вызовом функции удобнее будет делать, тем более там ещё гуи tk будет. QT не хочу, так как он не идёт в дефолте, это сразу пц, и два, там были свои специфические проблемы.Надо ещё придумать какими алгоритмами отсеивать шлак, потом ещё раз отсеить более глубоко и медленно проходящим скриптом, чтобы в конце остались не сотни тысяч и миллионы, а например, самые интересные идеи - для статей, или самые прибыльные - для стартапов.Короче, всё на блюдечке приподносить.Я думаю тут нужно использовать топы - для статей, как-то получать их из интернета, а прибыльные - там использовать статистики, которые тоже где-то надо достать.
>>1037698А словари будут использоваться локальные +, напимер, какие-нибудь статистики от гугла и проходить гуглом по конкретным сайтам, тоже брать топы по просмотрам, по покупкам итд.
>>1037698> Надо ещё придумать какими алгоритмами отсеивать шлак, потом ещё раз отсеить более глубоко и медленно проходящим скриптом, чтобы в конце остались не сотни тысяч и миллионы, а например, самые интересные идеи - для статей, или самые прибыльные - для стартапов.>Я думаю тут нужно использовать топы - для статей, как-то получать их из интернета, а прибыльные - там использовать статистики, которые тоже где-то надо достать.
>>1037701Ты сам, ты что тупой?Даже тут получилось больше 400 сот тысяч, ты понимаешь, что в ручную это нереально всё просматривать, это полный пц.
>>1037701Ты даже о такой тупейшей вещи не знаешь:https://trends.google.ru/trends/explore?q=linuxполный ноль
>>1037698> Мне кажется, что "for n in (2, 3):" не удобно для дальнейшей разработки, например, пользователь будет сам указывать сколько слов в комбинации он хочет и тут с вызовом функции удобнее будет делать,Окей разумно.
>>1037347как измерить скорость выполнения проги?мимо-начинающий
>>1038248https://docs.python.org/3/library/timeit.html
>>1038250благодарю!
Сегодня, пытаюсь прикрутить tk к IdeaGen.TabError: inconsistent use of tabs and spaces in indentation, показывает на двоеточие в конце.https://ideone.com/FFgmLY
>>1038320хелп, плиз, питоноошибка
>>1038336https://ideone.com/sxonPL
>>1038338А в чём была ошибка собстенно?
>>1038345В непоследовательном использовании табов и пробелов в индентации.
>>1038346Я табов вообще не всталял, откуда они взяться могли? :(Так и понял что проблема в этом, идля не пишет, где пробелы, а где табы. Большая проблема.И вообще ужасная IDE.
>>1038348Где-нибудь в настройках редактора ищи, чтобы показывал табы и промбелы.