인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

지지지지지님의 프로필 이미지

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

1.2 강의자료 소스코드 (GitHub Repository, Google Colab, GitBook)

dictionary 데이터 관련 질문있습니다!

해결된 질문

작성

·

67

0

안녕하세요 dictionary chain을 구성할때 궁금한 점이 있습니다.

 

dictionary = ["사람을 나타내는 표현 -> 거주자"] 으로 수업중에 진행한 것을 봤습니다! 다만 다양한 단어 사전이 필요할 수 있을 것 같은데 구조를 어떻게 하면 좋을지 고민되어 여쭤봅니다.

1. 리스트 형태
dictionary = [ "사람 -> 거주자", "학생 -> 학습자", "교수 -> 강사", "회사원 -> 직장인" ]

2. 완전 비정형 텍스트

dictionary = """ 사람 -> 거주자, 학생 -> 학습자, 교수 -> 강사, 회사원 -> 직장인 """

혹시 이럴때도 팁같은게 좀 있을까요??

답변 2

1

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 좋은 질문 감사합니다.

테스트를 해봐야겠지만, 저는 리스트 형태로 제공하는 것이 문맥을 제공하기 때문에 더 괜찮다고 생각하는데요, (이중에 하나만 고를 수 있다는 느낌으로)

하지만 요즘 모델 성능들이 많이 좋아져서 쉼표가 구분자 역할을 잘 한다면 문자열 형식으로 시도해도 문제 없을 것 같습니다.

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 지지지지지님.

강의에서 소개된 Dictionary Chain 구성 관련하여 다양한 형태의 단어 사전을 어떻게 구성하면 좋을지 궁금하신 것 같습니다. Dictionary Chain은 사용자가 지정한 구문이나 단어의 맵핑을 통해 텍스트를 변환할 수 있도록 돕는 기능인데요, 이를 효율적으로 구성할 수 있는 몇 가지 방식과 팁을 소개해 드리겠습니다.

1. 리스트 형태

리스트 형태의 사전은 각 맵핑을 쉽게 추가, 수정, 삭제할 수 있는 장점이 있습니다. 실시간으로 변화하는 데이터나 빠르게 업데이트가 필요한 상황에서 유리합니다.

dictionary = [
    "사람 -> 거주자", 
    "학생 -> 학습자", 
    "교수 -> 강사", 
    "회사원 -> 직장인"
]

: 리스트 아이템을 보다 체계적으로 관리하기 위해 각 맵핑을 (원본, 변환) 형태의 튜플로 만들어 접근할 수 있습니다.

dictionary = [
    ("사람", "거주자"),
    ("학생", "학습자"),
    ("교수", "강사"),
    ("회사원", "직장인")
]

2. 완전 비정형 텍스트

완전 비정형 텍스트는 대량의 데이터를 한꺼번에 처리할 때 유리할 수 있으며, 파싱하여 사용할 수 있습니다.

dictionary_text = """
사람 -> 거주자, 학생 -> 학습자, 교수 -> 강사, 회사원 -> 직장인
"""

: 정규 표현식(Regular Expressions)이나 분리(split) 함수를 사용하여, 해당 비정형 텍스트를 파싱하여 리스트 형태로 변환합니다.

import re

# 정규 표현식을 사용하여 사전을 리스트로 변환
dictionary = re.findall(r"(\w+)\s*->\s*(\w+)", dictionary_text)

이렇게 설정한 사전은 필요에 따라 추가적인 기능(예: 대소문자 구분, 철자 오류 처리 등)을 포함하여 확장할 수 있습니다.

추가적으로 관련 유사 질문이나 사례를 참고하실 수 있는 링크를 제공드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.