In Formatting Synonyms, we have seen that it is possible to replace synonyms by simple expansion, simple contraction, or generic expansion. We will look at the trade-offs of each of these techniques in this section.
Formatting Synonyms에서, 단순한 확장(simple expansion), 단순한 축소(simple contraction) 또는 장르 확장(generic expansion) 을 통해, 동의어를 대체할 수 있음을 알게 됐다. 아래에서 각 기술의 장단점을 살펴보도록 하자.
This section deals with single-word synonyms only. Multiword synonyms add another layer of complexity and are discussed later in Multiword Synonyms and Phrase Queries.
여기에서는 단일 단어의 동의어만을 다룬다. 여러 단어에 대한 동의어는 또 다른 복잡한 단계가 추가된다. 나중에 Multiword Synonyms and Phrase Queries에서 이야기 하도록 하자.
Simple Expansionedit
With simple expansion, any of the listed synonyms is expanded into all of the listed synonyms:
단순한 확장(simple expansion) 에서는, 나열된 동의어 중 하나가 나열된 동의어 모두로 확장된다.
"jump,hop,leap"
Expansion can be applied either at index time or at query time. Each has advantages (⬆)︎ and disadvantages (⬇)︎. When to use which comes down to performance versus flexibility.
확장은 색인 시나 검색 시 모두에 적용될 수 있다. 각각은 장점(⬆)︎과 단점(⬇)︎을 가지고 있다. 사용시에, 성능과 유연성 사이에서 결정해야 한다.
색인시 | 검색시 | |
---|---|---|
index 크기 | ⬇︎ 모든 동의어가 색인되어야 하기 때문에, index가 더 커진다. | ⬆︎ 일반적이다. |
Relevance | ⬇︎ 모든 동의어는 동일한 IDF(What Is Relevance?) 참조)를 가진다. 즉, 더 흔하게 사용되는 단어는 드물게 사용되는 단어와 동일한 비중을 가진다. | ⬆︎ 각 동의어에 대한 IDF는 적절하다. |
성능 | ⬆︎ query는 query string에 지정된 단일 단어만 찾아야 한다. | ⬇︎ 단일 단어에 대한 query는 모든 동의어를 찾도록 다시 작성된다. 그래서 성능이 떨어진다. |
유연성 | ⬇︎ 동의어 규칙은 기존 document에 대해 변경될 수 없다. 새로운 규칙이 효과를 보려면, 기존 document를 다시 색인해야 한다. | ⬆︎ 동의어 규칙은 document를 다시 색인을 하지 않아도 적용된다. |
Simple Contractionedit
Simple contraction maps a group of synonyms on the left side to a single value on the right side:
단순한 축소(simple contraction) 는, 왼쪽에 있는 동의어의 그룹을, 오른쪽에 있는 하나의 값으로, mapping한다.
"leap,hop => jump"
It must be applied both at index time and at query time, to ensure that query terms are mapped to the same single value that exists in the index.
검색 단어가 index에 있는 동일한 하나의 값에 mapping된다는 것을 보장하기 위해, 색인 시와 검색 시에, 반드시, 모두, 적용되어야 한다.
This approach has some advantages and some disadvantages compared to the simple expansion approach:
이 방식은 단순한 확장 방식과 비교하면, 약간의 장단점이 있다.
- index 크기
⬆︎ The index size is normal, as only a single term is indexed.
⬆︎ 단 하나의 단어만 색인 하므로, index 크기는 일반적이다.
- Relevance
⬇︎ The IDF for all terms is the same, so you can’t distinguish between more commonly used words and less commonly used words.
⬇︎ 모든 단어에 대한 IDF는 동일하다. 따라서 더 흔하게 사용되는 단어와 드물게 사용되는 단어를 구분할 수 없다.
- 성능
⬆︎ A query needs to find only the single term that appears in the index.
⬆︎ query는 index에 나타나는 하나의 단어만 찾아야 한다.
- Flexibility
⬆︎ New synonyms can be added to the left side of the rule and applied at query time. For instance, imagine that we wanted to add the word
bound
to the rule specified previously. The following rule would work for queries that containbound
or for newly added documents that containbound
:⬆︎ 새로운 동의어는 규칙의 왼쪽에 추가되고, 검색 시에 적용된다. 예를 들어, 이전에 지정된 규칙에, 단어
bound
를 추가한다고 가정해 보자. 다음 규칙은bound
를 포함한 query나,bound
가 포함되어 새로 추가된 document에 대해 동작할 것이다."leap,hop,bound => jump"
But we could expand the effect to also take into account existing documents that contain
bound
by writing the rule as follows:그러나, 아래처럼 규칙을 다시 작성하여,
bound
를 포함하는 기존의 document 또한 고려하도록 효과를 확장할 수 있다."leap,hop,bound => jump,bound"
When you reindex your documents, you could revert to the previous rule to gain the performance benefit of querying only a single term.
document를 다시 색인 하는 경우, 하나의 단어만을 query하는 성능상의 이점을 얻기 위해, 기존의 규칙으로 복구할 수 있다.
Genre Expansionedit
Genre expansion is quite different from simple contraction or expansion. Instead of treating all synonyms as equal, genre expansion widens the meaning of a term to be more generic. Take these rules, for example:
장르 확장(genre expansion)은 단순한 확장이나 축소와 매우 다르다. 모든 동의어를 동등하게 다루는 대신, 장르 확장은 단어의 의미를 더 일반적으로 확장한다. 다음 규칙을 예로 들어 보자.
"cat => cat,pet", "kitten => kitten,cat,pet", "dog => dog,pet" "puppy => puppy,dog,pet"
By applying genre expansion at index time:
장르 확장을 색인 시에 적용하면,
A query for
kitten
would find just documents about kittens.kitten
에 대한 query는 kitten 에 대한 document만 찾는다.A query for
cat
would find documents abouts kittens and cats.cat
에 대한 query는 kitten 과 cat 에 대한 document를 찾는다.A query for
pet
would find documents about kittens, cats, puppies, dogs, or pets.pet
에 대한 query는 kittens, cats, puppies, dogs 또는 pets 에 대한 document를 찾는다.
Alternatively, by applying genre expansion at query time, a query for kitten
would be expanded to return documents that mention kittens, cats, or pets specifically.
반면에, 장르 확장을 검색 시에 적용하면, kitten
에 대한 query는, 특별히 kitten, cat, pet 을 언급한 document를 반환하기 위해 확장된다.
You could also have the best of both worlds by applying expansion at index time to ensure that the genres are present in the index. Then, at query time, you can choose to not apply synonyms (so that a query for kitten
returns only documents about kittens) or to apply synonyms in order to match kittens, cats and pets (including the canine variety).
해당 장르가 색인에 존재한다는 것을 보장하기 위해, 색인 시에 확장을 적용하면, 두 가지의 장점을 모두 취할 수 있다. 그러면, 검색 시에 동의어를 적용하지 않도록 선택(kitten
에 대한 query는 kitten 에 대한 document만 반환하기 위하여)하거나, kitten, cat, pet(강아지를 포함한 다양한 애완동물)에 일치하기 위해 동의어를 적용할 수 있다.
With the preceding example rules above, the IDF for kitten
will be correct, while the IDF for cat
and pet
will be artificially deflated. However, this works in your favor—a genre-expanded query for kitten OR cat OR pet
will rank documents with kitten
highest, followed by documents with cat
, and documents with pet
would be right at the bottom.
이전의 예제를 위 규칙에 적용하면, kitten
의 IDF는 올바를 것이다. 반면에, cat
, pet
에 대한 IDF는 부자연스럽게 축소될 것이다. 그러나, 이것은 실제로 여러분에게 유리할 것이다. kitten OR cat OR pet
에 대한 장르 확장 query는, kitten
에 대한 document를 가장 위로, 그 다음에 cat
에 대한 document를, 마지막에 pet
에 대한 document가 나오도록 할 것이다.
'2.X > 3. Dealing with Human Language' 카테고리의 다른 글
3-6-1. Using Synonyms (0) | 2017.09.24 |
---|---|
3-6-2. Formatting Synonyms (0) | 2017.09.24 |
3-6-4. Synonyms and The Analysis Chain (0) | 2017.09.24 |
3-6-5. Multiword Synonyms and Phrase Queries (0) | 2017.09.24 |
3-6-6. Symbol Synonyms (0) | 2017.09.24 |