Skip to content

Latest commit

 

History

History
92 lines (69 loc) · 8.94 KB

File metadata and controls

92 lines (69 loc) · 8.94 KB

Иструкция по запуску

pip install -r requirements.txt

Запуск python src/main.py

Где искать таблицу кластеров:

db/normalized_data.db в таблице clusters

cluster == -1 - выбросы
cluster == -2 - слишком маленький стаж работы
cluster == -3 - название не имеет смысла (или погрешности парса)
Все остальные значения - кластеры

Как настроить config.json

Пояснения для всех значений конфига:

DBSCAN_epsilon

Это параметр в алгоритме кластеризации DBSCAN (Density-Based Spatial Clustering of Applications with Noise). Этот параметр определяет радиус окрестности вокруг точки данных, в пределах которого другие точки считаются частью "соседства". Другими словами, epsilon это расстояние, на котором алгоритм будет искать соседей для каждой точки. Если в радиусе epsilon от точки находится достаточное количество других точек (как определено другим параметром, min_samples), то эта точка считается центральной точкой кластера. Это ключевой параметр для определения того, как точки данных будут группироваться вместе, и его значение обычно выбирается на основе предварительного анализа данных или экспериментально.
Значение: null для автоматичесикого определения (ресурсозатратно) или float > 0.0

DBSCAN_epsilon_mutation_population

Размер популяции при её создании для генетического алгоритма. Это число указывает, сколько различных кандидатов (или индивидуумов) будет в исходной популяции, каждый из которых будет представлять различное значение epsilon для DBSCAN.
Значение: int

DBSCAN_epsilon_mutation_gens

Задаёт количество поколений, которые будут использоваться в генетическом алгоритме. Каждое поколение — это полный цикл селекции, кроссовера и мутации в популяции.
Значение: int

DBSCAN_epsilon_mutation_range_*

Задает границы, в которых может находиться epsilon для DBSCAN.
Значение: float > 0.0

DBSCAN_epsilon_mutation_indpb

Когда происходит мутация в рамках генетического алгоритма, indpb определяет, насколько вероятно, что любой конкретный атрибут (или параметр) индивидуума изменится. В данном случае, если индивидуум представляет собой набор параметров для алгоритма DBSCAN, и один из этих параметров — epsilon, то DBSCAN_epsilon_mutation_indpb будет регулировать, насколько часто изменения будут применяться к значению epsilon во время операции мутации.
Значение: float > 0.0

DBSCAN_epsilon_mutation_algo_mutpb

Параметр определяет вероятность того, что мутация будет применена к любому данному индивидууму в популяции при каждом поколении.
Значение: float > 0.0

DBSCAN_epsilon_mutation_algo_cxpb

Шанс, что кроссовер произойдет между парами индивидуумов в популяции. Кроссовер — это процесс, в котором два индивидуума (решения) комбинируются для создания одного или более потомков. Это ключевой механизм генетических алгоритмов, который способствует объединению хороших характеристик родительских индивидов в потомках.
Значение: float > 0.0

DBSCAN_epsilon_selection_tournsize

Определяет, сколько индивидуумов участвует в каждом турнире. Турнирный отбор — это метод отбора, при котором случайным образом выбирается небольшая группа индивидуумов из популяции, и лучший индивидуум из этой группы (т.е., тот, который имеет лучшую приспособленность) выбирается для кроссовера и/или мутации.
Значение: int

use_persons_expirience_at_the_time_of_getting_job

Флаг использования параметра стажа работника на момент получения работы в кластеризации.
Значение: bool

expirience_at_the_time_of_getting_job_weight

Вес при использовании параметра стажа работника на момент получения работы в кластеризации. Учитывается только при use_persons_expirience_at_the_time_of_getting_job == true.
Значение: float

apply_eng_to_ru_translation

Флаг использования Bing API для перевода названий профессий.
Значение: bool

canon_job_names_top_percentile

Определяет, сколько процентов от самых популярных профессий взять за "канонические" и попытаться привести к ним менее популярные профессии.
Значение: 0 <= int <= 100

try_to_find_canon_in_bottom_percentile

Определяет, сколько процентов от наименее популярных профессий принимает участие в оптимизации, задаваемой canon_job_names_top_percentile.
Значение: 0 <= int <= 100

tokenizer_max_length

Ограничение, устанавливаемое для длины входной последовательности токенов.
Значение: int

activate_spell_check

Определяет, нужно ли проверять имена профессий на орфографические ошибки.
Значение: bool

lemmatize_job_names

Определяет, нужно ли лемматизировать имена профессий (весьма ресурсозатратно).
Значение: bool

abbreviation_dict

Определяет "нормальную" форму для заданных строк. Используется для расшифровки аббревиатур, нежелательных строк и т. д.
Значение: list[str]

words_to_never_discard

Определяет список слов, которые нельзя откидывать при нормализации названий профессий из-за их ключевого влияния на смысл.
Значение: list[str]

words_to_not_consider_as_canon_job_name

Определяет список слов, которые следует исключить из списка полученных "канонических" названий профессий при включенном canon_job_names_top_percentile из-за их слишком общего смысла.
Значение: list[str]