강혜빈 | 권현정 | 백인진 | 이용우 | 이준원 |
---|---|---|---|---|
Question Generation |
Answer Extraction |
Summarization, FastAPI |
STT, React |
STT, STT PostProcessing |
@hyeb | @malinmalin2 | @eenzeenee | @wooy0ng | @jun9603 |
- 대면 수업 확대로 기존 녹화 강의에서 실시간 대면 강의로 변화함에 따라 학습에 어려움을 겪는 학생들이 많아짐.
- 강의 녹음본을 활용하여 요약본과 예상 질문 및 답안을 생성하여 효율적인 학습을 돕는다.
- 강의 수강 시, 주요 내용을 놓쳐 강의 녹음본을 통해 복습하고자 하는 학생
- 대면 강의 시, 필기 중 주요 내용에 대한 체계적인 정리가 어려운 학생
- 시험 전, 예상질문과 답안을 통해 공부를 하고자 하는 학생
- model link (on google drive)
- model_path = f'/opt/ml/project_models/{model_name}'
apt install ffmpeg
apt-get install libsndfile1-dev
apt install default-jdk
apt-get install openjdk-8-jdk python3-dev
bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)
아래와 같이 명령어 설치 후, terminal을 재시작합니다.
apt install nodejs
apt install npm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
nvm을 사용하여 node.js 버전 업데이트를 합니다.
nvm install 17
react-native를 설치합니다.
npm install -g create-react-app
package.json파일이 위치하는 곳에서 아래의 명령어를 입력하여 실행에 필요한 모듈을 설치합니다.
$ npm install
웹 서버를 실행시킵니다. (not build)
$ npm start
|-- Makefile
|-- README.md
|-- app
| |-- STT
| | |-- __init__.py
| | |-- data
| | | |-- __init__.py
| | | |-- audio.py
| | | |-- conf.yaml
| | | |-- make_dataset.py
| | | `-- utils
| | | |-- __init__.py
| | | |-- custom_split.py
| | | |-- delete_loop.py
| | | `-- output_to_dataframe.py
| | |-- inference
| | | |-- __init__.py
| | | `-- inference.py
| | `-- setup.py
| |-- __init__.py
| |-- __main__.py
| |-- client.py
| |-- keyword_extraction
| | |-- __init__.py
| | |-- data_utils
| | | |-- __init__.py
| | | |-- ner_dataset.py
| | | |-- pad_sequence.py
| | | |-- utils.py
| | | `-- vocab_tokenizer.py
| | |-- filtering.py
| | |-- keybert_model.py
| | |-- main.py
| | |-- ner_config
| | | |-- config.json
| | | |-- ner_to_index.json
| | | |-- net.py
| | | |-- pytorch_kobert.py
| | | `-- utils.py
| | |-- stopwords.txt
| | `-- vocab.pkl
| |-- question_generation
| | |-- __init__.py
| | |-- kobart_qg.py
| | |-- main.py
| | |-- qg_filtering.py
| | `-- t5_pipeline.py
| |-- server.py
| |-- stt_postprocessing
| | |-- __init__.py
| | |-- dataloader.py
| | |-- inference.py
| | |-- main.py
| | `-- split_data.py
| |-- summary
| | |-- __init__.py
| | |-- dataloader.py
| | |-- main.py
| | |-- postprocess.py
| | |-- preprocess.py
| | `-- summary.py
| `-- utils
| |-- keyword_model_init.py
| |-- qg_model_init.py
| |-- stt_model_init.py
| `-- summary_model_init.py
|-- debug.py
|-- frontend
| |-- README.md
| |-- package-lock.json
| |-- package.json
| |-- public
| | |-- favicon.ico
| | |-- index.html
| | |-- logo192.png
| | |-- logo512.png
| | |-- manifest.json
| | `-- robots.txt
| `-- src
| |-- App.css
| |-- App.js
| |-- App.test.js
| |-- images
| | `-- background.png
| |-- index.css
| |-- index.js
| |-- logo.svg
| |-- questionGenerationPage.js
| |-- reportWebVitals.js
| |-- setupTests.js
| |-- sttPage.js
| `-- summarizationPage.js
|-- poetry.lock
`-- pyproject.toml
STT
- Character error rates(CER) : https://github.com/hyeonsangjeon/computing-Korean-STT-error-rates
- ESPNet : https://github.com/espnet/espnet
- Whisper : https://arxiv.org/pdf/2212.04356.pdf
Summarization
- KoBART : https://github.com/seujung/KoBART-summarization / https://huggingface.co/docs/transformers/model_doc/bart
- T5 : https://github.com/google-research/multilingual-t5 / https://github.com/google-research/text-to-text-transfer-transformer
- 반복 문자열 제거 : https://velog.io/@likelasttime/%ED%8C%8C%EC%9D%B4%EC%8D%AC-4873.-%EB%B0%98%EB%B3%B5%EB%AC%B8%EC%9E%90-%EC%A7%80%EC%9A%B0%EA%B8%B0
Answer Extraction
- KeyBERT : https://github.com/MaartenGr/KeyBERT
- NER : https://github.com/eagle705/pytorch-bert-crf-ner
Question Generation
- KoBART : https://github.com/Seoneun/KoBART-Question-Generation
- T5 : https://github.com/patil-suraj/question_generation#project-details / https://huggingface.co/paust/pko-t5-base
FastAPI : https://fastapi.tiangolo.com/ko/