Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 26, 2014 22:04:15

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Как организовать данные?

Добрый вечер!

Я написал программу, которая анализирует текст. Зная номер слова в тексте, я могу определить номер предложения, в котором это слово встречается, номер слова от начала предложения, позиции начального и конечного символов слова и некоторые другие вещи.

Все это оформлено в виде словаря, а данные я получаю по ключам. В связи с этим у меня возник вопрос о том, как наиболее рационально хранить результаты анализа. Например, я знаю номер символа в тексте. По этому номеру я могу узнать номер текущего предложения и номер слова. Или же я знаю номер предложения. Я могу узнать номер первого и последнего символов предложения, номер первого и последнего слова в предложении и другие вещи.

Так вот, возможно ли организовать данные без их дублирования? При изменении текста приходится перестраивать все ключи словаря, кроме того, приходится создавать отдельные ветки ключей в зависимости от того, идет ли анализ на уровне предложения, на уровне слова или на уровне отдельного символа.

Полагаю, что речь идет о базе данных, но с ними в Питоне никогда не работал. Кроме того, не нравится то, что используется чужеродный синтаксис, который еще надо будет разучивать. В некоторых учебниках еще пишут, например, “делайте так, но не делайте так, потому что в mysql есть баг, приводящий к этому”

Возможно ли реализовать задачу посредством внутренних средств Питона, например, словаря?

Офлайн

#2 Дек. 26, 2014 23:42:39

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Как организовать данные?

Если уж у Вас необоснованный страх баз данных, тогда можно использовать модуль shelve, который по поведению напоминает словарь. Вот только не помню, дружит ли он с юникодом или нет Но вообще Вам полезно будет почитать что-нибудь по redis. Хорошее хранилище типа хеш-таблица. Простое в освоении + есть хороший и быстрый модуль на питоне. Маленькая книга по редис переведена, к слову, на русский.

P.S. Но если говорить об SQL базах, то все равно язык SQL учить не обязательно. Для этого существует ORM (я рекомендую алхимию). ОRM работает с БД как с объектами и классами. Необходимо просто разобраться в описании таблиц с помощью классов и запомнить с 20 основных методов доступа к данным…

Офлайн

#3 Дек. 27, 2014 01:59:00

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Как организовать данные?

4kpt_III, а возможно ли сделать автообновляемую БД? Например, чтобы при изменении текста обновлялись позиции слов, их номера и прочая информация, или это только вручную делается? Если только вручную, то большого смысла переходить со словаря на БД пока не вижу.

Офлайн

#4 Дек. 27, 2014 14:40:20

NotDeadAlready
От:
Зарегистрирован: 2012-01-28
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать данные?

97 вещей, которые должен знать программист

Вещь 48: Много данных? Используйте СУБД!



Синтаксис Питона сосредоточил в себе несуразности Лиспа и Фортрана. – Ларри Уолл, создатель Перла.

Офлайн

#5 Дек. 27, 2014 17:01:31

Kodriderme
Зарегистрирован: 2014-12-01
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Как организовать данные?

4kpt_III
Для этого существует ORM (я рекомендую алхимию).
сори что вклиниваюсь не всвою тему, но можно по подробнее? можно ткнуть носом в толковый мануал ))

Офлайн

#6 Дек. 27, 2014 17:23:41

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Как организовать данные?

Kodriderme
Кидайте в личку скайп. Все покажу. Даже немножко статьи в свое время пособирал.

Офлайн

#7 Дек. 27, 2014 18:54:14

Kodriderme
Зарегистрирован: 2014-12-01
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Как организовать данные?

4kpt_III
4kpt_III
отправил ЛС

Офлайн

#8 Дек. 27, 2014 19:09:25

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Как организовать данные?

Kodriderme
Видел. Куда слать-то? Обратный мейл то Вы не указали

Отредактировано 4kpt_III (Дек. 27, 2014 19:17:56)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version