Верхнеуровневая схема разбора сообщения бота:

Схема разбора сообщения:

  1. Получение сообщения с сервера
  2. Первичная обработка:
  • определение текста сообщения
  • обработка текста сообщения:
  • очистка от лишних пробелов и знаков препинания
  • поиск обращения
  • поиск прямых команд
  • определение списка слов
  • определение списка слов со знаками препинания
  • поиск цифр, определение меры (рубли, кг, дни)
  • поиск дат и временных периодов
  • поиск имен
  • поиск институтов и организаций
  • поиск других сущностей
  • поиск приаттаченных документов
  • поиск приаттаченных картинок
  • поиск приаттаченного местоположения
  • определение пересылаемого сообщения
  • определение исходного сообщения
  • сохранение сообщения
  1. Действие в соответствие с командой
  2. Поиск дополнительных директив:
    • Расчет TF_IDF для каждого слова
    • Построение схемы слова (сущ_глагол_прилаг)
    • Поиск соответствия в сохраненных схемах
    • Определение действия
    • Определение параметров действия
    • Ответ
  1. Сохранение ответа

 

Пример функции сортировки «пузырьком» (Python)

Сортировка «пузырьком» — простой способ сортировки списка.
Суть способа: последовательное сравнение каждого элемента с последующими и взаимная смена позиций в случае, если первый элемент больше сравниваемого.
Название отражает «всплытие» бОльших элементов в конец списка.

def bubble_sort(lst):
    for i in range(0, len(lst)-1):
        for i in range(0, len(lst)-1):
            if lst[i] < lst[i+1]:
                pass
            else:
                lst[i], lst[i+1] =  lst[i+1],lst[i]
    return lst

lst = [2,8,4,6,-88,9,0,1,5,8,0,9,8,-190]
bubble_sort(lst)

>>> [-190, -88, 0, 0, 1, 2, 4, 5, 6, 8, 8, 8, 9, 9]
Сортировка пузырьком

О формате сохранения данных HDF

pandas hdfstore

Долгое время лелеял себя надеждой, что смогу построить  эффективную базу данных в формате  HDF. А что?  Очень быстрая, прекрасно интегрируется с pandas — что еще нужно, если основные операции завязаны на pandas?

Проблема в одном — при попытке вносить изменения  в таблицы база начинает неконтролируемо расти. Даже при повторном сохранении одногиговой базы,  в которую не было добавлено ни одной строчки, файл, ничтоже сумняшеся, прибавляет в весе 150-200 мегабайт.  Облазил документацию и стаковерфлоу в поисках правильного рецепта приготовления HDF, но не преуспел.

И только недавно наткнулся на дельный совет — не старайтесь использовать hdf как базу данных. Этот формат отлично приспособлен для быстрого сохранения большого датафрейма и быстрого же его чтения, но  апдейт — не про него.

Плюнул я на все эти свои эксперименты и вернулся к старому доброму SQL.