Example #1
0
class TxtClassificatorWrapper():

    _instance = None
    _mutex = threading.Semaphore()

    def __init__(self, dirname):
        if "fake_run" in os.environ:
            self.__i = 0
            return
        self.__documentSizeClassificator = DocumentSizeClustering(os.path.join(dirname, "clusteringData.db"))
        self.__newsClassificator = NewsClassificator(os.path.join(dirname, "googlenews"), doTest=False, ignoreKlass = [HEADLINES, SPOTLIGHT, NATION])


    @staticmethod
    def instance(dirname=None):
        if TxtClassificatorWrapper._instance is not None:
            return TxtClassificatorWrapper._instance
        try:
            TxtClassificatorWrapper._mutex.acquire()
            if TxtClassificatorWrapper._instance is None:
                TxtClassificatorWrapper._instance = TxtClassificatorWrapper(dirname)
            return TxtClassificatorWrapper._instance
        finally:
            TxtClassificatorWrapper._mutex.release()

    def classify(self, txt):
        if "fake_run" in os.environ:
            self.__i += 1
            self.__i = self.__i % 3
            if self.__i == 1:
                return ["long", "p"]
            elif self.__i == 2:
                return ["long", "b"]
            else:
                return ["short", "p"]
        try:
            return self.__documentSizeClassificator.classify(txt), self.__newsClassificator.classify(txt)
        except BaseException as e:
            logger.exception(u"Error in \"" + unicode(txt) + u"\"")
            raise e

    def probDist(self, txt):
        if "fake_run" in os.environ:
            return None
        return self.__newsClassificator.prob_classify(txt)
Example #2
0
 def __init__(self, dirname):
     if "fake_run" in os.environ:
         self.__i = 0
         return
     self.__documentSizeClassificator = DocumentSizeClustering(os.path.join(dirname, "clusteringData.db"))
     self.__newsClassificator = NewsClassificator(os.path.join(dirname, "googlenews"), doTest=False, ignoreKlass = [HEADLINES, SPOTLIGHT, NATION])