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
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")
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")
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)
def __init__( self, textIn, thesaurus=Thesaurus(filename="./thesauruses/thesaurusA.pickle")): self.textOut = None self.thesaurus = thesaurus self.punctuation = ", . ? ! : ; -".split(" ") #Add more ??? self.textIn = textIn
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]
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
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)
def __init__(self, config=None): self._config = config self._parser = Parse(config) self._indexer = Indexer(config) self._model = Word2Vec() self._model_1 = Thesaurus()
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)
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)
def init_classification(self, customized_thesaurus_path): self._customized_thesaurus = Thesaurus(customized_thesaurus_path, ["Frequency", "Property"]) jieba.load_userdict(customized_thesaurus_path)
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', '?', '.', ',' ])