๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ๏ธ Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

[ TIL ] ์ตœ์ข… ํ”„๋กœ์ ํŠธ_Day 23

by carrot0911 2025. 3. 6.

์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง 

Elasticsearch ๋ถ€๋ถ„ ๊ฒ€์ƒ‰ + ์ž๋™ ์™„์„ฑ ๊ณต๋ถ€ํ•˜๊ธฐ & ๊ตฌํ˜„ํ•˜๊ธฐ

Nori ๋ถ„์„๊ธฐ๋Š” ํ•œ๊ธ€์„ ํ˜•ํƒœ์†Œ ๋‹จ์œ„๋กœ ๋ถ„์„ํ•œ๋‹ค.
n-gram ๋ถ„์„๊ธฐ๋ฅผ ํ†ตํ•ด ํ…์ŠคํŠธ๋ฅผ ์ผ์ •ํ•œ ๊ธธ์ด์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด๋กœ ๋‚˜๋ˆ„์–ด ์ธ๋ฑ์‹ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • min_gram - ์ตœ์†Œ
  • max_gram - ์ตœ๋Œ€

→ ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ๋„ tokenizer๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ถ€๋ถ„ ๊ฒ€์ƒ‰ + ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์„ ์จ๋ณผ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?

 

๊ณ ๋ฏผ ์‚ฌํ•ญ

Q. Nori-๋ถ„์„๊ธฐ๋Š” ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ๋กœ ๋ถ„์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ ํ˜•ํƒœ์†Œ๊ฐ€ ์•„๋‹Œ ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ์›ํ•˜๋Š” ๊ฒฐ๊ด๊ฐ’์„ ์–ป์ง€ ๋ชปํ•˜๋Š” ๊ฑธ๊นŒ?

A.

Nori ๋ถ„์„๊ธฐ๋Š” ํ˜•ํƒœ์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ˜•ํƒœ์†Œ๊ฐ€ ์•„๋‹Œ ๋‹จ์–ด๋Š” ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค!

์‚ฌ์šฉ์ž ์‚ฌ์ „ ๋“ฑ๋ก์ด๋‚˜ ngram ๋ถ„์„๊ธฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

Q. ๊ทธ๋ ‡๋‹ค๋ฉด Ngram ๋ถ„์„๊ธฐ๊ฐ€ ๋ถ€๋ถ„ ๊ฒ€์ƒ‰ ๋˜๋Š” ์˜คํƒ€ ๊ฒ€์ƒ‰์— ๋” ์œ ๋ฆฌํ•˜์ง€ ์•Š์„๊นŒ..?

A.

Ngram์€ ๋ถ„์„๊ธฐ๋Š” ๋ถ€๋ถ„ ๊ฒ€์ƒ‰๊ณผ ์œ ์‚ฌ ๊ฒ€์ƒ‰์— ๊ฐ•์ ์ด ์žˆ๋‹ค!

Ngram ๋ถ„์„๊ธฐ๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๋‹จ์œ„๋กœ ์ƒ‰์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒ€์ƒ‰์–ด์˜ ์ผ๋ถ€๋งŒ ์ž…๋ ฅํ•ด๋„ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ธ€์ž ๋‹จ์œ„๋กœ ์ƒ‰์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํƒ€๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋„ ์œ ์‚ฌํ•œ ๋‹จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ƒ‰์ธ์€ Ngram์œผ๋กœ ํ•˜๊ณ , ๊ฒ€์ƒ‰์€ Standard๋ฅผ ์ด์šฉํ•œ๋‹ค. → ๊ฒ€์ƒ‰ ์‹œ์—๋„ Ngram์„ ์ด์šฉํ•˜๋ฉด ๊ฒ€์ƒ‰์–ด๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ๊ฒ€์ƒ‰๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ถ„์„๊ธฐ Nori ๋ถ„์„๊ธฐ (ํ˜•ํƒœ์†Œ ๋ถ„์„) Ngram ๋ถ„์„๊ธฐ (๋ถ€๋ถ„ ๊ฒ€์ƒ‰, ์œ ์‚ฌ ๊ฒ€์ƒ‰)
ํŠน์ง• ํ•œ๊ธ€ ๋ฌธ์žฅ์„ ํ˜•ํƒœ์†Œ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์ผ์ • ๊ธธ์ด(์˜ˆ: 2~5๊ธ€์ž)๋กœ ์ž˜๋ผ์„œ ์ €์žฅ
์žฅ์  ํ•œ๊ตญ์–ด ๋ฌธ์žฅ์—์„œ ์˜๋ฏธ ์žˆ๋Š” ๋‹จ์–ด(ํ˜•ํƒœ์†Œ)๋Š” ์ œ๋Œ€๋กœ ๊ฒ€์ƒ‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๋„ˆ๋ฌด ์งง๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋ถˆํ•„์š”ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋งŽ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.

