Skip to content

πŸ₯ˆ 2nd place AgroCode hackathon solution for professions adaptive clustering

Notifications You must be signed in to change notification settings

DCDsqd/AgroCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π˜ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ запуску

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]

About

πŸ₯ˆ 2nd place AgroCode hackathon solution for professions adaptive clustering

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published