Показаны сообщения с ярлыком идея. Показать все сообщения
Показаны сообщения с ярлыком идея. Показать все сообщения

NLG: Генерация текстовых описаний временных рядов

Задумался на тему практической реализации следующего алгоритма: имеется набор данных, например, временной ряд значений метрики в Graphite какого-либо процесса. Надо автоматически создать текст на естественном языке, описывающий имеющиеся данные в диапазоне с точки зрения уровня, видимых или незначительных изменений, трендов и так далее. Особенно интересно, если бы алгоритм позволял сравнить несколько временных рядов, показывая в получившемся описании различия в характере исходных данных. Краткие тезисы для дальнейших исследований:

Python: теперь и с синтаксисом Haskel

У некоторых питонистов есть и такая презабавная забава,- ругаться на синтаксис Python и предлагать всевозможные улучшения. Пользователь GitHub Pyos ушёл дальше всех, реализовав на Python проект Dogelang( сокращённо dg). Из описания на сайте следует, что dg,- это самостоятельный язык программирования, компилирующийся в байткод, примерно как Scala собирается в JVM. Кроме того, код на dg вполне работоспособен под PyPy. Что, по большому счёту значит, что dg, не больше и не меньше,- альтернативный синтаксис Python 3 (или Python3 из параллельного мира, как кому больше нравится). Ко всему прочему, это позволяет использовать все существующие и совместимые с 3-й версией языка Python библиотеки. Выглядит это примерно так:


import '/sys/stdin'

IOTools = subclass object where
  #: Compute the average line length of a file.
  #:
  #: avglen :: TextIOBase -> NoneType
  #:
  avglen = staticmethod $ fd ->
    lengths = list $ map len fd
    count   = len lengths
    total   = sum lengths
    print 'Average line length:' $ if
      count > 0 => total / count
      otherwise => 0

IOTools.avglen stdin

Конечно, синтаксис dg кому-то может показаться непривычным, а кому-то наоборот,- слишком привычным и удобным. 

Python: наследование и логирование

Не знаю кто как, а я ленивый. Писать длинные строки кода, или повторять один и то-же код много раз в разных местах мне кажется неправильным и нерациональным. Это утверждение в полной мере относится и к записи отладочных сообщений. Если мне нужно организовать правильную запись логов в проекте, многочисленные мануалы рекомендуют использовать примерно такое:

Блогоспамеры - 2

В продолжение истории про спам в комментариях, - как выяснилось, спам добавляет в комментарии не нормальный браузер, а некая программа, возможно троян?