2.X/3. Dealing with Human Language

3-4. Reducing Words to Their Root Form

drscg 2017. 9. 24. 13:23

Most languages of the world are inflected, meaning that words can change their form to express differences in the following:

세상의 모든 언어는 어형이 굴절(inflect) 된다. 즉, 단어의 차이점을 표현하기 위해, 단어의 형태를 변경할 수 있다.

  • Number: fox, foxes
  • Tense: pay, paid, paying
  • Gender: waiter, waitress
  • Person: hear, hears
  • Case: I, me, my
  • Aspect: ate, eaten
  • Mood: so be it, were it so

While inflection aids expressivity, it interferes with retrievability, as a single root word sense (or meaning) may be represented by many different sequences of letters. English is a weakly inflected language (you could ignore inflections and still get reasonable search results), but some other languages are highly inflected and need extra work in order to achieve high-quality search results.

굴절(inflection)은 표현에 도움이 되지만, 문자의 다양한 순서에 의해 표현되는 단일 원형의 뜻(word sense) 이나 의미로서는, 검색 능력에 방해가 된다. 영어는 약한 굴절 언어이다. 굴절을 무시하고도, 여전히 적절한 검색 결과를 얻을 수 있다. 그러나, 어떤 다른 언어는 심하게 굴절되어, 고품질의 검색 결과를 얻기 위해, 추가 작업이 필요하다.

Stemming attempts to remove the differences between inflected forms of a word, in order to reduce each word to its root form. For instance foxes may be reduced to the root fox, to remove the difference between singular and plural in the same way that we removed the difference between lowercase and uppercase.

형태소 분석(stemming) 은, 각 단어를 원형으로 축소하기 위하여, 단어의 굴절된 형태 사이의 차이점을 제거하는 것이다. 예를 들면, 대소문자 사이의 차이점을 제거하는 것과 동일한 방식으로, 단수와 복수 사이의 차이점을 제거하기 위하여, foxes 는 원형 fox 로 축소될 것이다.

The root form of a word may not even be a real word. The words jumping and jumpiness may both be stemmed to jumpi. It doesn’t matter—as long as the same terms are produced at index time and at search time, search will just work.

단어의 원형은 진정한 단어가 아닐 수도 있다. jumping 과 jumpiness 는 둘 모두 jumpi 로 형태소 분석이 이루어진다. 색인 시와 검색 시에 만들어진 단어가 동일한 한, 이것은 관계없다. 검색은 잘 동작한다.

If stemming were easy, there would be only one implementation. Unfortunately, stemming is an inexact science that suffers from two issues: understemming and overstemming.

형태소 분석이 쉽다면, 단 하나의 구현만이 있을 것이다. 불행히도, 형태소 분석은 2가지 이슈(부족한 형태소 분석과 과한 형태소 분석)에 시달리는 부정확한 과학이다.

Understemming is the failure to reduce words with the same meaning to the same root. For example, jumped and jumps may be reduced to jump, while jumping may be reduced to jumpi. Understemming reduces retrieval; relevant documents are not returned.

부족한 형태소 분석(understemming) 은, 동일한 의미를 가진 단어를, 동일한 원형으로 축소하는데 실패한 것이다. 예를 들자면, jumped 와 jumps 는 jump 로 축소된다. 반면에 jumping 은 jumpi 로 축소될 수 있다. 부족한 형태소 분석을 하면 검색 결과가 감소한다. 즉, 관련 있는 document가 반환되지 않는다.

Overstemming is the failure to keep two words with distinct meanings separate. For instance, general and generate may both be stemmed to gener. Overstemming reduces precision: irrelevant documents are returned when they shouldn’t be.

과한 형태소 분석(overstemming) 은, 고유한 의미를 가진 두 개의 단어를, 개별적으로 유지하는데 실패한 것이다. 예를 들자면, general 과 generate 는 둘 모두 gener 로 형태소 분석이 될 것이다. 과한 형태소 분석을 하면 정확성이 감소한다. 즉, 반환하지 않아도 되는 관련 없는 document를 반환한다.

First we will discuss the two classes of stemmers available in Elasticsearch—Algorithmic Stemmersand Dictionary Stemmers—and then look at how to choose the right stemmer for your needs in Choosing a Stemmer. Finally, we will discuss options for tailoring stemming in Controlling Stemmingand Stemming in situ.

먼저, Elasticsearch에서 이용할 수 있는 두 종류의 형태소 분석기(Algorithmic Stemmers와 Dictionary Stemmers)에 대해 이야기할 것이다. 그리고 나서, Choosing a Stemmer에서, 필요한 따라 적절한 형태소 분석기를 선택하는 방법을 살펴보자. 마지막으로, Controlling Stemming와 Stemming in situ에서 형태소 분석을 조정하는 옵션에 대해 이야기해 보자.

'2.X > 3. Dealing with Human Language' 카테고리의 다른 글

3-3-5. Unicode Character Folding  (0) 2017.09.24
3-3-6. Sorting and Collations  (0) 2017.09.24
3-4-1. Algorithmic Stemmers  (0) 2017.09.24
3-4-2. Dictionary Stemmers  (0) 2017.09.24
3-4-3. Hunspell Stemmer  (0) 2017.09.24