def main(self,
             files,
             conceptMap,
             symMap,
             outDir,
             symName='word',
             extraExt='',
             obsColumn=0,
             negExamples=None,
             posExamples=None,
             writeConst=None,
             appendConst=None):

        if writeConst is not None and appendConst is not None:
            raise ValueError("Use only writeConst or appendConst, not both")

        self.setupMaps(conceptMap, symMap)

        globfiles = set()
        for fn in files:
            if os.path.isdir(fn):
                globfiles |= set(glob(os.path.join(fn, '*.hddn')))
            else:
                globfiles.add(fn)

        file_ids = set()
        for fn in globfiles:
            file_id = fn.replace('.hddn', '')
            file_ids.add(file_id)
        file_ids = sorted(file_ids)

        if negExamples and negExamples != 'off':
            neg_ex = ADict.readFromFile(negExamples)
            neg_ex = self.mapExamples(neg_ex)
        else:
            neg_ex = {}

        if posExamples and posExamples != 'off':
            pos_ex = ADict.readFromFile(posExamples)
            pos_ex = self.mapExamples(pos_ex)
        else:
            pos_ex = {}

        if writeConst:
            constFile = writeConst
            constAppend = False
        else:
            constFile = appendConst
            constAppend = True

        ho_generator = self.generateHO(file_ids, extraExt, obsColumn)
        dts, histories = self.makeDTS(ho_generator)

        word_C = self.makeSparseProb(histories, pos_ex, neg_ex)

        self.storeResults(outDir, symName, dts, word_C, constFile, constAppend)
    def main(self, files, conceptMap, symMap, outDir, symName='word',
            extraExt='', obsColumn=0, negExamples=None, posExamples=None,
            writeConst=None, appendConst=None):

        if writeConst is not None and appendConst is not None:
            raise ValueError("Use only writeConst or appendConst, not both")

        self.setupMaps(conceptMap, symMap)

        globfiles = set()
        for fn in files:
            if os.path.isdir(fn):
                globfiles |= set(glob(os.path.join(fn, '*.hddn')))
            else:
                globfiles.add(fn)

        file_ids = set()
        for fn in globfiles:
            file_id = fn.replace('.hddn', '')
            file_ids.add(file_id)
        file_ids = sorted(file_ids)

        if negExamples and negExamples != 'off':
            neg_ex = ADict.readFromFile(negExamples)
            neg_ex = self.mapExamples(neg_ex)
        else:
            neg_ex = {}

        if posExamples and posExamples != 'off':
            pos_ex = ADict.readFromFile(posExamples)
            pos_ex = self.mapExamples(pos_ex)
        else:
            pos_ex = {}

        if writeConst:
            constFile = writeConst
            constAppend = False
        else:
            constFile = appendConst
            constAppend = True

        ho_generator = self.generateHO(file_ids, extraExt, obsColumn)
        dts, histories = self.makeDTS(ho_generator)

        word_C = self.makeSparseProb(histories, pos_ex, neg_ex)

        self.storeResults(outDir, symName, dts, word_C, constFile, constAppend)
    def main(self, concept_map, sym_map, examples, output, threshold):
        self.conceptMap = SymMap.readFromFile(concept_map, format=(int, unicode)).inverse
        self.symMap = SymMap.readFromFile(sym_map, format=(int, unicode)).inverse

        examples = ADict.readFromFile(examples)
        examples = self.mapExamples(examples, threshold)

        key = lambda (k, v): (k[0], -v, k[1])
        examples.writeToFile(output, key=key)
    def main(self, concept_map, sym_map, examples, output, threshold):
        self.conceptMap = SymMap.readFromFile(concept_map,
                                              format=(int, unicode)).inverse
        self.symMap = SymMap.readFromFile(sym_map,
                                          format=(int, unicode)).inverse

        examples = ADict.readFromFile(examples)
        examples = self.mapExamples(examples, threshold)

        key = lambda (k, v): (k[0], -v, k[1])
        examples.writeToFile(output, key=key)