← 최신 논문
💬 NLP

CodeNER: Code Prompting for Named Entity Recognition

이 논문은 NER 작업에서 LLM 의 성능을 향상시키기 위해 프롬프트에 코드를 활용하여 상세한 BIO 스키마 지침을 제공하는 'CodeNER' 방법을 제안하고, 이를 통해 기존 텍스트 기반 프롬팅보다 다양한 언어와 데이터셋에서 우수한 성능을 입증했습니다.

원저자: Sungwoo Han, Hyeyeon Kim, Jingun Kwon, Hidetaka Kamigaito, Manabu Okumura

게시일 2026-03-27
📖 3 분 읽기☕ 가벼운 읽기

원저자: Sungwoo Han, Hyeyeon Kim, Jingun Kwon, Hidetaka Kamigaito, Manabu Okumura

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

📝 코드네이머 (CodeNER): AI 에게 '명사 찾기'를 가르치는 새로운 방법

이 논문은 **대형 언어 모델 (LLM, 예: 챗GPT)**이 텍스트에서 중요한 이름 (사람, 장소, 조직 등) 을 찾아내는 작업인 **개체명 인식 (NER)**을 더 잘하게 만드는 새로운 방법을 소개합니다.

저자 팀은 이 문제를 해결하기 위해 "자연어 (말)"가 아닌 "코드 (프로그래밍 언어)"로 AI 에게 지시를 내리는 것이 훨씬 효과적임을 발견했습니다.


🧩 1. 기존 방법의 문제점: "모호한 지시"

기존에는 AI 에게 "이 문장에서 사람 이름과 장소를 찾아줘"라고 **자연어 (말)**로만 지시했습니다.

  • 비유: 마치 **요리사 (AI)**에게 "재료 좀 찾아서 손질해 줘"라고만 말하고, 칼질하는 순서나 어디를 자르는지 구체적인 설명을 안 해주는 것과 같습니다.
  • 결과: AI 는 문맥은 이해할 수 있지만, **"어디서부터 어디까지가 하나의 이름인가?"**를 정확히 구분하는 데서 자주 실수를 합니다.
    • 예를 들어, "뉴욕"과 "시"를 따로 떼어내거나, 긴 웹사이트 주소를 잘게 쪼개는 실수를 범합니다.
    • AI 는 문장 전체를 한 번에 훑어보는 경향이 있어, 단어 하나하나를 순서대로 처리하는 **BIO (시작, 중간, 끝)**라는 세밀한 규칙을 따르기 어렵습니다.

💻 2. 새로운 방법 (CodeNER): "코드로 된 레시피"

이 논문은 AI 에게 프로그래밍 코드 (Python 등) 형태로 지시를 내리는 CodeNER를 제안합니다.

  • 비유: 이제 요리사에게 "재료 찾아줘"라고 하는 대신, **정교한 레시피 (코드)**를 건네주는 것입니다.
    • "문장을 한 글자씩 읽어가면서 (for loop), 이 글자가 사람 이름의 시작 (B) 인지, 중간 (I) 인지, 아니면 아무것도 아닌지 (O) 를 체크해."
    • "이런 규칙을 따르면서 리스트에 저장해."
  • 핵심 아이디어: AI 는 프로그래밍 언어를 이해하는 데 매우 뛰어납니다. 코드는 논리적이고 순차적이기 때문에, AI 가 "단어 하나하나를 순서대로 처리하며 이름을 찾아라"는 규칙을 훨씬 명확하게 이해하게 됩니다.

🚀 3. 왜 코드가 더 잘할까? (창의적 비유)

  1. 순차 처리의 마법 (For Loop):
    • 자연어 지시는 AI 가 "전체적인 느낌"으로 답을 내놓게 하지만, 코드는 AI 를 작업자처럼 만듭니다. 마치 공장에서 컨베이어 벨트를 따라 물건을 하나씩 검사하듯, 문장의 각 단어를 차례대로 "이건 이름인가? 아니야?"라고 체크하게 만듭니다.
  2. 중복 방지:
    • 자연어 지시에서는 같은 단어가 여러 번 나올 때 AI 가 혼란을 겪어 "이건 이미 처리했어"라고 무시하거나, 반대로 "이것도 처리해야 해"라고 중복해서 처리할 수 있습니다.
    • 하지만 코드는 **"한 번만 처리하고 넘어가라"**는 로직이 명확하므로, 같은 단어가 반복되어도 정확하게 처리합니다.
  3. 특수 기호 처리:
    • "www.example.com" 같은 긴 주소나 쉼표, 마침표 같은 특수 기호를 AI 가 어떻게 처리할지 헷갈릴 때, 코드는 이를 데이터의 한 부분으로 명확히 구분해 줍니다.

📊 4. 실험 결과: "코드가 승리했다"

연구팀은 영어, 아랍어, 핀란드어, 덴마크어, 독일어 등 10 개의 다양한 언어 데이터로 실험을 했습니다.

  • 결과: 코드를 사용한 CodeNER가 기존 자연어 지시 (Vanilla) 보다 전반적으로 훨씬 높은 점수를 받았습니다.
  • 특히 사람 이름 (PER), 장소 (LOC), 기타 (MISC) 같은 세부 항목에서 정확도가 크게 향상되었습니다.
  • 심지어 Chain-of-Thought (단계별 사고) 기법과 코드를 결합하면 성능이 더 좋아졌습니다. (AI 에게 "생각해보자"라고 말해주면서 코드로 지시하는 것)

⚠️ 5. 한계점: "모든 상황에 코드가 최고는 아냐"

물론 코드가 만능은 아닙니다.

  • 비유: 만약 요리사가 "전체적인 분위기"를 파악해야 하는 요리 (예: 영화 줄거리 요약, 긴 문장 전체를 하나의 '줄거리'로 분류) 를 해야 한다면, 너무 세세한 레시피 (코드) 는 오히려 방해가 될 수 있습니다.
  • 실제: 문장 전체가 하나의 '줄거리 (Plot)'나 '인용구 (Quote)'로 분류되어야 하는 데이터에서는 기존 자연어 방법이 더 잘 작동하기도 했습니다.

🏁 결론

이 논문은 **"AI 에게 복잡한 작업을 시킬 때는, 말로 설명하는 것보다 코드로 지시하는 것이 훨씬 정확하다"**는 것을 증명했습니다.

  • 핵심 메시지: AI 는 논리적이고 구조화된 코드를 통해 "단어 하나하나를 꼼꼼히 처리하는 능력"을 발휘할 때, 이름 찾기 (NER) 작업에서 인간을 훨씬 능가하는 성능을 보여줍니다.

이 방법은 앞으로 AI 가 다양한 언어와 복잡한 텍스트에서 정보를 추출할 때, 정확하고 신뢰할 수 있는 도구가 될 것으로 기대됩니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →