Задать вопрос
Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (23)

Лучшие ответы пользователя

Все ответы (13)
  • Книги по математике для программистов?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    Читать обо всем подряд в математике будет крайне не продуктивно. Надо отталкиваться от задачи, или хотя бы от направления, в котором придётся заниматься. Математика для разработчика шейдеров или библиотек в компьютерной графике мало пригодится для разработчика в области анализа данных (например в области Информационного поиска). Как писалось выше, действительно правильно было бы направить свои усилия на алгоритмы (не полениться досконально разобраться даже в элементарных алгоритмах). Если есть ощущение, что Кормен или Кнут тяжело идут и есть пробелы (а они наверняка будут), то можно на вооружение взять книгу Ахо, Построение и анализ вычислительных алгоритмов.

    Если всё же привести примеры "Конкретной математики", то программисту в любом случае пригодится хорошее понимание дискретной математики и линейной алгебры.

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

    Если есть желание направить свои силы на изучение математики в области информационного поиска, то можно почитать книгу Маннинга, Введение в информационный поиск. Там множество отсылок к конкретным математическим пластам.

    Но алгоритмы и их хорошее понимание (включая асимптотику) является хорошим примером (началом) изучения математики отталкиваясь от задачи.
    Ответ написан
    Комментировать
  • Как лучше хранить данные для последующей обработки?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    Хранение данных в BigData порой граничит с искусством. В целом, тут как и везде -- всё зависит от задачи, которая ставится. В любом случае, работа/анализ с текстовыми данными неминуемо приведет вас к Инвертируемому индексу (причем к нескольким).

    Если пока вкратце, то вам надо проиндексировать содержимое "сырых данных" (файлы, веб, БД, etc). Пока проиндексировать как есть, без изменения самих данных. Если это реально BigData, то надо подумать о распределенном индексе, понимать стоит ли (а если да, то как) реплицировать индекс (но это уже вопрос производительности).

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

    Опять же, в зависимости от задач (направления анализа) вам надо подумать о тезаурусах, для решения синонимии терминов в вашем индексе. Но, это я уже пошел в сторону более глубокого анализа данных. Там много что вам понадобится.

    Если бы был пример конкретной задачи, то я бы по конкретнее написал о инструментах, подходах, методах.

    Немого ссылок:
    1. По информационному поиску / анализу данных читайте вот это:
    Введение в информационный поиск, Маннинг
    Обработка неструктурированных текстов. Поиск, орга...
    2. Импорт / фреймворки / библиотеки индексирования и поиска:
    Apach Solr
    Apach Tika
    3. Инвертированный индекс

    PS: всё же хотелось бы узнать о конкретной задачи, тогда было бы больше конкретики.

    UPD: в ряде случаев в BigData надо манипулировать графовой структурой данных. Соответственно, посмотрите в сторону соответствующих СУБД, например neo4j. Главное требования к СУБД в BigData -- минимализм функционала, иначе на больших данных работать будет всё крайне медленно.
    Ответ написан
    1 комментарий
  • Какие технологии использовать для больших web-приложений?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    По данному вопросу лучше всего искать/изучать архитектуру систем Facebook, Google, YouTube, etc. Они очень часто выступают с докладами на данные темы.

    Если всё же немного конкретики, то думаю, что необходимыми технологиями является знания в проектировании HighLoad систем (тут можно их доклады с конференций посмотреть), memcache, mapreduce (hadoop например), БД для больших, распределенных, нагруженых данных, хранение данных. Многое из всего этого и Яндекс выкладывает тут. И посмотрите доклады Яндекса со всех YaC'ов.

    Можно посмотреть что в Facebook сделали для переноса php на с++ (транслятор).

    В общем, правильным будет отсылки искать в докладах на конференциях, где большие компании рассказывают о своих проблемах и как они их решали.
    Ответ написан
    Комментировать
  • Видеоуроки по алгоритмам?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    Youtube принципиально? На Coursera есть хорошие уроки (тут и тут). Запись этих уроков можно и в торрентах найти.
    + есть книга хорошая по алгоритмам именно на Java.

    Updated:
    Нашел и на Youtube тут. Простой поиск по stanford algorithms coursera
    Ответ написан
    Комментировать
  • Как Яндекс и Гугл относятся к запросам во множественном и единственном числе?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    Когда пользователь вводит запрос в поисковую систему, то данный запрос подвергается анализу (со стороны поисковика). Если не вдаваться в тонкости математики, то слова могут подвергаться стеммингу / лемматизации. Это значит, что окончания слов (суффиксы, мн.число->единственное число) могут урезаться. Некоторые поисковики это делают лучше, некоторые хуже. Например Yandex больше ориентируется на российский сегмент и окончания он учитывает для более точного ранжирования результатов (но всё же будет учитывать и базовую словоформу). Так что по хорошему из вашего примера, поисковик должен учесть 1443 + 387 (если каждый из примеров это 1 в 1 статическое совпадение словосочетания с учетом окончания). Пытаясь вручную оптимизировать окончания, вы намеренно пытаетесь игнорировать алгоритмы анализа поисковых запросов поисковой системой (плохо это или хорошо, сложно сказать -- тут надо анализировать расхождения в поисковой выдачи).

    Поисковые системы так же используют окончания слов для выявление зависимостей между словами в запросе. Это вопрос анализа данных (из области Natural Language Processing), но это уже, я так понимаю, не суть вашего вопроса.

    На вашем месте я бы писал на сайте то, что наиболее читаемо и понятно для пользователя.
    Ответ написан
    Комментировать