본문 바로가기
개발/ALGOLIA

알고리아 Managing Results(3-4)

by dev_caleb 2022. 3. 3.
728x90

Finding Records

https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/textual-matching/

 

Finding records | Algolia

Understand what it takes to find records in an index beyond simple textual matching.

www.algolia.com

 

Textual Matching - The Bare Minimum for Search(텍스트 일치 - 검색을 위한 최소값)

Simplest Relevance(가장 간단한 관련성)

 

A good way to understand relevance is to imagine search with no relevance.

What happens if all you do is you do letter-by-letter comparisons?

I have 4 sentences:

관련성을 이해하는 좋은 방법은 연관성이 없는 검색을 상상하는 것입니다.
한 글자 한 글자 비교만 하면 어떻게 되나요?
나는 4개의 문장이 있다:

  1. To be or not to be that is the question
  2. This was the best of times the worst of times
  3. Ask not what your country asks of you but what you can do for your country
  4. For a long time I used to go to bed early

죽느냐 사느냐가 중요한 것이다.
그때가 최악의 순간이었다.
당신의 나라가 당신에게 요구하는 것이 아니라 당신이 당신의 나라를 위해 무엇을 할 수 있는지 물어보아라.
오랫동안 나는 일찍 자곤 했다.

Matching Complete Words(전체 단어 일치)

A search for “ask” returns 1 record: 3.

A search for “time” returns 2 records: 2 and 4.

 

 

Matching Partial Words(일부 단어 일치)

A search for “be” returns 3 records: 1 (“be”), 2 (“best”), and 4 (“bed”).

But search is not just about matching text.

