{"id":13535231,"url":"https://github.com/dmmiller612/lecture-summarizer","last_synced_at":"2025-03-16T21:30:48.662Z","repository":{"id":39482655,"uuid":"173009997","full_name":"dmmiller612/lecture-summarizer","owner":"dmmiller612","description":"Lecture summarization with BERT","archived":false,"fork":false,"pushed_at":"2022-10-01T07:52:54.000Z","size":278,"stargazers_count":150,"open_issues_count":9,"forks_count":39,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-27T14:31:14.548Z","etag":null,"topics":["bert","bert-model","extractive-summarization","flask","pytorch","summarization"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/1906.04165","language":"Python","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/dmmiller612.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}},"created_at":"2019-02-28T00:06:22.000Z","updated_at":"2025-02-26T07:45:39.000Z","dependencies_parsed_at":"2023-01-19T04:01:43.472Z","dependency_job_id":null,"html_url":"https://github.com/dmmiller612/lecture-summarizer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmmiller612%2Flecture-summarizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmmiller612%2Flecture-summarizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmmiller612%2Flecture-summarizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmmiller612%2Flecture-summarizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmmiller612","download_url":"https://codeload.github.com/dmmiller612/lecture-summarizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830939,"owners_count":20354853,"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":["bert","bert-model","extractive-summarization","flask","pytorch","summarization"],"created_at":"2024-08-01T08:00:51.624Z","updated_at":"2025-03-16T21:30:48.173Z","avatar_url":"https://github.com/dmmiller612.png","language":"Python","funding_links":[],"categories":["BERT Text Summarization Task:"],"sub_categories":[],"readme":"# lecture-summarizer\n\nThis project utilizes the BERT model to perform extractive text summarization on lecture transcripts. The contents of \nthis project include a RESTful API to serve these summaries, and a command line interface for easier interaction. You can \nfind more about the specs of this service and CLI in our `Documentation` directory.z\n\nPaper: https://arxiv.org/abs/1906.04165\n\n## Running the service locally\nFirst, docker is required to run the service locally. To start the service, run the command:\n```bash\nmake docker-build-run\n```\nOn the first run of a service, this may take quite some time to complete.\n\n\n## Installation of CLI\n\nThe CLI tool can be downloaded using pip with the following command:\n\n```bash\npip install git+https://github.com/dmmiller612/lecture-summarizer.git\n```\n\nTo test the tool, try getting the current lectures in the service with the command: \n```bash\nlecture-summarizer get-lectures\n```\n\nNote, that this tool automatically uses our cloud based service by default. You can use your local service by supplying \nthe `-base_path` option, such as `-base_path localhost:5000`. As an example, to get lectures locally, you could run: \n\n```bash\nlecture-summarizer get-lectures -base-path localhost:5000\n``` \n\n\n## How to use CLI tool\n\nAfter installing the CLI, the service should be ready to use. The lecture-summarizer uses the API service as \nit's backend. This backend defaults to the currently hosted one on AWS. The user can supply a specific URL if the \nservice is hosted elsewhere. Below, briefly discusses how to use the CLI tool.\n\n### Creating a Lecture\n\nBefore one can do anything with summarizations, there needs to be at least one lecture in the system. Taking an Udacity \nlecture, using the `raw_lecture.txt` file at the parent of the lecture-summarizer directory as an example, one can upload \nthe content issuing the following command:\n\n```bash\nlecture-summarizer create-lecture -path ./raw_lecture.txt -name example_first_lecture -course IHI\n```\n\nCurrently, the lecture-summarizer can parse sdp file formats, which are common for Udacity-based lectures. Notice that one \nneeds to supply a `name` and a `course` as metadata.\n\n### Retrieving Lectures\n\nOne can retrieve lectures with a couple of options. Those options can be found in the Documentation/CLI_Documentation.md \nfile in the base of the repo. Some example commands are shown below:\n\n##### Get a Single Lecture\n```bash\nlecture-summarizer get-lectures -lecture-id 1\n```\n\n##### Get All  Lectures\n```bash\nlecture-summarizer get-lectures\n```\n\n##### Get Lectures by Name\n```bash\nlecture-summarizer get-lectures -name example_first_lecture\n```\n\n##### Get Lectures by Course\n```bash\nlecture-summarizer get-lectures -course ihi\n```\n\n### Creating a Summary\n\nJust like creating a lecture, creating a summary is a painless process. Below is an example of creating a summary from \na specified lecture.\n\n```bash\nlecture-summarizer create-summary -lecture-id 1 -name 'my summary name' -ratio 0.2\n``` \n\nThe `ratio` specifies approximately how much of the lecture that you want to summarize.\n\n### Retrieving Summaries\n\nJust like with retrieving lectures, one can also list summaries. Below are a couple of examples:\n\n##### Get a Single Summary\n```bash\nlecture-summarizer get-summaries -lecture-id 1 -summary-id 1\n```\n\n##### Get All Summaries\n```bash\nlecture-summarizer get-summaries -lecture-id 1\n```\n\n##### Get All Summaries by Name\n```bash\nlecture-summarizer get-summaries -lecture-id 1 -name 'my summary name'\n```\n\n##### Delete a Summary\n```bash\nlecture-summarizer delete-summary -lecture-id 1 -summary-id 1\n```\n\n## RESTful API Docs\n\n##### POST /lectures\n\nThis endpoint creates a lecture.\n\n```json\n{\n  \"course\": \"course identifier\",\n  \"content\": \"Lecture String Content\",\n  \"name\": \"Lecture name\"\n}\n``` \n\n##### GET /lectures\n\nThis endpoint is used to retrieve lectures. The user can supply two query params shown below.\n```\n/lectures?course=unique_identifier\n/lectures?name=course_name\n```\n\n##### GET /lectures/{id}\n\nThis endpoint is used to retrieve a single lecture\n```\n/lectures/{id}\n```\n\n##### POST /lectures/{id}/summaries\n\nThis endpoint is used to create a summarization from a lecture\n```json\n{\n  \"name\": \"Summarization name\",\n  \"ratio\": \"Ratio of sentences to select\"\n}\n```\n\n##### GET /lectures/{id}/summaries\n```\n/lectures/{id}/summaries?name=course_name\n/lectures/{id}/summaries\n```\n\n##### GET/DELETE /lectures/{id}/summaries/{summarization_id} \n\nThis endpoint allows you to get or delete a summarization.\n```\n/lectures/{id}/summaries/{summarization_id} \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmmiller612%2Flecture-summarizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmmiller612%2Flecture-summarizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmmiller612%2Flecture-summarizer/lists"}