{"id":18686757,"url":"https://github.com/wayfair-incubator/extra-model","last_synced_at":"2025-04-12T05:07:52.846Z","repository":{"id":37807316,"uuid":"331280983","full_name":"wayfair-incubator/extra-model","owner":"wayfair-incubator","description":"Code to run the ExtRA algorithm for unsupervised topic/aspect extraction on English texts.","archived":false,"fork":false,"pushed_at":"2024-04-29T14:25:35.000Z","size":84362,"stargazers_count":49,"open_issues_count":3,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-05-01T14:15:17.789Z","etag":null,"topics":["aspect-based-sentiment-analysis","aspect-extraction","machine-learning-algorithms","nlp","nlp-keywords-extraction","nlp-library","python","python-library","python3"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wayfair-incubator.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-20T11:08:18.000Z","updated_at":"2024-05-03T19:30:35.985Z","dependencies_parsed_at":"2024-05-03T19:40:49.237Z","dependency_job_id":null,"html_url":"https://github.com/wayfair-incubator/extra-model","commit_stats":{"total_commits":825,"total_committers":18,"mean_commits":"45.833333333333336","dds":0.7006060606060607,"last_synced_commit":"98b0ea8043aa9f1c6d653e6cdf642de71f8c3f39"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayfair-incubator%2Fextra-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayfair-incubator%2Fextra-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayfair-incubator%2Fextra-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wayfair-incubator%2Fextra-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wayfair-incubator","download_url":"https://codeload.github.com/wayfair-incubator/extra-model/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248519545,"owners_count":21117761,"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":["aspect-based-sentiment-analysis","aspect-extraction","machine-learning-algorithms","nlp","nlp-keywords-extraction","nlp-library","python","python-library","python3"],"created_at":"2024-11-07T10:28:54.582Z","updated_at":"2025-04-12T05:07:52.811Z","avatar_url":"https://github.com/wayfair-incubator.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat\u0026labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![GitHub license](https://img.shields.io/github/license/wayfair-incubator/extra-model)](https://github.com/wayfair-incubator/extra-model/blob/main/LICENSE)\n![PyPI](https://img.shields.io/pypi/v/extra-model)\n\nTable of Contents\n=================\n\n* [extra\\-model](#extra-model)\n  * [Quick start](#quick-start)\n    * [Using docker\\-compose](#using-docker-compose)\n      * [Downloading Embeddings](#downloading-embeddings)\n      * [[Optional] Run docker\\-compose build again](#optional-run-docker-compose-build-again)\n      * [Run extra\\-model](#run-extra-model)\n  * [Learn more](#learn-more)\n* [Authors](#authors)\n\n# extra-model\n\nCode to run the Extra [algorithm](https://www.aclweb.org/anthology/D18-1384/) for the unsupervised topic/aspect extraction on English texts.\n\n[Read the Official Documentation here](https://wayfair-incubator.github.io/extra-model/site)\n\n## Quick start\n\n\n**IMPORTANT**:\n1. When running Extra inside docker-container, make sure that Docker process has enough resources.\nFor example, on Mac/Windows it should have at least 8 Gb of RAM available to it. [Read More about RAM Requirements][ram_requirements]\n1. GitHub repo does **not** come with Glove Embeddings. See section `Downloading Embeddings` for how to download the required embeddings.\n\n\n### Using docker-compose\n\nThis is a preferred way to run `extra-model`. \nYou can find instructions on how to run `extra-model` using CLI or as a Python package [here](https://wayfair-incubator.github.io/extra-model/site/running_extra/)  \n\nFirst, build the image:\n\n```bash\ndocker-compose build\n```\n\nThen, run following command to make sure that `extra-model` was installed correctly:\n\n```bash\ndocker-compose run test\n```\n\n#### Downloading Embeddings\n\nNext step is to download the embeddings (we use [Glove](https://nlp.stanford.edu/projects/glove/) from Stanford in this project).\n\nTo download the required embeddings, run the following command:\n\n```bash\ndocker-compose run --rm setup\n```\n\nThe embeddings will be downloaded, unzipped and formatted into a space-efficient format. Files will be saved in the `embeddings/` directory in the root of the project directory. If the process fails, it can be safely restarted. If you want to restart the process with new files, delete all files except `README.md` in the `embeddings/` directory.\n\n#### [Optional] Run `docker-compose build` again\n\nAfter you've downloaded the embeddings, you may want to run `docker-compose build` again. \nThis will build an image with embeddings already present inside the image. \n\nThe tradeoff here is that the image will be much bigger, but you won't spend ~2 minutes each time you run `extra-model` waiting for embeddings to be mounted into the container.\nOn the other hand, building an image with embeddings in the context will increase build time from ~3 minutes to ~10 minutes.\n\n#### Run `extra-model`\n\nFinally, running `extra-model` is as simple as:\n\n```bash\ndocker-compose run extra-model /package/tests/resources/100_comments.csv\n```\n\nNOTE: when using this approach, input file should be mounted inside the container.\nBy default, everything from `extra-model` folder will be mounted to `/package/` folder.\nThis can be changed in `docker-compose.yaml`\n\nThis will produce a `result.csv` file in `/io/` (default setting) folder.\n\nThere are multiple flags you can set to change input/outputs of extra. You can find them by running:\n\n```bash\ndocker-compose run extra-model --help\n```\n\n## Learn more\n\nOur [official documentation][official_documentation] is the best place to continue learning about `extra-model`:\n1. [Explanation of inputs/outputs][official_documentation]\n1. [Step-by-step workflow](https://wayfair-incubator.github.io/extra-model/site/workflow/) of what happens inside of `extra-model`\n1. [Examples](https://wayfair-incubator.github.io/extra-model/site/examples/examples/) of how `extra-model` can be used in downstream applications\n1. [Detailed explanation](https://wayfair-incubator.github.io/extra-model/site/running_extra/) of how to run `extra-model` using different interfaces (via `docker-compose`, via CLI, as a Python package).\n\n# Authors\n\n`extra-model` was written by `mbalyasin@wayfair.com`, `mmozer@wayfair.com`.\n\n[official_documentation]: https://wayfair-incubator.github.io/extra-model/site\n[ram_requirements]: https://wayfair-incubator.github.io/extra-model/site/ram_requirements\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwayfair-incubator%2Fextra-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwayfair-incubator%2Fextra-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwayfair-incubator%2Fextra-model/lists"}