Q. ์™œ ngram-๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ์ผ์น˜ํ•˜๋ฉด ์•Œ๋ ค์ค„๊นŒ, ์˜คํƒ€๋กœ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ ๋˜๋Š” ์ด์œ ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค!

A.

Ngram ๋ถ„์„๊ธฐ๋Š” ๋‹จ์–ด๋ฅผ ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ์ชผ๊ฐœ์„œ ์ƒ‰์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ถ„ ์ผ์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค!

์ž‘์€ ์กฐ๊ฐ๋“ค์ด ๊ฒน์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€ ์˜คํƒ€๊ฐ€ ์žˆ์–ด๋„ ๋น„์Šทํ•œ ๋‹จ์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

Ngram ๋ถ„์„๊ธฐ์˜ ๋™์ž‘ ์›๋ฆฌ๋Š” ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์ผ์ •ํ•œ ๊ธธ์ด๋กœ ์ž˜๋ผ์„œ ์ƒ‰์ธํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒ€์ƒ‰์–ด์˜ ์ผ๋ถ€๋งŒ ์ž…๋ ฅํ•ด๋„ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์˜คํƒ€๊ฐ€ ์žˆ์–ด๋„ ๊ฒ€์ƒ‰์ด ๋˜๋Š” ์ด์œ ๋Š” ์ผ๋ถ€ ๋ฌธ์ž๊ฐ€ ํ‹€๋ ค๋„ ์œ ์‚ฌํ•œ ์กฐ๊ฐ๋“ค์ด ๊ฒน์ณ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

์ผ๋ถ€๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค!

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Ngram ๋ถ„์„๊ธฐ๋Š” ๋‹จ์–ด๋ฅผ ์กฐ๊ฐ๋‚ด์–ด ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€๋งŒ ์ผ์น˜ํ•ด๋„ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์˜คํƒ€ ๊ฒ€์ƒ‰์—๋„ ๊ฐ•ํ•˜๋‹ค!

Q. ๊ทธ๋ ‡๋‹ค๋ฉด json ํŒŒ์ผ๊ณผ @Setting ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ Ngram ๋ถ„์„๊ธฐ ์ ์šฉ์ด ์™„๋ฃŒ๋˜๋Š” ๊ฒƒ์ธ๊ฐ€? ๋”ฐ๋กœ ๋” ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋‚˜ ํŒŒ์ผ์€ ์—†๋Š” ๊ฑด๊ฐ€? Ngram ์ ์šฉ ํ›„ ๊ธฐ์กด API๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰์„ ์‹คํ–‰ํ•˜๋ฉด ๋ถ€๋ถ„ ๊ฒ€์ƒ‰, ์˜คํƒ€ ๊ฒ€์ƒ‰๋„ ๊ฐ€๋Šฅํ• ๊นŒ?

A.

์ถ”๊ฐ€์ ์ธ ์„ค์ •์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค!

์˜คํƒ€ ๊ฒ€์ƒ‰์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋ ค๋ฉด ์ถ”๊ฐ€์ ์ธ ํŠœ๋‹์ด ํ•„์š”ํ•˜๋‹ค.

 

์ตœ์ข…์ ์œผ๋กœ Elasticsearch ์ธ๋ฑ์‹ฑ์„ kibana์—์„œ ์ง์ ‘ ์ง„ํ–‰ํ–ˆ๊ณ  ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ํ›„ ๋ถ€๋ถ„ ๊ฒ€์ƒ‰ + ์ž๋™ ์™„์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋ฌธ์ œ์ ์€ ์ž๋™ ์™„์„ฑ์œผ๋กœ ์ธํ•ด ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋“ค์ด ๋ชจ๋‘ ์ฐพ์•„์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์ถ”ํ›„ ๊ฐœ์„ ์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

๋‚ด์ผ ๊ณ„ํš โฐ

  • Elasticsearch ์ž๋™ ์™„์„ฑ + ๋ถ€๋ถ„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ

+ ์ถ”๊ฐ€ ๊ณ„ํš์ด ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค~_~