ap.utils

Модуль для работы с BPE моделями

ap.utils.bpe.load_bpe_models(bpe_path: str) dict

Загружает обученные BPE модели.

Параметры

bpe_path (str) – путь до папки с обученными BPE моделями.

Результат

словарь с обученными BPE моделями.

Тип результата

res (dict)

Модуль для работы со словарями ARTM.

ap.utils.dictionary.get_num_entries(dictionary: Dictionary) int

Возвращает размер словаря.

Параметры

dictionary (artm.Dictionary) – словарь тематической модели

Результат

количество токенов в словаре

ap.utils.dictionary.limit_classwise(dictionary: Dictionary, cls_ids: Iterable[str], max_dictionary_size: int, tmp_dir: str, out_file: str)

Ограничивает словарь и сохраняет его в out_file.

Ограничивает словарь таким образом, что в разрезе каждоого class id будет не более max_dictionary_size токенов. Сохраняет словарь в текстовым форматом в файле out_file.

Параметры
  • dictionary (artm.Dictionary) – исходный словарь

  • cls_ids (list) – модальности

  • max_dictionary_size (int) – максимальный размер словаря в разрезе модальности

  • tmp_dir (str) – директория для хранения промежуточных результатов

  • out_file (str) – файл, в который сохраняется результат

Модуль содержит функции общего назначения.

ap.utils.general.batch_names(starts_from: object, count: object) Generator[str, None, None]

Генерирует названия батчей в соответствие с форматом BatchVectorizer.

Параметры
  • starts_from – название файла последнего батча в директории

  • count – количество батчей

Результат

Генератор имен батчей

Тип результата

(Generator[str, None, None])

ap.utils.general.docs_from_pack(pack) Dict[str, Dict[str, str]]

Создает словарь документов из pack.

Параметры

pack (ap.topic_model.v1.TopicModelBase_pb2.DocumentPack) – коллекция

Результат

словарь из документов

Тип результата

(dict)

ap.utils.general.ensure_directory(path: str) str

Создает директорию, если ее нет, и возвращает path.

Параметры

path (str) – путь к директории

Результат

путь к директории

Тип результата

path (str)

ap.utils.general.get_modalities(doc)

Возвращает словарь, где по языку хранятся токены на этом языке.

Параметры

doc – документ

Результат

словарь язык -> строка токенов на этом языке через пробел

Тип результата

res (dict)

ap.utils.general.id_to_str(doc_id) str

Конвертирует DocId в строку.

Параметры

id (DocId) – id документа

Результат

Строка из DocId

Тип результата

(str)

Рекурсивно удаляет файлы и директории.

Параметры

path (pathlib.Path) – путь, по которому необходимо удалить все файлы.

class ap.utils.rank_metric.RankingByModel(bcg_topic_list: list, metrics_to_calculate: List[str], model_path: str, path_subsamples: str, path_rubrics: str)

Класс для вычисления метрик качества тематической модели.

get_thetas(path_test: str, path_thetas: str, current_languages: List[str], recalculate_test_thetas: bool = True)

Возвращает матрицы Тэта, посчитанные по данным из path_test.

Параметры
  • path_test (str) – папка с данными в формате f’test_{lang}_120k.txt“, для которых надо построить матрицы Тэта

  • path_thetas (str) – путь для сохранения / загрузки матниц Тэта

  • current_languages (list of str) – названия языков, используемых для подсчёта метрик

  • recalculate_test_thetas (bool) – признак необходимости вычислять матрицы Тэта для тестовых данных - True означает пересчитать Тэты - False означает загрузить существующие Тэты

Результат

словарь язык -> матрица Тэта, посчитанная по данным соответствующего языка из path_test

Тип результата

theta_lang (dict)

metrics_to_df(path_train_lang: str, current_languages: List[str], theta_lang) Tuple[Dict[str, DataFrame], Dict[str, DataFrame], DataFrame]

Возвращает метрики качества.

Параметры
  • path_train_lang (str) – путь к папке с папками языков, в которых лежат центроиды, построенные по ТРЕНИРОВОЧНЫМ данным каждого языка

  • path_experiment_result (str) – путь для сохранения результатов

  • current_languages (list of str) – названия языков, используемых для подсчёта метрик

  • theta_lang (dict) – словарь язык -> матрица Тэта, построенная по ТЕСТОВЫМ данным каждого языка

Результат

по названию метрики хранится pandas.DataFrame, где для каждой пары языков оригинал-перевод хранится метрика «Средний процент» frequency (dict): по названию метрики хранится pandas.DataFrame, где для каждой пары языков оригинал-перевод хранится метрика «Средняя частота» intersections (pandas.DataFrame): pandas.DataFrame, где для каждой пары языков оригинал-перевод хранится пересечение документов

Тип результата

percent (dict)

ap.utils.rank_metric.quality_of_models(path_train_lang: str, bcg_topic_list: List[str], metrics_to_calculate: List[str], path_model: str, path_experiment_result: str, path_subsamples: str, path_rubrics: str, path_test: str, current_languages: List[str], recalculate_test_thetas: bool) Dict[str, Dict[str, float]]

Возвращает метрики качества тематической модели.

