{"id":18587558,"url":"https://github.com/inanyan/eng-ua-translator1","last_synced_at":"2026-01-25T00:31:24.829Z","repository":{"id":204727660,"uuid":"700262781","full_name":"InAnYan/eng-ua-translator1","owner":"InAnYan","description":"Rule based English to Ukrainian translator","archived":false,"fork":false,"pushed_at":"2023-11-18T08:42:34.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-26T18:28:05.874Z","etag":null,"topics":["english","lisp","nlp","racket","translator","ukrainian"],"latest_commit_sha":null,"homepage":"","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InAnYan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-04T09:04:49.000Z","updated_at":"2023-10-31T16:30:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"57142567-2da2-407d-af15-5045a08cb033","html_url":"https://github.com/InAnYan/eng-ua-translator1","commit_stats":null,"previous_names":["inanyan/eng-ua-translator1"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InAnYan%2Feng-ua-translator1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InAnYan%2Feng-ua-translator1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InAnYan%2Feng-ua-translator1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InAnYan%2Feng-ua-translator1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InAnYan","download_url":"https://codeload.github.com/InAnYan/eng-ua-translator1/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239340503,"owners_count":19622704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["english","lisp","nlp","racket","translator","ukrainian"],"created_at":"2024-11-07T00:39:36.637Z","updated_at":"2025-02-17T17:57:34.834Z","avatar_url":"https://github.com/InAnYan.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rule based English to Ukrainian translator\n\nVery simple translator. Barely handles Present Simple.\n\nCurrently it doesn't work because of unimplemented dictionary interface.\nThe declension part is also undone.\n\nThinking about writing it in Python and making it much simpler.\n\n## Dependencies\n- `amb-parser` (my package, actually).\n\n## Algorithm:\n1. Parse English sentence into parse tree (`parsing.rkt`, `english-grammar.rkt`, `dictionary.rkt`):\n    1. Downcase string.\n    2. Remove punctuation characters.\n    3. Split string into words by whitespace.\n    4. Tag POS for words.\n    5. Parse the sentence. (`amb-parser` handles ambiguity, so it returns all possible parse trees).\n2. Transform English parse tree into Ukrainian parse tree.\n\n    That's the heart of the translator. It uses rules and Racket's `match` form to transform English grammar patterns to Ukrainian grammar patterns.\n    \n    The only thing it handles are:\n    - Removing `am`, `is`, `are` from simple sentences (like: `My name is Anton.`).\n    - Removing determiners `a`, `an`, `the`.\n    - Transforming sentences with `have`/`has` (like: `I have a pen.` -\u003e `В я є ручка.`).\n4. Decline Ukrainian parse tree and turn it into string.\n\n    It should be an interesing part of the program. I've tried to write declension functions some time ago, but failed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finanyan%2Feng-ua-translator1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finanyan%2Feng-ua-translator1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finanyan%2Feng-ua-translator1/lists"}