강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của focandlol9026
focandlol9026

câu hỏi đã được viết

Nhập môn Elasticsearch ứng dụng thực tế (Phần tối ưu hóa tìm kiếm)

nori 관련 질문드립니다.

Viết

·

71

·

Đã chỉnh sửa

0

안녕하세요 강사님 강의 잘 보고 있습니다.
다름 아니라 nori 토큰화 과정에서 이해가 안되는 부분이 있어서 질문드립니다.

get /_analyze
{
  "text":"",
  "analyzer":"nori"
}

 간단한 nori analyzer 테스트 쿼리입니다.

해운대 결과

{
  "tokens": [
    {
      "token": "해운",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 0
    },
    {
      "token": "대",
      "start_offset": 2,
      "end_offset": 3,
      "type": "word",
      "position": 1
    }
  ]
}


해운대로 결과

{
  "tokens": [
    {
      "token": "해운",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 0
    },
    {
      "token": "대",
      "start_offset": 2,
      "end_offset": 3,
      "type": "word",
      "position": 1
    }
  ]
}


해운대구 결과

{
  "tokens": [
    {
      "token": "해운대",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 0
    },
    {
      "token": "구",
      "start_offset": 3,
      "end_offset": 4,
      "type": "word",
      "position": 1
    }
  ]
}


해운대, 해운대로 결과에서는 해운대가 해운 + 대 로 토큰화 되었습니다.
해운대구 결과에서는 마찬가지로 해운 + 대 + 구 로 토큰화 될 것이라 예상했지만 해운대 + 구 로 토큰화 되었습니다.
어떤 이유로 이렇게 동작하는지 궁금합니다.

spring-bootelasticsearchdevopselkinfrastructure

Câu trả lời 2

0

jscode님의 프로필 이미지
jscode
Người chia sẻ kiến thức

안녕하세요 focandlol님! 질문 잘 해주셨습니다:)

 

nori analyzer는 자체적인 로직으로 형태소를 분리합니다.

이 때, 문맥과 텍스트의 길이에 따라 형태소가 다르게 분리되기도 합니다.

이러한 원리 때문에 말씀해주신 상황이 발생한 것으로 유추됩니다!

 

이를 해결하기 위해서는 사용자 사전(user dictionary) 기능을 활용하셔야 합니다.

이와 관련해서는 링크에 설명이 잘 되어 있어서 링크 첨부드릴게요~!

https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori

https://discuss.elastic.co/t/dec-17th-2020-kr-elastic-cloud/258379

https://daram.tistory.com/560

 

이 외로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

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

Nori Analyzer가 작동하는 방식에 대한 궁금점을 해결해드리겠습니다. Nori Analyzer는 한국어의 형태소 분석을 통해 텍스트를 토큰화하는 기능을 제공합니다. 형태소 분석은 단어의 의미를 고려하여 가능한 가장 긴 형태소들을 우선적으로 추출하는 특징을 갖고 있습니다. 이 과정에서 Nori는 어근 및 접미사 등 어휘적 구조를 분석하여 의미적으로 가장 긴 형태소를 우선적으로 인식합니다.

주제 요약:

  • 형태소 분석 특징: Nori Analyzer는 가능한 고유한 의미를 가지는 가장 긴 형태소를 우선 인식합니다. 해운대구의 경우 해운대라는 단어가 하나의 지명으로 인식되며, 따라서 ‘해운대’가 하나의 형태소로 뽑힙니다.
  • 예시 설명:
    • 해운대와 같은 경우에는 명확한 의미적 구분 없이 더 작은 단위, ‘해운’과 ‘대’로 쪼개질 수 있습니다.
    • 반면 해운대구는 ‘해운대’라는 의미적 단위를 인식하여 ‘해운대’를 독립된 단위로 간주하고 다음에 오는 ‘구’와 따로 토큰화합니다.

이러한 방식은 다소 복잡하게 보일 수 있지만, 실제 검색 성능 향상에 도움이 되는 방식으로 설계되었습니다.

아래 URLs에서 Nori Analyzer에 대한 더 많은 정보와 예제를 참조하실 수 있습니다:
- Elasticsearch Nori Analyzer on Stack Overflow
- Nori Analyzer 공식 Elasticsearch 문서

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

Hình ảnh hồ sơ của focandlol9026
focandlol9026

câu hỏi đã được viết

Đặt câu hỏi