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

Достижения

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

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

Все теги (157)

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

Все ответы (226)
  • Как генерировать случайные имена?

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

    Мои рекомендации:
    Используйте длинну префикса 3-4 буквы (примерно длинна слога).
    Боле длинные префиксы будут порождать слова слишком похожие на исходные и их рекомбинации.
    Более короткие будут не очень благозвучны.
    Обязательно используйте символы начала и конца слова в качестве спец-буквы ('^' и '$'), просто пробела недостаточно, но уже не помню почему.

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

    Для хранения эффективно использовать префиксное дерево с частотами в качесве значений.
    Алгоритм составления словаря довольно простой:
    prefix = '^'
    for letter in text:
      freqdict[prefix+ letter] += 1 # увеличение счётчика этого сочетания
      if letter ='$':  # конец слова, сброс префикса
        prefix = '^'
      else:
        prefix = prefix[-depdth:] # обрезане префикса до максимальной длинны

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

    Алгоритм генерации:
    prefix = '^'
    while prefix[-1] != '$':
      tails = freqdict[prefix].items() # под-дерево всех продолжений префикса в виде списка (key, value)
      thresh = random() # точка на единичном отрезке
      i = 0 # текущий элемент
      level = 0 # верхняя граница отрезка текущего элемента
      while thresh > level:
        level += tails[i][1]
        i++
      prefix += tails[i][0]


    Код написан по памяти, не принимайте на слово :)
    Наверно, мне уже пора выкладывать библиотеку для рыбогенерации...
    Ответ написан
    3 комментария
  • Какая платформа больше подходит для электронного документооборота?

    qmax
    @qmax
    программер
    Вообще-то эти "общие СЭД программы" на то и общие, чтобы подстраиваться под всевоможные нужды.
    Если они вам чем-то не угодили, значит вам не нужен документооборот, а что-то другое.

    Ну а судя по первому опыту и упоминаиню PHP(yii) в качестве "платформы", думаю, что вас ждёт неминуемый провал и потеря времени и денег.
    Ответ написан
    Комментировать
  • В чем различие между классом, объектом и экземпляром?

    qmax
    @qmax
    программер
    У @vdem Плохой, негодный пример!
    У васи и маши есть общий метод - трахаться.
    Однако, реализация (и, может быть даже, сигнатура) этого метода у них совершенно разные.

    Тут налицо наличие базового абстрактногоо класса Человек с виртуальным методом трахаться.
    И два унаследованных класа М и Ж, вообще говоря, с сильно разными интерфейсами.
    Ответ написан
    2 комментария
  • Как вы ведете учет прочитанных книг?

    qmax
    @qmax
    программер
    Чтение книг, котрое нужно учитывать - не имеет смысла.
    Лучше читайте то, что вам действительно интересно.
    Ответ написан
    1 комментарий
  • Как перенести сайт на django?

    qmax
    @qmax
    программер
    Если сайт делал грамотный программер, то где-то в корне лежит файл типа requirements.txt
    Там перечислены все пакеты и библиотеки, нужные для работы сайта.

    Если его нет, то надо сгенерить список вообще всех устанвовленных в системе пакетов командой
    pip freeze > requirements.txt

    И на новом хостинге устанвовить всё необходимое командой
    pip install -r requirements.txt

    Если команда pip на старом хостинге не работает, ну тогда пипец.
    Если на новом тоже - то ваще.
    Ответ написан
    Комментировать

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

Все вопросы (54)