카카오톡 오픈 채팅방의 대화 내용을 요약해주는 서비스
YOUM은 카카오톡 오픈 채팅방의 대화 내용을 요약해주는 서비스입니다. 현재 카카오톡 오픈 채팅방은 월간 900만 ~ 1000만 명이 사용할 정도로 수요가 많은 서비스이며 그 수요는 꾸준히 증가하고 있습니다. 하지만 대화 참여자가 많아짐에 따라 대화의 흐름을 파악하기 어렵게 되고 원하는 주제가 아닌 대화가 오고 가게 되어 그에 대한 관심과 참여가 떨어지는 문제가 발생하고 있습니다.
YOUM은 오픈 채팅방 대화 요약으로 비가독성 문제를 해결하고자 합니다. YOUM을 통해 유저의 불편을 해소하고 유저 편의성을 증대하여 서비스의 실질 수요를 높일 수 있을 것이라 기대하고 있습니다.
김한성 | 염성현 | 이재욱 | 최동민 | 홍인희 |
---|---|---|---|---|
Github | Github | Github | Github | Github |
Project Design DTS modeling FrontEnd Deployment |
Dataset Search FrontEnd BackEnd TroubleShooting |
Data post-processing Data Guideline Summarization DB build |
Dataset Search Data pre-processing DTS BackEnd |
Project Manager Data Guideline Summarization FrontEnd |
- Dialogue Topic Segmentation : AI HUB 주제별 텍스트 일상 대화 데이터
- summarization : AI HUB 한국어 대화 요약
- 개요
- 여러 대화를 주제적인 일관성을 가지는 segment로 나누는 방법
- 모델 구조
- klue/roberta-large
- 추가로 Coherence Scoring model이라는 이름의 MLP Head
- Train Dataset
- 임의의 Dialogue로 부터 dialogue flow를 활용해 positive, negative utterance pair 생성
- finetuning
- 생성된 positive pair, negative pair를 활용해 Marginal ranking loss로 모델 학습.
- 개요
- 대화문을 토대로 내용을 파악하여 관련된 요약문을 생성
- 모델 구조
- yeombora/kobart_r3f
- yeombora/Kobart_SimCLS
- 빠른 실행은 http://101.101.218.23:30002/ 입니다.
$ poetry shell
$ poetry install
$ git clone https://github.com/dataKim1201/dialouge_Topic_Segmentation
- app 폴더에 들어가서 실행하기
- DTS model path 변경 필요
$ python bentoml_packing.py
$ bentoml serve SummaryService:latest
- 다른 터미널에서 실행 (default port == 30001)
$ python backend_hub.py
$ streamlit run app.py --server.port 30002
├─ DTS
│ ├─ __init__.py
│ ├─ config
│ │ └─ config.yaml
│ ├─ ...
│ └─ main.py
│
├─ app
│ ├─ app.py
│ ├─ backend_hub.py
│ ├─ bentoml_packing.py
│ ├─ load_dataset.py
│ ├─ model.py
│ ├─ paper-dashboard-master
│ │ ├─ assets
│ │ │ ├─ js
│ │ │ │ ├─ core
│ │ │ │ │ ├─ bootstrap.min.js
│ │ │ │ │ ├─ jquery.min.js
│ │ │ │ │ └─ popper.min.js
│ │ │ │ ├─ ...
│ │ │ │ ├─ get_keyword.js
│ │ │ │ ├─ get_timeline.js
│ │ │ │ ├─ dashboard_input.js
│ │ │ │ └─ paper-dashboard.js
│ │ │ └─ scss
│ │ ├─ examples
│ ├─ prediction.py
│ ├─ requirements.txt
│ └─ validation.py
├─ deploy_ssh.sh
├─ notebooks
│ ├─ ...
│ ├─ extract_dialogue.ipynb
│ └─ predict_test_DTS.ipynb
├─ summarization
│ ├─ ...
│ └─ train.py
└─ utils
│ ├─ __init__.py
│ ├─ ...
│ └─ stopword.txt
├─ README.md
├─ poetry.lock
├─ py_template
├─ pyproject.toml
│
└── thanks for comming I'm Yeombora
- TextTiling: segmenting text into multi-paragraph subtopic passages
- Unsupervised Topic Segmentation of Meetings with BERT Embeddings
- Improving Unsupervised Dialogue Topic Segmentation with Utterance-Pair Coherence Scoring (Xing et al, 2021)
- BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension
- SimCLS: A Simple Framework for Contrastive Learning of Abstractive Summarization
- https://github.com/Hanul/BadWordFilter