lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Commented] (LUCENE-8553) New KoreanDecomposeFilter for KoreanAnalyzer(Nori)
Date Thu, 01 Nov 2018 18:13:00 GMT


Uwe Schindler commented on LUCENE-8553:

bq. Can't we just use unicode normalization for this? NFD/NFKD will decompose.

That was my first idea, too. You can also provide an extended mapping like described here
with the ICU4J Transformer/Transliterator:
There is aso a mapping between Jamo and Hangul. So you just need to use ICUTransformFilter
and give the rules as described in above documentation, see "Hangul-Jamo" as example.
IMHO, no need for this filter, ICUTransformFilter should do that with correct config: e.g.,
{{new ICUTransformFilter(stream, Transliterator.getInstance("Hangul-Jamo"));}}

> New KoreanDecomposeFilter for KoreanAnalyzer(Nori)
> --------------------------------------------------
>                 Key: LUCENE-8553
>                 URL:
>             Project: Lucene - Core
>          Issue Type: New Feature
>          Components: modules/analysis
>            Reporter: Namgyu Kim
>            Priority: Major
>         Attachments: LUCENE-8553.patch
> This is a patch for KoreanDecomposeFilter.
> This filter can be used to decompose Hangul.
> (ex) 한글 -> ㅎㄱ or ㅎㅏㄴㄱㅡㄹ)
> Hangul input is very unique.
> If you want to type apple in English,
>    you can type it in the order {color:#FF0000}a -> p -> p -> l -> e{color}.
> However, if you want to input "Hangul" in Hangul,
>    you have to type it in the order of {color:#FF0000}ㅎ -> ㅏ -> ㄴ ->
ㄱ -> ㅡ -> ㄹ{color}.
>    (Because of the keyboard shape)
> This means that spell check with existing full Hangul can be less accurate.
> The structure of Hangul consists of elements such as *"Choseong"*, *"Jungseong"*, and
> These three elements are called *"Jamo"*.
> If you have the Korean word "된장찌개" (that means Soybean Paste Stew)
> *"Choseong"* means {color:#FF0000}"ㄷ, ㅈ, ㅉ, ㄱ"{color},
> *"Jungseong"* means {color:#FF0000}"ㅚ, ㅏ, ㅣ, ㅐ"{color},
> *"Jongseong"* means {color:#FF0000}"ㄴ, ㅇ"{color}.
> The reason for Jamo separation is explained above. (spell check)
> Also, the reason we need "Choseong Filter" is because many Koreans use *"Choseong Search"*
(especially in mobile environment).
> If you want to search for "된장찌개" you need 10 typing, which is quite a lot.
> For that reason, I think it would be useful to provide a filter that can be searched
by "ㄷㅈㅉㄱ".
> Hangul also has *dual chars*, such as
> "ㄲ, ㄸ, ㅁ, ㅃ, ㅉ, ㅚ (ㅗ + ㅣ), ㅢ (ㅡ + ㅣ), ...".
> For such reasons,
> KoreanDecompose offers *5 options*,
> ex) *된장찌개* => [된장], [찌개]
> *1) ORIGIN*
> [된장], [찌개]
> [ㄷㅈ], [ㅉㄱ] 
> [ㄷㅈ], [ㅈㅈㄱ] 
> [ㄷㅚㄴㅈㅏㅇ], [ㅉㅣㄱㅐ] 
> [ㄷㅗㅣㄴㅈㅏㅇ], [ㅈㅈㅣㄱㅐ] 

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message