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)
- ap.utils.general.recursively_unlink(path: Path)¶
Рекурсивно удаляет файлы и директории.
- Параметры
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 – сырые документы.