윤영준 윤영준 01-30
Hello Yona
@3673dc4f36626a6aa82e9ae5c58d13459a0769af
 
README.md (added)
+++ README.md
@@ -0,0 +1,1 @@
+# 생성형AI를-활용한-비정형-데이터-정제-테스트
 
classifier_using_llm.py (added)
+++ classifier_using_llm.py
@@ -0,0 +1,64 @@
+from enum import Enum
+from pydantic import BaseModel, constr
+
+import pandas as pd
+import outlines
+import torch
+
+
+examples = [
+    ("대학로 복현오거리에서 경대교방향 원활.", "|대학로 복현오거리|, |경대교방향|, |원할|◉"),
+    ("<긴급>구마로 본리네거리에서 동본리네거리방향 동본리네거리 130m 못간 지점 가장자리차로 택시, 승용차 사고", "|구미로 본리네거리|, |동본리네거리|, |사고|◉"),
+    ("국채보상로 청구삼거리에서 MBC네거리방향 교통량은 많으나 원활.", "|국체보상로 청구 삼거리|, |MBC네거리방향|, |원할|◉"),
+    ("서대구로 북부정류장에서 평리네거리방향 평리지하차도 오르막 지점 가장자리차로 지프차 고장으로 정차중.", "|서대구로 북부정류장|, |평리네거리|, |기타|◉"),
+    ("달구벌대로 수성구청역네거리에서 만촌네거리방향 신호 주기에 따라 밀림, 풀림 반복.", "|달구벌대로 수성구청역네거리|, |만촌네거리|, |정체|◉"),
+    ("동부로 동대구역네거리에서 경북수협네거리방향 경북수협네거리 80m 못간 지점 가장자리차로 크레인 동원한 작업중.", "|동부역 동대구역네거리|, |경북수협네거리|, |공사|◉"),
+    ("국도 5호선 영주에서 안동구간 영주시 이산면 송리원주유소 부근 양방향 원활.", "|국도 5호선 영주|, |영주시 이산면 송리원 주유소|, |원할|◉"),
+    ("<긴급>구마로 본리네거리에서 성당네거리방향 동본리네거리 지나자마자 가장자리차로 사고로 보이는 승용차, 승합차 정차중.", "|구마로 본리네거리|, |성당네거리방향 동본리네거리|, |정체|◉"),
+    ("대학로 경북대학교 북문에서 복현오거리방향 복현오거리 신호 3,4번.", "|경북대학교 북문|, |복현오거리방향|, |정체|◉"),
+    ("안들림", "|알수 없음|◉"),
+]
+
+# schema = """{
+#     "$defs": {
+#         "상태": {
+#             "enum": ["원할", "사고", "정체", "공사", "기타"],
+#             "title": "상태",
+#             "type": "string"
+#         }
+#     },
+#     "properties": {
+#         "location_from": {"maxLength": 10, "title": "Name", "type": "string"},
+#         "location_to": {"title": "Age", "type": "integer"},
+#         "상태": {"$ref": "#/$defs/상태"},
+#         "strength": {"title": "Strength", "type": "integer"}\
+#     },
+#     "required": ["name", "age", "armor", "strength"],
+#     "title": "Character",
+#     "type": "object"
+# }"""
+
+
[email protected]
+def labelling(to_label, examples):
+    """You are a sentiment-labelling assistant.
+    신호 1번 == 원할
+    신호 1,2번 == 원할
+    신호 2번 == 정체
+    신호 3번 == 정체
+    신호 4번 == 정체
+    {% for example in examples %}
+    {{ example[0] }} // {{ example[1] }}
+    {% endfor %}
+    {{ to_label }} //
+    """
+
+model = outlines.models.transformers("mistralai/Mistral-7B-instruct-v0.2", device="cuda")
+
+df = pd.read_csv("data/최종데이터.csv")
+
+for row in df["내용"]:
+    print(f"input : {row}")
+    prompt = labelling(row, examples)
+    answer = outlines.generate.text(model)(prompt, max_tokens=80, stop_at="◉")
+    print(f"output : {answer}")(파일 끝에 줄바꿈 문자 없음)
Add a comment
List