class TopicWordDistribution(db.Model): """ Cada registro se refiere a una relacion Topico-Palabra que haya sido dispuesta por el usuario. Por ejemplo, cada registro puede significar la existencia de una distribución de probabilidad dentro de la Base de Datos. Sin embargo no es necesario que la distribucion sea de probabilidad. - id: el numero identificador de la distribución Topico-Palabra - name: nombre de la distribución - description: texto que describa la distribución - normalization_value: número con el cual dividir para normalizar los valores de la distribución. Útil para graficar. Dentro del codigo se usa frecuentemente la abreviación "twdis" o "TWDis" para referirse a esta clase. """ __tablename__ = 'topic_word_distribution' id = db.Column(db.Integer, primary_key = True) topicset_id = db.Column(db.Integer, db.ForeignKey('topic_set.id'), primary_key=True) name = db.Column(db.String(20), default = "Empty Name") description = db.Column(db.Text, default = "Empty Description") normalization_value = db.Column(db.Integer, default = 1) def __repr__(self): return 'Topic-Word Distribution #' + str(self.id)
class Document(db.Model): __tablename__ = 'document' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(20)) def __repr__(self): return '(Doc: ' + str(self.id) + ')'
class Corpus(db.Model): """ Tabla para mantener un solo registro sobre el Corpus """ __tablename__ = 'corpus' id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(20), default = "Empty Name") description = db.Column(db.Text, default = "Empty Description")
class TopicSet(db.Model): """ Cada registro se refiere a la existencia de un conjunto de tópicos """ __tablename__ = 'topic_set' id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(20), default = "Empty Name") description = db.Column(db.Text, default = "Empty Description") ntopics = db.Column(db.Integer, default= -1) # Se debe mantener manualmente
class TopicDocumentDistribution(db.Model): __tablename__ = 'topic_document_distribution' id = db.Column(db.Integer, primary_key = True) topicset_id = db.Column(db.Integer, db.ForeignKey('topic_set.id'), primary_key=True) name = db.Column(db.String(20), default = "Empty Name") description = db.Column(db.Text, default = "Empty Description") normalization_value = db.Column(db.Integer, default = 1) def __repr__(self): return 'Topic-Document Distribution #' + str(self.id)
class Word(db.Model): """ Cada registro se refiere a la existencia de una palabra en el corpus. - id: es el numero identificador de la palabra - word_string: es la cadena de la palabra - ntopics: es el numero de topicos en los que aparece la palabra - topics: es una relacion SQLAlchemy que devuelve una lista de python con todos los objetos Topic de los topicos donde aparece la palabra """ __tablename__ = 'word' id = db.Column(db.Integer, primary_key=True) word_string = db.Column(db.String(20)) topics = db.relationship('TopicWordAssociation', back_populates='word') # Debido al diseño de la Base de Datos, esta lista contiene a todos los topicos en los que aparece la palabra, sin importar el topicset def __repr__(self): return '(Word ' + str(self.id) + ' : )' """