Exemplo n.º 1
0
    def __init__(self,
                 database_path,
                 language_path,
                 json_output_path=None,
                 thesaurus_path=None,
                 stopwords_path=None,
                 color=False):
        if color == False:
            without_color()

        database = Database()
        self.stopwordsFilter = None

        if thesaurus_path:
            thesaurus = Thesaurus()
            thesaurus.load(thesaurus_path)
            database.set_thesaurus(thesaurus)
            #print(thesaurus.print_me())
            #print("Hello")

        if stopwords_path:
            self.stopwordsFilter = StopwordFilter()
            self.stopwordsFilter.load(stopwords_path)

        database.load(database_path)
        # database.print_me()

        config = LangConfig()
        config.load(language_path)

        self.parser = Parser(database, config)
        self.json_output_path = json_output_path
Exemplo n.º 2
0
def make_thesaurus():
    start = timer()
    print("setting up thesaurus")
    thesaurus = Thesaurus.Thesaurus()
    thesaurus.build_jaccard_word_pair_table()
    print("finished setting up thesaurus")
    end = timer()
    print(f"{end - start} seconds")
Exemplo n.º 3
0
def make_doc_term():
    start = timer()
    print("setting up doc_term_table")
    thesaurus = Thesaurus.Thesaurus()
    thesaurus.build_doc_term_table()
    print("finished setting up doc_term_table")
    end = timer()
    print(f"{end - start} seconds")
Exemplo n.º 4
0
 def set_method_type(self, method_type):
     if method_type == '1':
         self._method_class = LocalMethod(self)
     elif method_type == '2':
         self._method_class = Thesaurus(self)
     elif method_type == '3':
         self._method_class = Wordnet(self)
     elif method_type == '4':
         self._method_class = MySpellCheker(self)
Exemplo n.º 5
0
    def __init__(
        self,
        textIn,
        thesaurus=Thesaurus(filename="./thesauruses/thesaurusA.pickle")):
        self.textOut = None
        self.thesaurus = thesaurus
        self.punctuation = ", . ? ! : ; -".split(" ")  #Add more ???

        self.textIn = textIn
Exemplo n.º 6
0
class Article:

    encodings = ["utf-8", "cp932", "euc-jp", "iso-2022-jp", "latin_1"]

    tokenizer = Thesaurus('thesaurus.csv')

    def __init__(self, path):
        print(path)
        self.path = path
        self.contents = self.preprocess(self.get_contents(path))
        # self.contents = self.preprocess(self.get_title(path))
        self.tokens = [
            token.surface for token in self.tokenizer.tokenize(self.contents)
            if re.match("カスタム名詞|名詞,(固有|一般|サ変)", token.part_of_speech)
        ]

    # print(self.tokens)

    def get_contents(self, path):
        exceptions = []
        for encoding in self.encodings:
            try:
                all = codecs.open(path, 'r', encoding).read()
                parts = re.split("(?i)<(body|frame)[^>]*>", all, 1)
                if len(parts) == 3:
                    head, void, body = parts
                else:
                    print('Cannot split ' + path)
                    body = all
                return re.sub(
                    "<[^>]+?>", "",
                    re.sub(
                        r"(?is)<(script|style|select|noscript)[^>]*>.*?</\1\s*>",
                        "", body))
            except UnicodeDecodeError:
                continue
        print('Cannot detect encoding of ' + path)
        print(exceptions)
        return None

    def get_title(self, path):
        return re.split('\/', path)[-1]

    def preprocess(self, text):
        text = re.sub("&[^;]+;", " ", text)
        text = mojimoji.han_to_zen(text, digit=False)
        # text = re.sub('(\s| |#)+', " ", text)
        return text

    def dense(self, dictionary):
        values_set = set(dictionary.values())
        text = [token for token in self.tokens if token in values_set]
        corpus = dictionary.doc2bow(text)
        return matutils.corpus2dense([corpus], len(dictionary)).T[0]
Exemplo n.º 7
0
 def __init__(self, synonym_file, input_file_1, input_file_2, tuple_size):
     self.thesaurus = Thesaurus(synonym_file)
     self.input_file_1 = input_file_1
     self.input_file_2 = input_file_2
     self.tuple_size = tuple_size