be를 검색하면 1("be", 2("best") 및 4("bed")의 3개의 레코드가 반환됩니다.

그러나 검색은 단순히 텍스트를 일치시키는 것이 아닙니다.

Where text matching doesn’t work(텍스트 일치가 작동하지 않는 경우)

What happens with “qestion” (“question” mistyped)? Simple textual matching doesn’t correct spelling. So no records are returned.

"qstion" ("질문"이 잘못 입력됨)은 어떻게 되나요? 간단한 텍스트 매칭은 철자를 올바르게 하지 않습니다. 그래서 어떤 기록도 반환되지 않습니다.

 

What about “best”? Is this looking for the word “best”? or a search for the idea of “best” = like, the best quotes?

What about the order of the results? When searching for “be”, what record should come first? The ones that match exactly? Or some other criteria?

"최고"는 어때? 이게 "최고"라는 단어를 찾는 건가요? 아니면 "최고의" =와 같은 아이디어, 최고의 인용문을 찾으십니까?
결과 순서는 어떻게 되나요? be를 검색할 때 어떤 기록이 먼저 와야 하나요? 정확히 일치하는 것? 아니면 다른 기준?

 

What about a search for “literary quotes”? Textual matching doesn’t know anything about these quotes - are these political or literary quotes? The quotes need to be classified, tagged as coming from novels or from politicians.

Same with the author: What if I want to find a french author’s quote?

"문학 인용문"을 찾아보는 것은 어떨까요? 텍스트 매칭은 이러한 인용구에 대해 아무것도 알지 못한다 - 이것들은 정치적인 인용문인가 아니면 문학적인 인용문인가? 인용문은 분류되어야 하며 소설이나 정치인으로부터 온 것으로 꼬리표가 붙어야 한다.
작성자도 마찬가지입니다. 프랑스 작가의 말을 찾고 싶으면 어떻게 하죠?

 

So what’s wrong? All these queries require something more, features like typo tolerance, filtering and faceting, synonyms, prioritizing attributes, and many other textual matching techniques and features. Let’s look at some of these.

그래서 뭐가 문제야? 이러한 모든 쿼리에는 오타 허용 오차, 필터링 및 패싱, 동의어, 우선 순위 지정 특성, 기타 많은 텍스트 매칭 기법 및 기능과 같은 기능이 더 필요합니다. 이것들 중 몇 가지를 살펴봅시다.

Going beyond simple text matching(단순한 텍스트 일치를 넘어서는 것)

So let’s improve our sentences, adding more information.(그래서 문장을 개선해서 정보를 더 추가해 봅시다.)

  1. “To be or not to be, that is the question”, shakespeare, british, hamlet, theatre
  2. “It was the best of times, it was the worst of times”, dickens, british, tale of two cities, novel
  3. “Ask not what your country asks of you but what you can do for your country”, kennedy, american, speech, politics
  4. “For a long time I used to go to bed early”, proust, french, recherche, novel

"죽느냐 사느냐, 그것이 문제" 셰익스피어, 영국, 햄릿, 연극
"그것은 최고의 시대였고, 최악의 시대였다" 디킨스, 영국, 두 도시에 대한 이야기, 소설
"조국이 당신에게 무엇을 요구하는지 묻지 말고 당신이 당신의 조국을 위해 무엇을 할 수 있는지 물어보라." 케네디, 미국인, 연설, 정치
"오랫동안 나는 일찍 자곤 했다" 프루스트, 프랑스어, 레체르슈, 소설

Now we can start filtering these records and find literature, author names, genre of quote, etc.. So we’ve improved search by adding more data, and structuring it smartly.

But we still haven’t resolved the misspelling of “qestion”. And we might have another problem related to intention. Let’s add a few more sentences to see this.

이제 이 기록들을 걸러내고 문학, 작가 이름, 인용문 장르 등을 찾을 수 있습니다. 그래서 우리는 더 많은 데이터를 추가하고 스마트하게 구조화함으로써 검색을 개선했습니다.
하지만 우리는 아직도 "qstion"의 철자를 잘못 쓴 것을 해결하지 못했어요. 그리고 의도와 관련된 또 다른 문제가 생길 수 있습니다. 이것을 보기 위해 문장을 몇 개 더 추가해 봅시다.

  1. “Shakespeare and Dickens are both famous British authors”, georgette, british, history of british literature, essay
  2. “By George, I should’ve known that! I’ll be a dickens!”, landly, british, my fair lady, theatre
  3. “An accomplished woman almost always knows more than we men, though her knowledge is of a different sort.”, george elliot, british, middlemarch, novel

"셰익스피어와 디킨스는 둘 다 유명한 영국 작가이다.", 조지트, 영국, 영국 문학사, 에세이
"조지, 난 그걸 알았어야 했어!" 난 디킨스가 될 거야! " 육지, 영국, 아름다운 아가씨, 극장
"성공한 여성은 거의 항상 우리 남자들보다 더 많은 것을 알고 있지만, 그녀의 지식은 다른 종류이지만." 조지 엘리엇, 영국, 미들마치, 소설

If I search for “shakespeare”, I get records 1 and 5, but what if I my intention was to find quotes from Shakespeare, not books about him. Same with “george” and “Dickens”. How does the engine detect intention.

One way to solve this is to start prioritizing data. For example, we can have the search engine look at the author’s names first, before searching the quotes.

'셰익스피어'를 검색하면 음반 1장과 5장이 나오지만 그에 대한 책이 아니라 셰익스피어의 인용문을 찾는 게 내 의도였다면 어땠을까. "조지"나 "디킨스"도 마찬가지야 엔진은 의도를 어떻게 감지합니까?
이를 해결하기 위한 한 가지 방법은 데이터의 우선순위를 정하는 것입니다. 예를 들어, 인용문을 검색하기 전에 검색엔진이 저자의 이름을 먼저 보도록 할 수 있습니다.

This would solve the “shakespeare” problem. But, it would create another one. If we search for “by geoge”, three records are equally valid, providing no criteria to judge the best match: records 5, 6, and 7.

We can continue this introduction, showing how every new search can raise a different problem, and then we can outline a solution to solve each problem. But let’s not do this.

이것은 "셰익스피어" 문제를 해결할 것이다. 하지만, 그것은 또 다른 것을 만들 것이다. '지오지별'을 검색하면 베스트 매치를 판단할 기준이 없는 5번, 6번, 7번 등 3번의 기록이 동일하게 유효하다.
이 소개를 계속 진행하면서 모든 새로운 검색이 어떻게 다른 문제를 제기할 수 있는지 보여 준 다음 각 문제를 해결할 수 있는 해결책을 개략적으로 설명할 수 있습니다. 하지만 이러지 맙시다.

Here’s a general statement: simple textual matching will not solve every problem. We need concepts like filtering, ranking, attribute priorities, handling typos, synonyms, and other language-based characteristics. We also need insights from analytics, personalization, and A/B testing. Simple text matching, therefore, while central to any search engine, is only the starting point. It is not the whole subject nor the full solution.

 

간단한 텍스트 매칭이 모든 문제를 해결하지는 않는다. 필터링, 순위, 속성 우선 순위, 오타 처리, 동의어 및 기타 언어 기반 특성과 같은 개념이 필요합니다. 또한 분석, 개인화 및 A/B 테스트를 통한 통찰력도 필요합니다. 따라서 단순 텍스트 일치는 모든 검색 엔진의 중심이지만 시작점일 뿐입니다. 그것은 전체 주제도 전체 해결책도 아니다.

 

 
728x90

'개발 > ALGOLIA' 카테고리의 다른 글

알고리아 Managing Results(3-6)  (0) 2022.03.03
알고리아 Managing Results(3-5)  (0) 2022.03.03
알고리아 Managing Results(3-3)  (0) 2022.03.03
알고리아 Managing Results(3-1)  (0) 2022.03.02
알고리아 Sending And Managing Data(2-21)  (0) 2022.03.02