Параметры
  • path_train_lang (str) – путь к папке с папками языков, в которых лежат центроиды, построенные по ТРЕНИРОВОЧНЫМ данным каждого языка

  • bcg_topic_list (list of str) – список фоновых тем тематической модели например: bcg_topic_list = [„topic_0“]

  • metrics_to_calculate (list of str ('analogy', 'eucl')) – список названий мер близости, используемых для ранжирования

  • path_model (str) – путь до тематической модели

  • path_experiment_result (str) – путь до папки, куда сохраняются результаты модели

  • path_subsamples (str) – путь к файлу в формате json, содержащему подвыборки индексов документов, по которым будет производиться поиск

  • path_rubrics (str) – путь к json-файлу, где по doc_id содержится его рубрика

  • path_test (str) – путь к папке с txt-файлами, по которым будут считаться метрики

  • current_languages (list) – названия языков, используемых для подсчёта метрик

  • recalculate_test_thetas (bool) – признак необходимости вычислять матрицы Тэта для тестовых данных - True означает пересчитать Тэты - False означает загрузить существующие Тэты

Результат

словарь имя модели -> словарь название метрики -> значение метрики

Тип результата

quality_experiment (dict)

Модуль для вычисления качества тематической модели.

ap.utils.search_quality.calculate_search_quality(config_experiment) Dict[str, Dict[str, Dict[str, float]]]
Вычисление качества модели по 6 метрикам:
  • Средняя частота УДК,

  • Средний процент УДК,

  • Средняя частота ГРНТИ,

  • Средний процент ГРНТИ,

  • Средняя частота ВАК,

  • Средний процент ВАК.

Параметры

config_experiment (dict) –

конфиг эксперимента, содержащий:

  • config_experiment[«path_experiment»] (str): путь до папки с экспериментом

  • config_experiment[„path_model“] (str): путь до тестируемой модели,

  • config_experiment[„path_results“] (str): путь для выгрузки результата эксперимента,

  • config_experiment[«artm_model_params»] (dict): параметры тематической модели ARTM,
    • config_experiment[«artm_model_params»][«num_bcg_topic»] (int): количество фоновых тем,

  • config_experiment[«bcg_topic_list»] (typing.Optional[typing.List[str]]): список фоновых тем,

  • config_experiment[„metrics_to_calculate“] (str): название меры близости („analogy“ или „eucl“),

  • config_experiment[„path_train_thetas“] (str): путь до центроид

  • config_experiment[„recalculate_train_centroids“] (bool): признак необходимости вычислять центроиды

  • config_experiment[„recalculate_test_thetas“] (bool): признак необходимости вычислять матрицы Тэта для тестовых данных

  • config_experiment[«languages_for_metric_calculation»] (list): названия языков, используемых для подсчёта метрик

  • config_experiment[„path_test“] (str): путь до тестовых данных

  • config_experiment[„path_subsamples_list“] (list): список путей к json-файлам, содержащим подвыборки индексов документов, по которым будет производиться поиск

  • config_experiment[„path_rubrics_list“] (list): список путей к json-файлам с рубриками, где по doc_id содержится рубрика документа

Результат

подсчитанные метрики качества

Тип результата

quality (dict)

ap.utils.search_quality.dump_train_centroids(model_path: str, bcg_topic_list: List[str], current_languages: List[str], path_train_centroids: str)

Вычисляет центроиды, необходимые для преобразования текста из одного языка в другой.

Параметры
  • model_path (str) – путь до тематичекой модели

  • bcg_topic_list (list) – список тем, которые не будут использоваться для построения

  • current_languages (list) – названия языков, используемых для подсчёта метрик

  • path_train_centroids (str) – путь для выгрузки центроид

Класс для работы с данными в формате Vowpal Wabbit.

class ap.utils.vowpal_wabbit.VowpalWabbit(use_counters)

Класс сохранения VW файлов.

convert_doc(doc: Dict[str, str]) Dict[str, Union[str, Counter]]

Конвертирует исходный документ в формат BOW.

Параметры

doc (dict) – словарь язык -> текст документа

Результат

словарь язык -> BOW документа. Если use_counters==True, словарь в виде Counter

Тип результата

res (dict)

save_docs(target_file: TextIO, doc: Dict[str, Dict[str, str]])

Конвертирует документы в BOW и сохраняет их.

Параметры
  • target_file – путь к файлу

  • doc – сырые документы

Модуль для работы с данными в формате Vowpal Wabbit.

class ap.utils.vowpal_wabbit_bpe.VowpalWabbitBPE(bpe_models: dict, use_counters: bool = True)

Класс для сохранения VW файлов с BPE преобразованием.

convert_doc(doc: Dict[str, str]) Dict[str, Union[str, Counter]]

Конвертирует исходный документ в формат BOW.

Параметры

doc (dict) – словарь язык -> текст документа.

Результат

словарь язык -> BOW документа. Если use_counters==True, словарь в виде Counter.

Тип результата

res (dict)

convert_to_bow(data: Dict[str, Dict[str, str]]) Dict[str, Dict[str, Union[str, Counter]]]

Конвертирует набор документов в BOW представление (см. VowpalWabbit.convet_doct).

Параметры

data (dict) – словарь айди документа -> документ.

Результат

словарь айди документа -> документ в виде BOW.

Тип результата

sessions_bow_messages (dict)

save_bow(target_file: str, sessions_bow_messages: Dict[str, Dict[str, Union[str, Counter]]])

Сохраняет BOW представление документов.

Параметры
  • target_file (str) – путь к файлу.

  • sessions_bow_messages (dict) – doc_id -> dict: modality -> dict: token -> count.

save_docs(target_file: str, doc: Dict[str, Dict[str, str]])

Конвертирует документы в BOW и сохраняет их.

Параметры
  • target_file – путь к файлу.

  • doc – сырые документы.