Дерево решений ID3 с использованием web2py

Я просто хотел бы спросить, как создать приложение без базы данных в web2py, используя реализацию MVC в python.

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

Я знаю, что это довольно запутанно, но я ценю, если есть кто-нибудь, кто может мне помочь.


person angelie    schedule 22.05.2012    source источник


Ответы (1)


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

def id3_tree():
    form = FORM(INPUT(_name='Data', _type='file'),
        INPUT(_type='submit', _value='Submit'))
    if request.vars.Data:
        tree = create_tree(request.vars.Data.file)
    else:
        tree = 'No tree yet'
    return dict(form=form, tree=tree)

Это создаст форму для загрузки файла данных. После загрузки файла код вызывает функцию create_tree() и передает ей объект файла (request.vars.Data.file будет объектом cStringIO.StringO, содержащим содержимое файла — см. http://docs.python.org/library/stringio.html).

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

Если у вас возникнут вопросы по ходу работы, не стесняйтесь задавать их в группе Google.

person Anthony    schedule 22.05.2012
comment
Привет! Спасибо за ответ. Я попробовал это, и это сработало. теперь я не понимаю, куда вставить мои вычисления для энтропии и прироста информации, которые будут использоваться при построении дерева. мне сделать что-то вроде: def create_tree(): ..... чтобы я мог вставить сюда свои коды, или я поставлю их после tree = create_tree(request.vars.Data.file) ? - person angelie; 28.05.2012
comment
Ваш файл данных находится в request.vars.Data.file — вы можете вызывать столько функций, сколько хотите, чтобы обработать его и получить результат, а затем вернуть этот результат в id3_tree() dict. Функции, которые вы используете для обработки, могут быть определены (а) в другом месте контроллера, (б) в файле модели или (в) в модуле (который требует импорта). - person Anthony; 28.05.2012