작성
·
41
·
수정됨
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
}
]
}
해운대, 해운대로 결과에서는 해운대가 해운 + 대 로 토큰화 되었습니다.
해운대구 결과에서는 마찬가지로 해운 + 대 + 구 로 토큰화 될 것이라 예상했지만 해운대 + 구 로 토큰화 되었습니다.
어떤 이유로 이렇게 동작하는지 궁금합니다.
답변 2
0
안녕하세요 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
이 외로 궁금하신 점 있으시면 또 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. focandlol님.
Nori Analyzer가 작동하는 방식에 대한 궁금점을 해결해드리겠습니다. Nori Analyzer는 한국어의 형태소 분석을 통해 텍스트를 토큰화하는 기능을 제공합니다. 형태소 분석은 단어의 의미를 고려하여 가능한 가장 긴 형태소들을 우선적으로 추출하는 특징을 갖고 있습니다. 이 과정에서 Nori는 어근 및 접미사 등 어휘적 구조를 분석하여 의미적으로 가장 긴 형태소를 우선적으로 인식합니다.
해운대구
의 경우 해운대
라는 단어가 하나의 지명으로 인식되며, 따라서 ‘해운대’가 하나의 형태소로 뽑힙니다.해운대
와 같은 경우에는 명확한 의미적 구분 없이 더 작은 단위, ‘해운’과 ‘대’로 쪼개질 수 있습니다.해운대구
는 ‘해운대’라는 의미적 단위를 인식하여 ‘해운대’를 독립된 단위로 간주하고 다음에 오는 ‘구’와 따로 토큰화합니다.이러한 방식은 다소 복잡하게 보일 수 있지만, 실제 검색 성능 향상에 도움이 되는 방식으로 설계되었습니다.
아래 URLs에서 Nori Analyzer에 대한 더 많은 정보와 예제를 참조하실 수 있습니다:
- Elasticsearch Nori Analyzer on Stack Overflow
- Nori Analyzer 공식 Elasticsearch 문서
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.