Exemplo n.º 8
0
            textSubstitutions.append(sentenceSubstitutions)
        return textSubstitutions

    def obfuscate(self, text):
        """Apply the functions in sequence to obfuscate the text"""
        functions = [
            self._tokenise, self._substituteSynonyms, self._untokenise
        ]
        temp = text
        for function in functions:
            temp = function(temp)
        return temp

    def __repr__(self):
        return "Text obfuscator on thesaurus: '{}', with replace factor: {}".format(
            self._thesaurus.filename, self._replaceFactor)


if __name__ == "__main__":
    seed(0)

    thesaurus = Thesaurus(filename="./thesauruses/thesaurusA.pickle")
    obfuscator = Obfuscator(thesaurus, replaceFactor=1)
    print(obfuscator)
    text = "The quick brown fox jumped over the lazy dog!"

    obfuscatedText = obfuscator.obfuscate(text)
    print(text)
    print(obfuscatedText)
Exemplo n.º 9
0
 def __init__(self, config=None):
     self._config = config
     self._parser = Parse(config)
     self._indexer = Indexer(config)
     self._model = Word2Vec()
     self._model_1 = Thesaurus()
Exemplo n.º 10
0
from thesaurus import Thesaurus
from sys import exit

thes = Thesaurus()

print('Type HELP to see a list of commands and instructions.\n')

while True:
    query = input('Enter a word to look it up in the thesaurus:\n')

    if query.strip() == 'HELP':
        print('QUIT'.ljust(25), 'Exits the program.')
        print('REQUIRE <word list(s)>'.ljust(25), 'Shows only results from these specific word list(s).')
        print('REQUIRE ANY'.ljust(25), 'Does not show words that are not in a word list.')
        print('RESET SETTINGS'.ljust(25), 'Resets to default settings.')
        print()
        print('To add a new word list, create a txt file in the filters directory with each word on a new line. Then restart the program.')

    elif query.strip() == 'QUIT':
        exit()

    elif query.strip().lower() == 'reset settings':
        thes = Thesaurus()
        print('Settings have been reset.')

    elif query.strip() == 'require any':
        thes = Thesaurus(must_match=True)

    elif len(query.strip().split()) > 1:

        # change required word list(s)
Exemplo n.º 11
0
 def init_logic_translator(self, logic_thesaurus_path):
     """Initialize logic translator"""
     self._logic_thesaurus = Thesaurus(logic_thesaurus_path, ["Logic"])
     jieba.load_userdict(logic_thesaurus_path)
Exemplo n.º 12
0
 def init_classification(self, customized_thesaurus_path):
     self._customized_thesaurus = Thesaurus(customized_thesaurus_path, ["Frequency", "Property"])
     jieba.load_userdict(customized_thesaurus_path)
