All Projects → dmmiller612 → Lecture Summarizer

dmmiller612 / Lecture Summarizer

Lecture summarization with BERT

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Lecture Summarizer

Fccss
Computer Science SCHOOL resources
Stars: ✭ 84 (-10.64%)
Mutual labels:  flask
Flask Paper Kit
Flask Boilerplate - Paper Kit Design | AppSeed
Stars: ✭ 89 (-5.32%)
Mutual labels:  flask
Watson Voice Bot
Create a Watson Assistant chatbot that uses voice over a web browser.
Stars: ✭ 92 (-2.13%)
Mutual labels:  flask
Summarus
Models for automatic abstractive summarization
Stars: ✭ 83 (-11.7%)
Mutual labels:  summarization
Pybooks
python books
Stars: ✭ 87 (-7.45%)
Mutual labels:  flask
Incepiton Mysql
🍭A web platform designed for mysql inception
Stars: ✭ 90 (-4.26%)
Mutual labels:  flask
Terraformize
Apply\Destory Terraform modules via a simple REST API endpoint.
Stars: ✭ 84 (-10.64%)
Mutual labels:  flask
Markbj
一个开放的知识社区
Stars: ✭ 94 (+0%)
Mutual labels:  flask
Job Web Demo
Python Web 实战项目,Flask + Jinja2 + Bootstrap 开发的招聘网站
Stars: ✭ 87 (-7.45%)
Mutual labels:  flask
Flask Tutorial
这个项目已经很久很久了, 不推荐看, 不过倒是可以进群叨逼叨一下. 🚗 交流群:630398887
Stars: ✭ 91 (-3.19%)
Mutual labels:  flask
Blogreworkpro
Rework the BlogRework, a SEO friendly SPA, build with flask, react, redux, mongodb...
Stars: ✭ 86 (-8.51%)
Mutual labels:  flask
Ccks2019 Task5
CCKS2019评测任务五-公众公司公告信息抽取,第3名
Stars: ✭ 87 (-7.45%)
Mutual labels:  flask
Solarpi
A RaspberryPi based, Flask powered photovoltaic monitor
Stars: ✭ 90 (-4.26%)
Mutual labels:  flask
Deep Learning Training Gui
Train and predict your model on pre-trained deep learning models through the GUI (web app). No more many parameters, no more data preprocessing.
Stars: ✭ 85 (-9.57%)
Mutual labels:  flask
Tldr
Text summarizer for golang using LexRank
Stars: ✭ 92 (-2.13%)
Mutual labels:  summarization
Bhagavadgita
A non-profit initiative to help spread the transcendental wisdom from the Bhagavad Gita to people around the world.
Stars: ✭ 84 (-10.64%)
Mutual labels:  flask
Carbon Api
Unofficial API for generating beautiful images of your source code using Carbon.
Stars: ✭ 89 (-5.32%)
Mutual labels:  flask
Gxgk Wechat Server
校园微信公众号,使用 Python、Flask、Redis、MySQL、Celery [DEPRECATED]
Stars: ✭ 1,325 (+1309.57%)
Mutual labels:  flask
Work At Olist
Apply for a job at Olist's Development Team: https://bit.ly/olist-webdev
Stars: ✭ 93 (-1.06%)
Mutual labels:  flask
Flaskdash
Flask starter app featuring CoreUI and the FlaskUser module.
Stars: ✭ 90 (-4.26%)
Mutual labels:  flask

lecture-summarizer

This project utilizes the BERT model to perform extractive text summarization on lecture transcripts. The contents of this project include a RESTful API to serve these summaries, and a command line interface for easier interaction. You can find more about the specs of this service and CLI in our Documentation directory.z

Paper: https://arxiv.org/abs/1906.04165

Running the service locally

First, docker is required to run the service locally. To start the service, run the command:

make docker-build-run

On the first run of a service, this may take quite some time to complete.

Installation of CLI

The CLI tool can be downloaded using pip with the following command:

pip install git+https://github.com/dmmiller612/lecture-summarizer.git

To test the tool, try getting the current lectures in the service with the command:

lecture-summarizer get-lectures

Note, that this tool automatically uses our cloud based service by default. You can use your local service by supplying the -base_path option, such as -base_path localhost:5000. As an example, to get lectures locally, you could run:

lecture-summarizer get-lectures -base-path localhost:5000

How to use CLI tool

After installing the CLI, the service should be ready to use. The lecture-summarizer uses the API service as it's backend. This backend defaults to the currently hosted one on AWS. The user can supply a specific URL if the service is hosted elsewhere. Below, briefly discusses how to use the CLI tool.

Creating a Lecture

Before one can do anything with summarizations, there needs to be at least one lecture in the system. Taking an Udacity lecture, using the raw_lecture.txt file at the parent of the lecture-summarizer directory as an example, one can upload the content issuing the following command:

lecture-summarizer create-lecture -path ./raw_lecture.txt -name example_first_lecture -course IHI

Currently, the lecture-summarizer can parse sdp file formats, which are common for Udacity-based lectures. Notice that one needs to supply a name and a course as metadata.

Retrieving Lectures

One can retrieve lectures with a couple of options. Those options can be found in the Documentation/CLI_Documentation.md file in the base of the repo. Some example commands are shown below:

Get a Single Lecture
lecture-summarizer get-lectures -lecture-id 1
Get All Lectures
lecture-summarizer get-lectures
Get Lectures by Name
lecture-summarizer get-lectures -name example_first_lecture
Get Lectures by Course
lecture-summarizer get-lectures -course ihi

Creating a Summary

Just like creating a lecture, creating a summary is a painless process. Below is an example of creating a summary from a specified lecture.

lecture-summarizer create-summary -lecture-id 1 -name 'my summary name' -ratio 0.2

The ratio specifies approximately how much of the lecture that you want to summarize.

Retrieving Summaries

Just like with retrieving lectures, one can also list summaries. Below are a couple of examples:

Get a Single Summary
lecture-summarizer get-summaries -lecture-id 1 -summary-id 1
Get All Summaries
lecture-summarizer get-summaries -lecture-id 1
Get All Summaries by Name
lecture-summarizer get-summaries -lecture-id 1 -name 'my summary name'
Delete a Summary
lecture-summarizer delete-summary -lecture-id 1 -summary-id 1

RESTful API Docs

POST /lectures

This endpoint creates a lecture.

{
  "course": "course identifier",
  "content": "Lecture String Content",
  "name": "Lecture name"
}
GET /lectures

This endpoint is used to retrieve lectures. The user can supply two query params shown below.

/lectures?course=unique_identifier
/lectures?name=course_name
GET /lectures/{id}

This endpoint is used to retrieve a single lecture

/lectures/{id}
POST /lectures/{id}/summaries

This endpoint is used to create a summarization from a lecture

{
  "name": "Summarization name",
  "ratio": "Ratio of sentences to select"
}
GET /lectures/{id}/summaries
/lectures/{id}/summaries?name=course_name
/lectures/{id}/summaries
GET/DELETE /lectures/{id}/summaries/{summarization_id}

This endpoint allows you to get or delete a summarization.

/lectures/{id}/summaries/{summarization_id} 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].