Задать вопрос
  • Как классифицировать текст с помощью нейронной сети?

    Arseny_Info
    @Arseny_Info
    R&D engineer
    1) Почистить данные (убрать стоп-слова, спецсимволы, привести в нормальную форму и т.п.)
    2) Векторизовать данные (bag of words, tf-idf, n-grams... )
    3) Разделить выборку на train/test.
    4) Собственно, обучить классификатор (не начинайте с нейросетей, начните с чего-то более простого типа random forest).
    5) Сделать кросс-валидацию, ужаснуться от результата, начать чинить проблемы на каждом шаге.

    Очень базовый туториал scikit-learn.org/stable/tutorial/text_analytics/wo... Гораздо менее базово - nlp.stanford.edu/IR-book/.
    Ответ написан
    Комментировать
  • Как сделать поиск по ВСЕМ пользователям вконтакте через API, без привязки к owner_id?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Вы ищите функцию "скачать весь контент из ВК бесплатно, без регистрации и смс"
    Такой функции там нет.
    Ответ написан
    4 комментария
  • Что нужно Django для продакшена?

    sim3x
    @sim3x
    https://www.digitalocean.com/community/tutorials/h...

    только вместо
    sudo pip install uwsgi
    делай
    sudo apt-get install uwsgi-core uwsgi-plugin-python3
    Ответ написан
  • Правильно ли я сделал парсер?

    @deliro
    Нет, это не из-за GIL.
    Создавать количество тредов по количеству страниц неправильно. Создание треда - трудоёмкая задача для ОС.
    И правильно ли я вообще делаю?

    Не совсем правильно, правильнее использовать то, что уже есть.
    Если scrapy тебя не устраивает, ты можешь использовать ThreadPool'ы, вместо того, чтобы вручную управлять lowlevel api тредов. Примерно так:

    from concurrent.futures import ThreadPoolExecutor
    from requests import Session
    
    session = Session()
    
    urls = [
        'https://toster.ru/q/372757',
        'https://toster.ru/',
    ]
    
    with ThreadPoolExecutor(7) as pool:  # 7 - количество тредов
        for response in pool.map(session.get, urls):
            do_something_with_response(response)
    Ответ написан
    2 комментария
  • На каких ресурсах, сайтах можно узнать как обстоят дела в той или иной профессиональной области?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я могу ответить сразу за все сферы: все думают, что платят за то, что работаешь в IT, в итоге - всё IT начали "наводнять" неучи-PR-щики.
    А работодателям - это выгодно: они эмулируют конкуренцию и снижают ЗП всем подряд, включая нормальных знающих работников, ссылаясь на то, что мы ещё найдём тучу подобных тебе на твоё место и постепенно отсеивают незнающих, оставляя ЗП хороших знающих сотрудников на начальном уровне.
    В итоге: трудозатраты, образование и опыт претендентов стали абсолютно размазанными на IT-рынке труда, что способствует отсеву "чужих" людей из IT.
    Реальные сотрудники - превратились в скитальцев, которые не хотят сталкиваться с подобными вещами и которые ищут грамотных работодателей (готовых хорошо платить за работу и их опыт) и высококлассный коллектив, который был сформирован этим же работодателем для успешного ведения своего бизнеса.
    В любой структуре, в момент её расширения, появляются различные вакансии для новых сотрудников с разным опытом и знаниями.
    Но, в большей степени, ключевую роль играет необразованность и невладение предметной областью самих руководителей таких новых подразделений и невозможность грамотно оценить потенциал кандидата до приёма на работу для конкретных задач, поставленных этому подразделению.
    И как следствие - виноват всегда тот, кто не справился с задачей, а не тот, кто допустил это.
    Ответ написан
    1 комментарий
  • С каких пор появился фронтенд?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По пунктам:
    Почему в университете стало популярней разрабатывать сайты, ежели учить C++ и писать "толстые" клиенты.
    Потому что скриптовые языки дают существенно бОльшую скорость разработки чем C++ что собственно является главным аргументом. Разработчики стоят дороже железа условно.
    С++ остается в каких-то узко-специфических задачах со сложной математикой где производительности скриптовых языков не хватает. Писать на C++ интерфейс не актуально года с 2000 пожалуй что.

    Когда произошла точка перелома, что "тонкие" клиенты теперь популярней и почему? Хотя ведь мобильные приложения, это ведь тоже "толстый" клиент

    И мобильное приложение, и фронт сайта - могут быть и тонким и толстым клиентом, зависит от конкретного проекта.
    Это всегда баланс между бизнес-хотелками и затратами.
    Толстый клиент - лучше отзывчивость интерфейса, можно вынести часть нагрузки на железо клиента, дороже поддерживать (дорогие ios/android/angular/... разработчики, специфические проблемы синхронизации данных).
    Тонкий клиент - все наоборот :)

    UPD Если трактовать вопрос в стиле "почему веб более популярен чем десктоп":
    1. Как показывает практика любой софт который физически крутится у пользователя можно взломать и получить бесплатно. Если софт не лежит на торентах - скорее всего он никому не нужен.
    2. Многие сервисы сейчас продаются по модели ежемесячной-ежегодной подписки - это даёт существенно лучшие экономические показатели чем продажа платных обновлений.
    3. Интернет становится все более доступным и по географии и по $, все более быстрым.

    Все это делает модель SAAS и её наследников весьма привлекательным.
    Я бы сказал так - сейчас нужны какие-то ОЧЕНЬ веские причины не использовать SAAS.
    Ответ написан
    13 комментариев
  • Почему модуль socket в python обрезает данные при приеме независимо от параметра в функции recv?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Просто вы неправильно эти данные принимаете. Если посмотреть описание функции recv, то она возвращает реально принятые данные, которые могут быть порезаны. В вашем случае нужно в цикле принимать данные, пока не будет достигнута нужная длина. А еще лучше, сделать заголовок, в котором будет храниться длина пакета, сначала принимаете заголовок, потом в цикле принимаете данные на нужную длину. Tcp гарантирует, что данные не перемешаются и будут приходить последовательно, но протокол не гарантирует, что данные будут приходить ровно теми же самыми кусками, которыми они были отправлены.
    Ответ написан
    Комментировать
  • Какая библиотека самая эффективная на данный момент в задачах парсинга XML?

    sim3x
    @sim3x
    lxml

    при чем там сокеты, "параллельность обработки" и др вещи совсем неясно

    Паука / скраппера можно писать на чем угодно - и ето не повлияет на скорость парсинга и построения дерева xml
    Ответ написан
    2 комментария
  • Чем можно выполнять проксирование sql запросов?

    sim3x
    @sim3x
    nginx умеет проксировать tcp
    в платной версии имеет баллансировку и перезапрос на другой бек
    Ответ написан
    Комментировать
  • Как построить наименьшую траекторию перемещения по клеткам, имея возможность переставлять препятствия?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Строим дерево ходов, строим целевую функцию, берем один из популярных алгоритмов оптимизации на графах (либо колония муравьев, либо имитация отжига), смешиваем, но не взбалтываем.
    Ответ написан
    Комментировать
  • Как создаётся такой эффект стекания мёда (см. внутри)?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Ответ написан
    Комментировать
  • Как научиться быстро читать?

    lukoie
    @lukoie
    поищите технику быстрого чтения и сканирования книг от Парабеллума и Мрочковского - у них есть беспатные материалы на эту тему
    они учат бизнесменов так читать, чтобы не тратить много времени
    вообще зайдите на юбой сайт со скадчинами, там есть много тренингов и курсов по быстрочтению - они разные есть.
    есть чувак типа бывший ФСБшник, который учит быстрочтению. если надо - вспомню имя напишу, тогда в комменте спросите.
    Ответ написан
    2 комментария
  • Как перенять объектно-ориентированное мышление?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Т.е. сложно понимаю, что "засунуть" в один объект, что в другой, что должно быть статическим методом, что приватным и тд.


    Давайте попробуем строить аналогии. Представьте что ваше приложение состоит исключительно из глобальных переменных и функций, которые с ними работают. Я думаю это не сложно представить. В каждый момент времени вам доступна любая переменная.

    То есть по сути наше приложение - один объект. У него внутри вообще все. У этого объекта есть один метод - обработай запрос. Когда внешний мир его вызывает, меняются значения каких-то переменных, вызываются какие-то внутренние "приватные" для внешнего мира функции, и делается работа.

    Теперь задумаемся о декомпозиции всего этого хаоса. Мы находим какую-то задачу, которую выполняет наш код (например какую функцию вызвать для обработки каждого конкретного запроса) и выносим это в отдельный объект. Отправка email-ов - отдельный объект. Весь SQL зашиваем в отдельный объект. Соединение с базой - объект. Пользователи - объекты. Все - объекты.

    И главное, у каждого объекта есть своя область ответственности. UNIX way. Каждый объект делает что-то одно и делает это хорошо. Бывает так что ну... нужно сделать так что бы один объект делал две вещи. НЕ вопрос, мы можем его попросить сделать что-то сложное, а он будет как хороший менеджер тупо делегировать работу другим объектом. То есть он и сложную штуку сделает, и сам не будет знать как она делается.

    А все безхозные функции, которые не пренадлежат никаким объектам (например функции порождающие объекты) можно вынести в статические методы. Главное что бы статичесих переменных у нас небыло (ибо это те же глобальные переменные). И поменьше публичного ибо черт его знает что эти разработчики будут использовать. Причем "те разработчики" это вы завтра.

    Вообщем писав всё время на процедурке, сложно перейти на ооп.


    Просто не думайте что это что-то "принципиально другое". Это та же самая процедурка, просто благодаря классам и объектам, вы можете порезать систему на маленькие модули. Данные будут лежать рядом с процедурами и у вас будет больше контроля за происходящим.

    Вы можете начать погружаться в ООП с того, что разобраться "почему глобальные переменные это плохо", почему "состояние порождает сложность" и что такое эта "сложность" (многие почему-то думают что сложность выражается в написании кода а не в его чтении или поддержке), почему "изоляция" (и как следствие инкапсуляция) - это хорошо. Как это все соотносится с декомпозицией. Что такое "ответственность", что такое зависимости, связанности

    Подскажите, какой проект начать писать (гостевая, блог), или может начать изучать фреймворк.


    Фреймворки универсальны, а значит чистого ООП там быть не может. Во всяком случае нет ни одного фреймворка на котором стоит учиться ООП.

    Есть хорошие упражнения на развитие понимания объектно-ориентированного проектирования. Например вот: https://habrahabr.ru/post/206802/

    Сразу хочу отметить что это крайности. Упражнения же. Они должны ограничивать вас что бы заставлять думать и задавать правильные вопросы.

    Или может подскажите книгу/сайт где пошагово в ооп написан какой-то проект, чтобы быстрее пришло понимание.


    Так вы научитесь делать один конкретный проект а на втором вы уже проиграете. Так дела не делаются. Надо разобраться с причинами появления идеи ООП. Ну то есть что было до. Можно еще с функциональным программированием попробовать разобраться. В PHP оно слабо применимо, но основные идеи очень тесно переплетаются с ООП и познав немного функциональщины ваше ООП будет лучше. Да и если про ООП вы можете найти много булшита, про функциональщину врут мало.
    Ответ написан
    3 комментария
  • Для чего нужные побитовые операции в Python?

    @deliro
    Например, флаги. Юзер может:
    0b1  # Читать
    0b10  # Писать
    0b100  # Редактировать
    0b1000  # Удалять
    
    0b1010  # юзер может писать и удалять, но не может читать и редактировать

    Итого, все флаги можно запихнуть в инт, который можно запихнуть в 1 байт.
    Ответ написан
    5 комментариев
  • Сколько времени нужно закладывать в детальный технический аудит сайта?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Как и в случае с любой другой задачей в мире, если вы не знаете, сколько времени и сил на неё понадобится, это означает одно из двух:
    1. Задача слишком общая и её нужно дробить, оценивая подзадачи.
    2. Вы некомпетентны в данном вопросе и задачу нужно отдать тому, кто нужными знаниями обладает. Если у вас есть желание повысить свой уровень, то нужно стоять над душой у этого человека во время работы и задавать вопросы.

    Сейчас вы совершенно точно попадаете в первую категорию, поэтому - разбейте задачу на подзадачи, подумайте как бы вы решали каждую из них и оцените время, которое вам на это потребуется. Весьма вероятно, что из этих подзадач какие-то вы никогда не решали и даже не представляете как решать - это второй случай.

    От того, что вам напишут в ответах "от дня до года", вам легче не станет, а ничего кроме этого написать и невозможно, потому что в описанной вами задаче огромное количество подвижных частей и взаимозависимых переменных.
    Ответ написан
    5 комментариев
  • Подсчет уникальных значений с минимальной погрешностью?

    @nirvimel
    Все зависит от формата хранения/представления этих данных. Должен быть свой кастомный формат, компактный (чтобы сократить доступ к памяти) и удобный исключительно для быстрого сканирования (прохода по всем записям), и ни для чего другого. Я бы написал это под Cython или Numba с компактным представлением данных в Numpy. При таком большом количестве мелких записей и, в общем то, тривиальном алгоритме их обработки основным bottleneck в плане производительности становится не CPU, а доступ к RAM, поэтому от "хитрости" самого алгоритма подсчета (какие тут могут быть хитрости?) тут мало что зависит, зато компактность структуры данных (даже за счет не очень удобного доступа к ней) будет играть решающую роль.
    Ответ написан
    Комментировать
  • Как правильно продать брендовое доменное имя?

    @mletov
    Согласен в с выше высказавшимися: Заберут через суд и не поморщатся если надо будет.
    Достаточно вспомнить историю про google.ua

    Причем там ребята хотя бы элементарные меры предосторожности приняли: зарегистрировали фиктивную компанию с названием, которое было созвучно с названием домена. Впрочем, все равно не помогло.

    У вас даже этого не сделано.

    Продавать третьим лица - так себе вариант. Кто захочет купить домен, который в любой момент могут отобрать.

    Если уж решили киберсквотить - идите по по пути Лебедева, регистрируйте домены а ля pivo.ru
    www.artlebedev.ru/studio/domainsale
    Ответ написан
    Комментировать
  • Как правильно продать брендовое доменное имя?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    Как вариант. Попробуй на aliexpress, taobao, e-bay продавцам adiBas и прочих "оригинальных" вещей предложить ;)
    Ответ написан
    Комментировать
  • Материалы по разработке рекламных сетей (движков)?

    riky
    @riky
    Laravel
    заметьте, автор статьи в комментах писал:
    Если кратко, то по очевидным причинам деталей алгоритмов мы раскрывать не будем

    Так как алгоритмы чисто наша разработка, то выкладывать их в паблик мы пока не намерены. К тому же они постоянно дополняются исходя из анализа текущего трафика


    и оно понятно - в этой отрасли постоянно идет война с двух сторон.
    да и в статье он по сути ничего толком не сказал про детект скликивания, про mouse up/down только (все таки это больше рекламная статья, тех детали только для того чтобы статью не забанили и был какой то мотив ее читать). но я думаю это только начало. да и после таких статей боты "странным образом" тоже становятся умней ;) вы думаете создатели этой же зенки не читают их? в общем по этому пункту - не ждите каких то откровений, если они и есть то уже не актуальны, так как для ботоводов это их хлеб, если это описано - то скорее всего они это уже сделали. а боты сейчас очень крутые (это уже не пхп/курл) везде эмуляторы браузеров. тут шишки придется набивать по ходу пьессы. Заметьте, он написал "К тому же они постоянно дополняются исходя из анализа текущего трафика" - поэтому нужно делать ровно то же. смотрим где не реальный CTR и изучаем причины, смотрим "параметры" юзеров которые идут с этого сайта, ищем закономерности. предварительно нужно взять популярные системы автоматизации (или ботов) и искать их слабые места, пытаться найти закономерности чем они отличаются от юзеров.

    Если это делать не хочется, то либо воспользуемся подобным сервисом, либо берем в консультанты человека который уже занимается этим, только нужно будет показать ваши намерения, что вы не ботоводы, иначе у него могут быть проблемы с его основной работой (так как и они могут притворится невинными разработчиками, а сами хотят секреты слить). Также вариант - зайти разведчиком с темной стороны, на всякие даркфорумы (и не только паблик), там могут быть советы как обходить защиты. В любом случае если хотим надежно - это не вариант сделал и забыл, тут нужно постоянно мониторить и анализировать.

    в остальном устройство системы он описал в комментах там, но у них там все таки не тизерная система (да и на тот момент нагрузка у них была небольшая, поэтому не стоит это считать за эталон).
    в остальном надо в первую очередь понимать специфику хайлоад, тут подойдут любые статьи на эту тему коих сейчас много.

    Архитектуру я бы и сам с удовольствием почитал (ради интереса хотя бы), но такое или самому думать или за деньги, у тех кто уже занимался таким, вещь специфичная.
    Ответ написан
    Комментировать