Exemplo n.º 13
0
class Data:

    structured_answers = [
        AnswerStructure('Ola, tudo bem?', ['Oi tudo bem', 'Oi', 'Tudo bem']),
        AnswerStructure(
            'Um ser humano adulto possui entre 4 a 6 litros de sangue.', [
                'quantos litros de sangue uma pessoa tem ?',
                'qual a quantidade de sangue de uma pessoa adulta ?'
            ]),
        AnswerStructure('São retirados 450 mililitros numa doação de sangue.',
                        ['quantos litros de sangue doação ?']),
        AnswerStructure('Celebre frase de Renè Descartes.', [
            ' De quem e a famosa frase “ Penso , logo existo ” ?',
            'famosa frase “ Penso , logo existo ” ?',
            'frase “ Penso , logo existo ” ?', 'Penso , logo existo',
            'Penso logo existo'
        ]),
        AnswerStructure('O chuveiro elétrico foi inventado no Brasil.', [
            'De onde é a invenção do chuveiro elétrico ?',
            'invenção do chuveiro elétrico ?',
            'onde foi inventado o chuveiro elétrico ?',
            'que país inventou o chuveiro elétrico ?'
        ]),
        AnswerStructure(
            'Quem inventou o chuveiro elétrico foi o brasileiro Francisco Canho.',
            [
                'Quem inventou o chuveiro elétrico ?',
                'Que pessoa inventou o chuveiro elétrico ?'
            ]),
        AnswerStructure(
            'Vaticano e Russia são o menor e o maior país do mundo, respectivamente.',
            [
                'Qual o menor e o maior país do mundo ?',
                'menor e o maior país do mundo ?', 'menor e o maior país',
                'qual menor e o maior país ?', 'país', 'países'
            ]),
        AnswerStructure('Vaticano é o menor país do mundo.', [
            'Qual o menor país do mundo ?', 'menor país do mundo',
            'menor país', 'Qual o menor país ?'
        ]),
        AnswerStructure('Russia é o maior país do mundo.', [
            'Qual o maior país do mundo ?', 'maior país do mundo ?',
            'maior país', 'Qual o maior país ?'
        ]),
        AnswerStructure('João Goulart.', [
            'Qual o nome do presidente do Brasil que ficou conhecido como Jango ?',
            'Qual o nome do presidente Jango ?', 'nome do presidente Jango ?',
            'Jango ?', 'presidente conhecido como Jango'
        ]),
        AnswerStructure(
            'A velocidade da luz é de 299 792 458 metros por segundo.',
            ['velocidade da luz em m/s', 'qual a velocidade da luz em m/s ?']),
        AnswerStructure('A velocidade da luz é de 300.000 Km/s.', [
            'velocidade da luz em km/s', 'qual a velocidade da luz',
            'velocidade da luz', 'qual a velocidade da luz em km/s ?'
        ]),
        AnswerStructure('42.', [
            '6x9', '6 x 9',
            'qual a resposta para a vida , o universo e tudo mais ?',
            'vida universo e tudo mais', 'resposta para a vida',
            'resposta para o universo'
        ]),
    ]

    thesaurus = Thesaurus([
        Synonym(['voce', 'vc', 'oce', 'ce', 'vs', 'vossa senhoria']),
        Synonym([
            'tudo bem', 'Tudo bem com voce', 'Tudo bom', 'Sussa', 'De boas',
            'De boa', 'Suave', 'Beleza', 'Blz', 'Firmeza', 'Fmz', 'Como vai',
            'Como está', 'Na boa'
        ]),
        Synonym(['Ola', 'Oi', 'E ai', 'Dae']),
        Synonym(['sair', 'fim', 'terminar', 'tchau', 'xau', 'vlw flw', 'flw']),
        Synonym(['maior', 'mais grande', 'gigante', 'grande']),
        Synonym(['menor', 'mais pequeno', 'pequeno']),
        Synonym(['doacao', 'doar', 'doação', 'doaçao', 'doacão']),
        Synonym([
            'de onde é', 'de onde e', 'onde', 'em que país', 'em que pais',
            'em qual pais', 'em qual país', 'em que lugar'
        ]),
        Synonym(['a gente', 'nós']),
        Synonym(['pais', 'país']),
        Synonym(['paises', 'países']),
        Synonym([
            'invencao', 'invenção', 'invencão', 'invençao', 'criação',
            'criacao'
        ]),
        Synonym(['inventor', 'criador']),
        Synonym(['é', 'e']),
        Synonym(['qual a', 'qual é a', 'qual e a']),
        Synonym(['tem', 'possui']),
        Synonym(['ter', 'possuir']),
        Synonym([
            'quantidade', 'quantos', 'qual a quantidade', 'qual quantidade',
            'quanto'
        ]),
        Synonym(['elétrico', 'eletrico']),
        Synonym(['pessoa', 'ser humano adulto', 'pessoa adulta', 'adulto']),
        Synonym([
            'que pessoa', 'qual pessoa', 'quem', 'qual foi a pessoa',
            'quem foi que'
        ]),
        Synonym([
            'metros por segundo', 'm/s', 'metros/s', 'm/sec', 'metros/sec',
            'mt/s'
        ]),
        Synonym(['quilometros por segundo', 'km/s', 'kilometros por segundo']),
    ])

    words_to_be_ignored = frozenset([
        'da', 'de', 'do', 'a', 'o', 'um', 'uma', 'é', 'para', 'pra', 'com',
        'sem', '?', '.', ','
    ])