{"id":17317979,"url":"https://github.com/marty1885/eoparser","last_synced_at":"2025-10-24T06:36:51.349Z","repository":{"id":88405771,"uuid":"328107354","full_name":"marty1885/eoparser","owner":"marty1885","description":"Word level Esperanto parser - helps computer understand the structure of Esperanto","archived":false,"fork":false,"pushed_at":"2023-03-15T08:10:00.000Z","size":100,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T02:30:47.044Z","etag":null,"topics":["conlang","constructed-language","esperanto","language-parsing","nlp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marty1885.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-01-09T08:15:14.000Z","updated_at":"2023-12-12T20:11:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"f81792c6-9960-49ca-a328-3e3e4a913403","html_url":"https://github.com/marty1885/eoparser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marty1885/eoparser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marty1885%2Feoparser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marty1885%2Feoparser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marty1885%2Feoparser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marty1885%2Feoparser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marty1885","download_url":"https://codeload.github.com/marty1885/eoparser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marty1885%2Feoparser/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262393502,"owners_count":23304130,"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":["conlang","constructed-language","esperanto","language-parsing","nlp"],"created_at":"2024-10-15T13:18:26.480Z","updated_at":"2025-10-24T06:36:46.316Z","avatar_url":"https://github.com/marty1885.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EOParser\n\n| ![demo](asset/demo1.png)                                    |\n|--------------------------------------------------------------|\n| EOParser parsing an article from Vikipedio                   |\n\n## What is it?\n\n`EOParser` is a python library that decomposes Esperanto words into it's particles. This is possible soly due to Esperanto's regular grammar! For example, the word \"malsanulo\" (sick person) will be decomposed into `mal` (opposite of), `san` (health), `ul` (suffix for a person) and `o` (marking it as a noun).\n\n## Really, what is it?\n\nTechincally `EOParser` is a handwritten GLL parser and disambiguator with a big list of poiible prefixes, suffixes, roots, etc... It uses the LL parser to parse words into it's particles.\n\n## Limitations\n\nEOParser is a word-level analyser. It does not care about the overall grammar and context of a sentence. Hence it may not disambiguate gwords correctly in some cases.\n\n## How to use\n\n```python\n\u003e\u003e\u003e import eoparser\n\u003e\u003e\u003e parser = eoparser.eoparser()\n\u003e\u003e\u003e parser.parse('geparto') # English: parent\n[['ge', 'prefix'], ['part', 'root']]\n```\n\nThe `eoparser.parse` method return a list of lists. Storing the particles and their in type order. In the example, `geparto` is decomposed into `ge` (the prefix for both sexes), `part` (the word root for parent) and the part-of-speech marker is omited. Meaning both father and mother.\n\nUse the `keep_ending_marker` if you wish to keep the `-o` part of speech marker. \n\n```python\n\u003e\u003e\u003e parser.parse('geparto', keep_ending_marker=True)\n[['ge', 'prefix'], ['part', 'root'], ['o', 'pos_marker']]\n```\n\nThis is the list of particle types\n\n| Types                      |\n|----------------------------|\n| root                       |\n| pos_marker                 |\n| suffix                     |\n| prefix                     |\n| word (special single word) |\n\n### Using a different dictionary\n\nEOParser uses severial dictionaries to track which particles are which. By default it loads from wherever the library lives.\n\n```python\nparser = eoparser.eoparser(numbers=\"my_list_of_numbers.txt\")\n# Or\nmy_list_of_numbers = load_numbers()\nparser = eoparser.eoparser(numbers=list(my_list_of_numbers))\n```\n\n| Parameter  |\n|------------|\n| numbers    |\n| prefixes   |\n| suffixes   |\n| roots      |\n| full_words |\n|correlatives|\n\n## Contribution\n\nEOParser is by no means perfect! Feel free to submit an issue, open a PR or anything!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarty1885%2Feoparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarty1885%2Feoparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarty1885%2Feoparser/lists"}