From 5f090420f9f8c0f4b1162ed79a53a9254d8fe5c3 Mon Sep 17 00:00:00 2001 From: rvbear Date: Wed, 6 Mar 2024 19:01:34 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[fix]=20=EB=82=B4=EC=9A=A9=EC=97=90=2010?= =?UTF-8?q?=EA=B8=80=EC=9E=90=20=EC=9D=B4=EC=83=81=20=EC=9E=91=EC=84=B1?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=A1=B0=EA=B1=B4=EB=AC=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diary/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/diary/views.py b/diary/views.py index 1fd95ec..707a5e7 100644 --- a/diary/views.py +++ b/diary/views.py @@ -51,6 +51,9 @@ def post(self, request): content = serializer.validated_data.get('content') + if not content or len(content) < 10: + return JsonResponse({'isSuccess': False, 'message': '적어도 한 문장 이상 작성해주세요.'}, status=status.HTTP_400_BAD_REQUEST) + sentence = Sentences.objects.create(sentence=content, diary=diary) memory = TextRank(content=content) From 6cc421a1720fe56f6bfd046464471da9fac901b8 Mon Sep 17 00:00:00 2001 From: rvbear Date: Wed, 6 Mar 2024 19:08:02 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[fix]=20=EC=9D=BC=EA=B8=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=B6=80=EB=B6=84=EC=97=90=EB=8F=84=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=EB=AC=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diary/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/diary/views.py b/diary/views.py index 707a5e7..62814f4 100644 --- a/diary/views.py +++ b/diary/views.py @@ -87,6 +87,9 @@ def post(self, request): content = serializer.validated_data.get('content') + if not content or len(content) < 10: + return JsonResponse({'isSuccess': False, 'message': '적어도 한 문장 이상 작성해주세요.'}, status=status.HTTP_400_BAD_REQUEST) + sentence = Sentences.objects.create(sentence=content, diary=diary) memory = TextRank(content=content) From 8f1d3a211bf90b1ae68fb9f0ff7631e3c44a9c52 Mon Sep 17 00:00:00 2001 From: rvbear Date: Wed, 6 Mar 2024 19:35:20 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[fix]=20=EC=A1=B0=EA=B1=B4=EB=AC=B8=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0=20=ED=9B=84=20=EB=AA=A8=EB=93=A0=20=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=EC=97=90=EC=84=9C=20=EC=9D=BC=EA=B8=B0=EA=B0=80=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diary/textrank.py | 30 ++++++++++++++---------------- diary/views.py | 9 +++++---- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/diary/textrank.py b/diary/textrank.py index b5bba35..c812434 100644 --- a/diary/textrank.py +++ b/diary/textrank.py @@ -118,22 +118,20 @@ def __init__(self, content): # 명사 추출 nouns = SentenceTokenizer.get_nouns(self.sentences) - # 가중치 그래프 객체 생성 - matrix = GraphMatrix(nouns) - # 문장별 가중치 그래프 [문장수, 문장수], {index: 문장} 사전 - # sent_graph, sent_vocab = matrix.get_sent_graph_vocab() - # 단어별 가중치 그래프 [단어수, 단어수], {index: 단어} 사전 - words_graph, word_vocab = matrix.get_words_graph_vocab() - - # (문장, index, 가중치) 리스트 생성 - # sent_rank = [(sent_vocab[index], index, weight) for index, weight in (Rank.get_ranks(sent_graph).items())] - # weight 기준으로 정렬 - # self.sorted_sent_rank = sorted(sent_rank, key=lambda k: k[2], reverse=True) - - # (단어, index, 가중치) 리스트 생성 - word_rank_idx = [(word_vocab[index], index, weight) for index, weight in Rank.get_ranks(words_graph).items()] - # weight 기준으로 정렬 - self.sorted_word_rank = sorted(word_rank_idx, key=lambda k: k[2], reverse=True) + if nouns: + # 가중치 그래프 객체 생성 + matrix = GraphMatrix(nouns) + # 문장별 가중치 그래프 [문장수, 문장수], {index: 문장} 사전 + # sent_graph, sent_vocab = matrix.get_sent_graph_vocab() + # 단어별 가중치 그래프 [단어수, 단어수], {index: 단어} 사전 + words_graph, word_vocab = matrix.get_words_graph_vocab() + + # (단어, index, 가중치) 리스트 생성 + word_rank_idx = [(word_vocab[index], index, weight) for index, weight in Rank.get_ranks(words_graph).items()] + # weight 기준으로 정렬 + self.sorted_word_rank = sorted(word_rank_idx, key=lambda k: k[2], reverse=True) + else: + self.sorted_word_rank = [] # sent_size 개의 문장 요약 # def summarize(self, sent_size=3): diff --git a/diary/views.py b/diary/views.py index 62814f4..1bbb6a3 100644 --- a/diary/views.py +++ b/diary/views.py @@ -51,12 +51,13 @@ def post(self, request): content = serializer.validated_data.get('content') - if not content or len(content) < 10: - return JsonResponse({'isSuccess': False, 'message': '적어도 한 문장 이상 작성해주세요.'}, status=status.HTTP_400_BAD_REQUEST) - sentence = Sentences.objects.create(sentence=content, diary=diary) memory = TextRank(content=content) + + if memory is None: + return JsonResponse({'isSuccess': True, 'result': SentenceSimpleSerializer(sentence).data}, status=status.HTTP_201_CREATED) + question, answer = make_quiz(memory, keyword_size=5) Quizs.objects.bulk_create([Quizs(question=q, answer=a, sentence=sentence) for q, a in zip(question, answer)]) @@ -88,7 +89,7 @@ def post(self, request): content = serializer.validated_data.get('content') if not content or len(content) < 10: - return JsonResponse({'isSuccess': False, 'message': '적어도 한 문장 이상 작성해주세요.'}, status=status.HTTP_400_BAD_REQUEST) + return JsonResponse({'isSuccess': False, 'message': '한 문장 이상 작성해주세요.'}, status=status.HTTP_400_BAD_REQUEST) sentence = Sentences.objects.create(sentence=content, diary=diary) From 2bd1234a5740704db8cf6b13fd56d0f20a50ade7 Mon Sep 17 00:00:00 2001 From: rvbear Date: Thu, 7 Mar 2024 11:37:59 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[fix]=20=ED=95=A9=EB=B3=91=EC=8B=9C=20?= =?UTF-8?q?=EC=B6=A9=EB=8F=8C=20=EC=98=A4=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diary/views.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/diary/views.py b/diary/views.py index 91adaef..0f97417 100644 --- a/diary/views.py +++ b/diary/views.py @@ -27,14 +27,18 @@ def post(self, request): # Diary 객체 생성 newDiary = Diary.objects.create(user=findUser, title=request.get('title')) + content = request.get('content') # Sentences 객체 생성 - newSentence = Sentences.objects.create(sentence=sentence, diary=newDiary) + newSentence = Sentences.objects.create(sentence=content, diary=newDiary) # 키워드 추출 - memory = TextRank(content=sentence) + memory = TextRank(content=content) if memory is None: - return JsonResponse({'isSuccess': True, 'result': SentenceSimpleSerializer(sentence).data}, status=status.HTTP_201_CREATED) + return ApiResponse.on_success( + result=SentenceSimpleSerializer(newSentence).data, + response_status=status.HTTP_201_CREATED + ) # 키워드 추출 후 가중치가 높은 키워드 5개로 퀴즈 생성 question, keyword = make_quiz(memory, keyword_size=5) @@ -81,7 +85,10 @@ def post(self, request): memory = TextRank(content=content) if memory is None: - return JsonResponse({'isSuccess': True, 'result': SentenceSimpleSerializer(sentence).data}, status=status.HTTP_201_CREATED) + return ApiResponse.on_success( + result=SentenceSimpleSerializer(sentence).data, + response_status=status.HTTP_201_CREATED + ) # 키워드 추출 후 가중치가 높은 키워드 5개로 퀴즈 생성 question, keyword = make_quiz(memory, keyword_size=5)