feat: add SKILL_SYNONYMS dictionary and normalize parse_skills (#1116) - #1122
feat: add SKILL_SYNONYMS dictionary and normalize parse_skills (#1116)#1122Viidhii19 wants to merge 3 commits into
Conversation
|
@Viidhii19 is attempting to deploy a commit to the komalsony234-1530's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Thanks for implementing skill synonym normalization. This is a useful improvement for recommendation matching, especially for common variations such as JS/JavaScript, ReactJS/React, and Node/Node.js. The overall scope looks appropriate, and adding dedicated test coverage is appreciated. Before this PR can be approved, please address the following:
Once the conflicts are resolved and the tests are passing, this should be ready for another review. |
Summary [required]
This PR implements synonym normalization in the skill parsing engine to ensure that user-supplied abbreviations (e.g., "JS", "ReactJS", "Node") successfully match canonical skill entries in the projects database (e.g., "JavaScript", "React", "Node.js"). This prevents project coverage scores from dropping to 0 due to formatting and naming variations, significantly improving recommendation quality for users who use common industry abbreviations.
Related Issue [required]
Closes #1116
Type of Change [required]
data/projects.jsonWhat Was Changed [required]
src/utils/recommender.pySKILL_SYNONYMSdictionary, modifiedparse_skills()to normalize incoming tags through the synonyms mapping, and exposedSKILL_ALIASESas a backwards-compatible alias toSKILL_SYNONYMS.tests/test_basic.pyCHANGELOG.mdCONTRIBUTING.mdHow to Test This PR [required]
git checkout feat/skill-synonym-normalizationpip install -r requirements.txt(or verify you have python setup)python tests/test_basic.pyExpected test output:
32 passed, 0 failed out of 32 tests
Test Results [required]
32 passed, 0 failed out of 32 tests
Self-Review Checklist [required]
feat/,fix/,docs/,data/,style/,test/python tests/test_basic.pyand all 32 tests passflake8 .locally and there are no errorsprint()orconsole.log()debug statementsNotes for Reviewer
SKILL_ALIASES = SKILL_SYNONYMSinternally to prevent breaking any dependent functions.