class LanguageListCreator(object): def __init__(self, wordreference_api_key='8a8bc'): self.dictionary = SpanishDictionary() self.translator = SpanishTranslator(wordreference_api_key) def random_verbs(self, number): word_array = dict() for i in range(0, number): translated_word, word = None, None while translated_word is None: word = self.dictionary.get_random_verb() if word not in word_array: translated_word = self.translator.translate_word(word) word_array[word] = translated_word return list(word_array.values()) def random_words(self, number): word_array = dict() for i in range(0, number): translated_word, word = None, None while translated_word is None: word = self.dictionary.get_random_word() if word not in word_array: translated_word = self.translator.translate_word(word) word_array[word] = translated_word return list(word_array.values()) def get_list_from_file(self, path_to_file, num): tokenizer = RegexpTokenizer(r'\w+') text = open(path_to_file, 'r').read() token_words = tokenizer.tokenize(text)[:num] word_dict = dict() word_count = dict() for word in token_words: if word not in word_dict: translated_word = self.translator.translate_word(word) if translated_word is not None: word_dict[word] = translated_word word_count[word] = 0 else: word_count[word] += 1 print(word_count) word_list = [word_dict[word] for word in sorted(word_count, key=word_count.get, reverse=True)] return word_list def get_list_from_text(self, text, num): tokenizer = RegexpTokenizer(r'\w+') token_words = tokenizer.tokenize(text) word_count = dict() for word in token_words: if word not in word_count: word_count[word] = 0 else: word_count[word] += 1 counted = Counter(word_count).most_common() index = 0 translated_words = [] for word in counted: if index < num: print(word) attempted = self.translator.translate_word(word[0]) if attempted is not None: translated_words.append(attempted) index += 1 else: break return translated_words