rupo.generate package¶
Submodules¶
rupo.generate.filters module¶
-
class
rupo.generate.filters.
Filter
[исходный код]¶ - Базовые классы:
object
Фильтр языковой модели.
-
filter_model
(model: <built-in function array>, vocabulary: rupo.util.vocabulary.Vocabulary) → <built-in function array>[исходный код]¶ Фильтрация языковой модели.
Параметры: - model – изначальная модель.
- vocabulary – словарь
Результат: модель после фильтрации и нормирования.
-
filter_word
(word: rupo.main.markup.Word) → bool[исходный код]¶
-
filter_words
(words: typing.List[rupo.main.markup.Word]) → typing.List[rupo.main.markup.Word][исходный код]¶ Фильтрация набора слов.
Параметры: words – слова. Результат: слова после фильтрации.
-
pass_word
(word: rupo.main.markup.Word) → None[исходный код]¶
-
-
class
rupo.generate.filters.
MetreFilter
(metre_pattern: str)[исходный код]¶ - Базовые классы:
rupo.generate.filters.Filter
Фильтр по шаблону метра.
-
filter_word
(word: rupo.main.markup.Word) → bool[исходный код]¶ Фильтрация слова по метру в текущей позиции.
Параметры: word – слово. Результат: подходит слово или нет.
-
pass_word
(word: rupo.main.markup.Word) → None[исходный код]¶ Сдвинуть позицию в шаблоне метра на слово.
Параметры: word – слово (Word).
-
reset
() → None[исходный код]¶ Сброс позиции в шаблоне.
-
-
class
rupo.generate.filters.
RhymeFilter
(rhyme_pattern: str, letters_to_rhymes: dict = None)[исходный код]¶ - Базовые классы:
rupo.generate.filters.Filter
Фильтр по шаблону рифмы.
-
filter_word
(word: rupo.main.markup.Word) → bool[исходный код]¶ Фильтрация слова по рифме в текущей позиции.
Параметры: word – слово (Word). Результат: подходит слово или нет.
-
pass_word
(word: rupo.main.markup.Word) → None[исходный код]¶ Сдвинуть позицию в шаблоне рифмы на строчку.
Параметры: word – рифмующееся слово (Word).
-
rupo.generate.generator module¶
-
class
rupo.generate.generator.
Generator
(model_container, vocabulary: rupo.util.vocabulary.Vocabulary)[исходный код]¶ - Базовые классы:
object
Генератор стихов
-
generate_line
(metre_filter: rupo.generate.filters.MetreFilter, rhyme_filter: rupo.generate.filters.RhymeFilter, prev_word_indices: typing.List[int]) → typing.List[str][исходный код]¶ Генерация одной строки с заданными шаблонами метра и рифмы.
Параметры: - metre_filter – фильтр по метру.
- rhyme_filter – фильтр по рифме.
- prev_word_indices – индексы предыдущих слов.
Результат: слова строка.
-
generate_poem
(metre_schema: str = '-+', rhyme_pattern: str = 'abab', n_syllables: int = 8, letters_to_rhymes: dict = None) → str[исходный код]¶ Генерация стихотворения с выбранными параметрами.
Параметры: - metre_schema – схема метра.
- rhyme_pattern – схема рифмы.
- n_syllables – количество слогов в строке.
- letters_to_rhymes – заданные рифмы.
Результат: стихотворение.
-
generate_poem_by_line
(line: str, rhyme_pattern: str, accent_dict: rupo.accents.dict.AccentDict, accents_classifier: rupo.accents.classifier.MLAccentClassifier) → str[исходный код]¶ Генерация стихотвторения по одной строчке.
Параметры: - accent_dict – словарь ударений.
- accents_classifier – классификатор.
- line – строчка.
- rhyme_pattern – шаблон рифмы.
Результат: стихотворение
-
generate_word
(prev_word_indices: typing.List[int], filters: typing.List[rupo.generate.filters.Filter]) → int[исходный код]¶ Генерация нового слова на основе предыдущих с учётом фильтров.
Параметры: - prev_word_indices – индексы предыдущих слов.
- filters – фильтры модели.
Результат: индекс нового слова.
-
-
rupo.generate.generator.
choice
(a, size=None, replace=True, p=None)¶ Generates a random sample from a given 1-D array
Добавлено в версии 1.7.0.
- a : 1-D array-like or int
- If an ndarray, a random sample is generated from its elements. If an int, the random sample is generated as if a was np.arange(n)
- size : int or tuple of ints, optional
- Output shape. If the given shape is, e.g.,
(m, n, k)
, thenm * n * k
samples are drawn. Default is None, in which case a single value is returned. - replace : boolean, optional
- Whether the sample is with or without replacement
- p : 1-D array-like, optional
- The probabilities associated with each entry in a. If not given the sample assumes a uniform distribution over all entries in a.
- samples : 1-D ndarray, shape (size,)
- The generated random samples
- ValueError
- If a is an int and less than zero, if a or p are not 1-dimensional, if a is an array-like of size 0, if p is not a vector of probabilities, if a and p have different lengths, or if replace=False and the sample size is greater than the population size
randint, shuffle, permutation
Generate a uniform random sample from np.arange(5) of size 3:
>>> np.random.choice(5, 3) array([0, 3, 4]) >>> #This is equivalent to np.random.randint(0,5,3)
Generate a non-uniform random sample from np.arange(5) of size 3:
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) array([3, 3, 0])
Generate a uniform random sample from np.arange(5) of size 3 without replacement:
>>> np.random.choice(5, 3, replace=False) array([3,1,0]) >>> #This is equivalent to np.random.permutation(np.arange(5))[:3]
Generate a non-uniform random sample from np.arange(5) of size 3 without replacement:
>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0]) array([2, 3, 0])
Any of the above can be repeated with an arbitrary array-like instead of just integers. For instance:
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher'] >>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3]) array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], dtype='|S11')
rupo.generate.markov module¶
-
class
rupo.generate.markov.
MarkovModelContainer
(dump_filename: str, markup_dump_path: str = None)[исходный код]¶ - Базовые классы:
object
Марковские цепи.
-
add_markup
(markup: rupo.main.markup.Markup) → None[исходный код]¶ Дополнение цепей на основе разметки.
Параметры: markup – разметка.
-
generate_chain
(words: typing.List[int]) → typing.List[collections.Counter][исходный код]¶ Генерация переходов в марковских цепях с учётом частотности.
Параметры: words – вершины цепи. Результат: обновленные переходы.
-
get_model
(word_indices: typing.List[int]) → <built-in function array>[исходный код]¶ Получение языковой модели.
Параметры: word_indices – индексы предыдущих слов. Результат: языковая модель (распределение вероятностей для следующего слова).
-