2.X/3. Dealing with Human Language

3-5. Stopwords: Performance Versus Precision

drscg 2017. 9. 24. 13:07

Back in the early days of information retrieval, disk space and memory were limited to a tiny fraction of what we are accustomed to today. It was essential to make your index as small as possible. Every kilobyte saved meant a significant improvement in performance. Stemming (see Reducing Words to Their Root Form) was important, not just for making searches broader and increasing retrieval in the same way that we use it today, but also as a tool for compressing index size.

정보 검색의 초기 시대로 돌아가 보면, 디스크 공간과 메모리는 오늘날 익숙한 것의 아주 작은 부분에 국한되었다. index를 가능한 한 작게 만드는 것이 기본이었다. KB(kilobyte)를 절약한다는 것은 성능의 현저한 개선을 의미했다. 형태소 분석(Reducing Words to Their Root Form 참조)은 단지 오늘날 그것을 사용하는 것과 동일한 방식으로, 더 넓은 범위를 검색하고, 검색을 증가시킬 뿐 아니라, index 크기를 압축하는 도구로서 중요했다.

Another way to reduce index size is simply to index fewer words. For search purposes, some words are more important than others. A significant reduction in index size can be achieved by indexing only the more important terms.

index 크기를 축소하는 또 다른 방식은, 단순하게 더 적은 단어를 색인하는 것이다. 검색의 목적에서, 어떤 단어는 다른 단어보다 더 중요하다. index 크기의 현저한 축소는, 더 중요한 단어만을 색인하는 것으로 이룰 수 있다.

So which terms can be left out? We can divide terms roughly into two groups:

그렇다면, 어떤 단어들을 남겨야 하는가? 단어를 크게 두 가지로 분류할 수 있다.

낮은 빈도의 단어

Words that appear in relatively few documents in the collection. Because of their rarity, they have a high value, or weight.

집합에서 상대적으로 적은 document에 나타나는 단어. 희소성 때문에 높은 값 또는 가중치 를 가진다.

High-frequency terms

Common words that appear in many documents in the index, such as theand, and is. These words have a low weight and contribute little to the relevance score.

index에서 많은 document에 나타나는 theandis 같은 흔한 단어. 이런 단어는 낮은 가중치를 가지고, relevance score에 거의 기여하지 않는다.

Tip

Of course, frequency is really a scale rather than just two points labeled low and high. We just draw a line at some arbitrary point and say that any terms below that line are low frequency and above the line are high frequency.

물론, 빈도(frequency)는, 낮다(low) 그리고 높다(high) 로 표시된 두 지점이라기 보다는, 어떤 등급이다. 어떤 임의의 지점에 선을 긋고, 어떤 단어가 그 선 아래에 있으면, 낮은 빈도, 위에 있으면 높은 빈도라고 말한다.

Which terms are low or high frequency depend on the documents themselves. The word and may be a low-frequency term if all the documents are in Chinese. In a collection of documents about databases, the word database may be a high-frequency term with little value as a search term for that particular collection.

어떤 단어는 document에 따라서 높은 또는 낮은 빈도라고 한다. and 라는 단어는, document 모두가 중국어라면, 낮은 빈도의 단어일 것이다. 데이터베이스에 대한 document 집합에서, database 라는 단어는, 특별한 집합에 대한 검색어로서, 낮은 값을 가진, 높은 빈도의 단어일 것이다.

That said, for any language there are words that occur very commonly and that seldom add value to a search. The default English stopwords used in Elasticsearch are as follows:

그렇지만, 어떤 언어에서든지, 매우 흔하게 나타나는 단어가 있다. 검색에서는 이런 단어에게 거의 가치를 주지 않는다. Elasticsearch에서 사용되는, 영어에 대한, 기본 불용어(stopwords)는 아래와 같다.

a, an, and, are, as, at, be, but, by, for, if, in, into, is, it,
no, not, of, on, or, such, that, the, their, then, there, these,
they, this, to, was, will, with

These stopwords can usually be filtered out before indexing with little negative impact on retrieval. But is it a good idea to do so?

이들 불용어(stopword) 들은, 검색에 대한 약간의 부정적인 영향으로 인해, 색인하기 전에 일반적으로 걸러질 수 있다. 그러나, 그렇게 하는 것이 좋은 생각인가?

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

3-4-5. Controlling Stemming  (0) 2017.09.24
3-4-6. Stemming in situ  (0) 2017.09.24
3-5-1. Pros and Cons of Stopwords  (0) 2017.09.24
3-5-2. Using Stopwords  (0) 2017.09.24
3-5-3. Stopwords and Performance  (0) 2017.09.24