cleanUrl: 'articles/2'
Β
21μΈκΈ° λνλ―Όκ΅μ λνμ μ΄λ₯λ€μ λ°©μμλ λ²μ¨ μΈ λ²μ§Έ μλμ΄ μΈλ¦¬κ³ μμ΅λλ€. μλμ΄ νμ°Έμ μΈλ¦¬λ λμ λ₯λ€λ λ―Έλλ μμ μ±λ‘ βμ리μΌ, μλ κΊΌμ€βλΌκ³ λ§ν©λλ€. μ리μ λ΅μ λ€μΌλ©° νκ²Ήκ² λͺΈμ μΌμΌν¨ λ₯λ€λ λΆμμΌλ‘ κ±Έμ΄κ° λ¬Όμ ν μ λ§μ λ€, μν μμ μλ νΈλν°μΌλ‘ μ΄μ μ¬λΌμ¨ λ΄μ€κ° μμ½λ λ©μΌμ μ½κΈ° μμν΄μ. μ£Όμ λ΄μ€ μλΉμ€μμ μΆμ²ν΄μ£Όλ μ£Όμμ νμΈνλ©°, λ₯λ€λ κ°λΆκ° λλ μμμ κ·Έλ €λ³΄κ³€ μ€μκ° κ°μλ₯Ό λ£κΈ° μμν΄μ.
μ΄μ΄ μμΉ¨ κ²Έ μ μ¬μ κ°λ¨νκ² ν΄μΉμ΄ λ₯λ€λ μ΄μ λ―Έμ² λ§λ¬΄λ¦¬νμ§ λͺ»ν λ ν¬νΈ κ³Όμ λ₯Ό μμν©λλ€. μλ£λ₯Ό μ°ΎκΈ° μν΄ κ²μν μμ΄κΆ μ¬μ΄νΈμ κΈμ νκΈλ‘ λ²μν΄ μ 보λ₯Ό μ»κ³ , νΉμλΌλ λ§μΆ€λ²μ΄ νλ¦΄κΉ μΆμ΄ λ§μΆ€λ² κ²μ¬λ λλ €λ΄
λλ€. κ½€ μ€λ μκ°μ λ§€λ¬λ € λλΈ λ ν¬νΈλ νμ λ₯ κ²μ¬ μ¬μ΄νΈμ μ¬λ € νμ λ₯ μ νμΈν΄λ³΄κ³ λ©μΌλ‘ μ μΆν©λλ€. κ³Όμ λ₯Ό λλΈ λ₯λ€λ ν μ΄νμ λ€μ΄κ° μν μ·¨ν₯μ κ²μν λ€ μΆμ²μ λ°κ³ μμ μ μ·¨ν₯μ μ 격ν μνλ₯Ό νλλ€. μλ© ν¬λ λ§κΉμ§ λ³΄κ³ λμμΌ λΉμ₯ λ΄μΌ μμ AI λ©΄μ νκΈ°λ₯Ό μ°Ύμ보며 μ€λΉνκ³ , λ₯λ€λ λ¦μ μ λ
μ΄ λμ΄μμΌ μΉ¨λμ λμ΅λλ€.
Β
λ₯λ€μ ν루, μ΄λ»κ² 보μ
¨λμ?
μ§§κ² μ½μ΄λ³Έ λ₯λ€μ μν μμλ μ°λ¦¬μ μΆμ νΈλ¦¬νκ² λ§λ€μ΄μ€ 곡ν΅μ μΈ κΈ°μ μ΄ μ¨μ΄ μμ΅λλ€. λ°λ‘ μμ°μ΄μ²λ¦¬(NLP, Natural Language Processing)μΈλ°μ. λ₯λ€κ° μ¬μ©ν μ리λΆν° λ΄μ€ μμ½ λ©μΌ, λ ν¬νΈ κ³Όμ λ₯Ό νκΈ° μν΄ μ¬μ©ν μ¬μ΄νΈμ κΈ°λ₯λ€, μν μ·¨ν₯ κ²μ μ΄ν, ai λ©΄μ λ± μ΄ λͺ¨λ κ²μ κ°λ₯νκ² λ§λλ κΈ°μ΄μ μΈ κΈ°μ μ΄λΌκ³ ν μ μμ΅λλ€. μ§κΈλΆν° λ νΈμ κ±Έμ³, κ° μλΉμ€μ μ μ©λ μμ°μ΄μ²λ¦¬ κΈ°μ μ νμΈν΄λ³΄κ³ μ΄λ€ νΉμ§μ κ°μ§κ³ μλμ§ μμλ³Όκ²μ.
Β
Β
μμ± μ΄μμ€ν΄νΈVoice assistant
λ₯λ€κ° μλμ λκΈ° μν΄ λΆλ λ βμ리βλ μ ν μ¬μ μΈκ³΅μ§λ₯ κ°μΈ λΉμ μλΉμ€μ
λλ€. μ§μ μκ°λ½μΌλ‘ νλ©΄μ ν°μΉν΄ νΉμ μ΄νμ ν΄λ¦νμ§ μκ³ λ μ리λ₯Ό λΆλ¬ μμ±μΌλ‘ μ§μνλ©΄ μλ¦¬κ° λμ μ νλ₯Ό κ±Έκ±°λ λ¬Έμλ₯Ό 보λ΄μ£Όκ³ , κ³§λ°λ‘ μλμ μ€μ νκ±°λ μμ
μ μ€νν μ μμ΅λλ€. μ¬μ§μ΄λ λ μ¨ λλ νμ¨ λ± κΆκΈν κ²λ€μ μ리μκ² λ¬Όμ΄λ³΄λ©΄ μ¦μ λ΅μ μλ €μ€ μλ μμ£ .
Β
μ리μ μ μ¬ν μλΉμ€μλ μΌμ±μ λΉ
μ€λΉ, ꡬκΈμ κ΅¬κΈ μ΄μμ€ν΄νΈ, μλ§μ‘΄μ μλ μ¬ λ±μ΄ μλλ°μ. μ΄ μλΉμ€λ€μ μ΄μΉν΄ μμ± μΈμ λΉμ, μμ± μ΄μμ€ν΄νΈλΌκ³ μ΄μΌκΈ°ν μ μμ΄μ. μμ± μ΄μμ€ν΄νΈ κΈ°μ μ ν΅μ¬ κΈ°λ₯μ μ»΄ν¨ν°κ° μ¬μ©μμ λ°νμ λ΄μ¬λ μλλ₯Ό νμ
νκ³ μλμ κ±Έλ§μ μ
무λ₯Ό λμ μνν μ μλλ‘ νλ κ²μ΄λΌκ³ ν μ μμ΅λλ€.
Β
Β
μμ± μ΄μμ€ν΄νΈμ μ리λ?
Β
μμ± μ΄μμ€ν΄νΈκ° μλλκΈ° μν΄μλ μ¬μ©μμ μμ±μ΄ λ€μ΄μ€λ©΄ μ΄λ₯Ό μΈμνκ³ / μΈμν μμ±μ ν
μ€νΈλ‘ λ³νν΄ μλμ λ§κ² λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ€ / μ¬μ©μμκ² μ 곡ν μ 보μ λν ν
μ€νΈλ₯Ό μ€λμ€λ‘ λ³ννλ κ³Όμ μ κ±°μ³μΌ ν΄μ. μ§κΈλΆν° μ‘°κΈ λ ꡬ체μ μΌλ‘ μμλ³Όκ²μ.
Β
1. μμ± μ
λ ₯ λ° μΈμ
μμ± μ΄μμ€ν΄νΈ μλΉμ€λ μ¬μ©μμ νΈμΆμ΄Invoke keywordλ₯Ό μΈμνλ κ²λΆν° μμν©λλ€. βμ리μΌβ, βνμ΄ λΉ
μ€λΉβ λ±κ³Ό κ°μ νΈμΆμ΄λ‘ μμ± μ΄μμ€ν΄νΈκ° μ€νλλ©΄, μ΄νμ μ
λ ₯λλ μ¬μ©μμ μμ±μ μΈμν΄ λ³Έκ²©μ μΈ νλ‘κ·Έλ¨μ΄ μμλλ κ±°μ£ . μ΄λ μ¬μ©μκ° μλΉμ€λ₯Ό μ¬μ©ν λ μ·¨νλ λνλ μ λ³μ‘κΈ° λν, μ§μμλ΅ λν, λͺ©μ μ§ν₯ λνλ‘ κ΅¬λΆν΄λ³Ό μ μμ΄μ.
νΈμΆμ΄λ₯Ό λΉλ‘―ν μ¬μ©μμ μμ±μ STT(Speech-to-Text) κΈ°μ λ‘ μΈμν μ μμ΅λλ€. STTλ μ¬λμ μμ± μΈμ΄λ₯Ό μ»΄ν¨ν°κ° ν΄μν΄ ν
μ€νΈ λ°μ΄ν°λ‘ μ νν΄ μ£Όλ κΈ°μ μ΄μμ. STT κΈ°μ μ κΈ°λ³Έμ μΈ κ΅¬μ‘°λ λ€μκ³Ό κ°μ΄ κ·Έλ €λ³Ό μ μμ΄μ.
μ°μ , μ
λ ₯λ μμ± λ°μ΄ν°μμ νμν λ°μ΄ν°λ§μ μ·¨νκΈ° μν΄ μ‘μμ μ²λ¦¬νκ³ μμ± νΉμ§μ μΆμΆν©λλ€. μ μ²λ¦¬ κ³Όμ μ΄λΌκ³ λ ν μ μμ΄μ. μ‘μμ μ²λ¦¬νκΈ° μν λ°©λ² μ€μλ μ£Όλ³ μμμ μ μμμ κ°λ μνλ₯Ό λ°μμμΌ μμμ΄ μμλλλ‘ νλ κΈ°μ‘΄ λ
Έμ΄μ¦ μ κ±° κΈ°μ λ μκ³ , λ₯λ¬λμ νμ©ν΄ μ‘μμ νν°λ§νλ κΈ°μ λ μμ΅λλ€. μ‘μμ μ κ±°νλ λ₯λ¬λκ³Ό λ κΉ¨λν μμ± λ°μ΄ν°λ₯Ό νλ¨νλ λ₯λ¬λ λ κ°μ§λ₯Ό μ¬μ©ν΄, λ λ₯λ¬λμ΄ νλ¨μ λ°λ³΅νλ κ³Όμ μ κ±°μ³ μμμ κ°κΉμ΄ κΉ¨λν μμ§μ μΆμΆνλ λ°©μμ μ¬μ©νκΈ°λ ν΄μ.
Β
λ€μμ μΆμΆν λ°μ΄ν°λ₯Ό ν
μ€νΈννλ κ³Όμ μ
λλ€. μ΄ κ³Όμ μμ μ¬μ©νλ μκ³ λ¦¬μ¦μ λμ½λ(Decoder)λΌκ³ νκ³ , λμ½λ© λ¨κ³λΌ μΉνκΈ°λ ν΄μ. κΈ°μ‘΄μ ꡬμΆν μμ± λͺ¨λΈκ³Ό μ΄ν/λ°μ μ¬μ μ λ°νμΌλ‘ μΆμΆν μμ± λ°μ΄ν°λ₯Ό ν
μ€νΈ μ λ³΄λ‘ λ³ννλ κ³Όμ μ΄λΌ ν μ μμ΄μ. μ΄λ μμ± λͺ¨λΈμ μν₯λͺ¨λΈ(Acoustic Model, AM)κ³Ό μΈμ΄λͺ¨λΈ(Language Model, LM)λ‘ κ΅¬μ±λμ΄ μμ΄μ. μν₯ λͺ¨λΈμ μμ± λ°μ΄ν°μμ λνλλ μν₯μ νΉμ±μ λͺ¨λΈλ§ν΄ νμ΅ν λͺ¨λΈ, μΈμ΄ λͺ¨λΈμ λ¬Έμ₯μ μ΄ν, λ¬Έμ₯ ꡬ쑰μ κ°μ λ¬Έλ²μ νΉμ±μ νμ΅ν λͺ¨λΈμ μλ―Έν©λλ€. μν₯ λͺ¨λΈλ‘λ νμλ₯Ό μλ³νκ±°λ μ±λ³ λ±μ μΈμν μ μμ΄μ.
Β
Β
κ·Έλ¦¬κ³ μ¬μ©μμ κ΅μ , μ΅μ, μ΄ν¬, μΆμμ, μΈμ΄μ μ΅κ΄μ λΉλ‘―ν λ°©μΈ λ±μ κ³ λ €νμ λ, μμ± λ°μ΄ν°λ‘λΆν° μ¬μ©μμ νμ€ν μλλ₯Ό μ°ΎκΈ° μν΄μλ μν₯ λͺ¨λΈκ³Ό μΈμ΄ λͺ¨λΈμ νμ©νλ κ²μ΄ ν¨κ³Όμ μ΄κ² μ£ ? μλ κ·Όλ° μμ§ν μ§μ§ λ°νμ λ΄κΈ΄ νμμ μΈ ννμ ꡬλΆν΄λ΄λ κ³Όμ μ νμν ν
λκΉμ!
Β
μ΅κ·Ό μ°κ΅¬λκ³ μλ μλ£μ λ°λ₯΄λ©΄ STTμ λ§μ§λ§ λ¨κ³μμ νμ²λ¦¬λ₯Ό μ§ννκΈ°λ ν΄μ. νμ²λ¦¬μλ λμ΄μ°κΈ° μ€λ₯ 보μ , μ² μ μ€λ₯ 보μ , μμ±μΈμ κ²°κ³Ό μ¬μμνκ° ν¬ν¨λ©λλ€.
Β
λμ΄μ°κΈ° μ€λ₯ 보μ μ λͺ¨λ λμ΄μ°κΈ°λ₯Ό μμ ν λ€ κΈ°κ³νμ΅ λͺ¨λΈλ‘ λμ΄μ°κΈ°λ₯Ό ν μμΉλ₯Ό κ²°μ νλ λ°©λ²μ μλ―Έν΄μ.
Β
μ² μμ€λ₯ 보μ μ μ¬μ κ³Ό ν΅κ³ μ 보λ₯Ό μ£Όλ‘ μ΄μ©ν©λλ€. μ¬μ μ μ΄μ©νλ κ²½μ°, λͺ¨λ λ¬Έμ₯μ κ° λ¨μ΄λ₯Ό μ¬μ μμ κ²μνκ³ κ²μλμ§ μμ λ¨μ΄λ₯Ό μ² μ μ€λ₯λ‘ κ°μ ν΄μ. λ©νν° μκ³ λ¦¬μ¦ λ±μ μ¬μ©ν΄ κ·Έ λ¨μ΄μ κ°κΉμ΄ λ¨μ΄λ‘ λ체νλ λ°©λ²μ΄ κ³§ μ¬μ μ ν΅ν μ² μμ€λ₯ 보μ μ΄μμ. ν΅κ³ μ 보μ κ²½μ°, λ¨μ΄μμ νΉμ μμ λλ μνλ²³μ΄ μμ λκ±°λ λ체λ νλ₯ μ λ°νμΌλ‘ μ¬μ©μκ° μλν λ¨μ΄λ₯Ό κ³μ°νλ 보μ μ΄λΌκ³ λ³Ό μ μμ΄μ.
Β
μμ±μΈμ κ²°κ³Ό μ¬μμν λͺ¨λΈμ μμ±μΈμ κ²°κ³Ό λμΆλ ννμμ΄μ ν보ꡰμ λκ³ , μ³μ ννμμ΄μ λ§λλ μ΅μ’
λ¬Έμ₯μ ꡬμ±νλ λͺ¨λΈμ΄μμ.
Β
Β
2. μμ°μ΄ μ΄ν΄μ μμ°μ΄ μμ±
STTλ₯Ό κ±°μ³ ν
μ€νΈ λ°μ΄ν°λ₯Ό μμ§ν λ€μλ ν
μ€νΈμ μ¨μ μλintentμ κ°μ²΄entityλ₯Ό μΆμΆν΄μΌ ν΄μ. μ¦, μμ± λ°μ΄ν°μμ μΆμΆν΄ μ νν ν
μ€νΈ λ°μ΄ν° μ€μ μ¬μ©μκ° μνλ λ°λ₯Ό λ΄μ ννμ΄ μ΄λ€ κ²μΈμ§λ₯Ό νμ
νλ κ³Όμ μ κ±°μ³μΌ νλ κ±°μ£ .
Β
μ¬κΈ°μ μ¬μ©μμ μλλ λνμ μ±κ²©μ λ°λΌ λ€λ₯΄κ² μ€μ λμ΄ μμ κ±°μμ. λ΄νλ₯Ό μνλμ§, μ§μμλ΅μ μνλμ§, λλ λͺ©μ μ§ν₯ λνλ₯Ό μνλμ§μ λ°λΌμμ! μ΄λ₯Ό νμ
νλ κ³Όμ μ΄ κ³§ μμ°μ΄ μ΄ν΄(National Language Understanding, NLU)μ΄κ³ , μμ§ν μ 보λ₯Ό νμ©νλ λνκ΄λ¦¬, κ·Έ κ²°κ³Όλ₯Ό λ°νμΌλ‘ μ¬μ©μμκ² μ λ¬ν μλ΅μ μμ°μ΄ ν
μ€νΈλ‘ λ§λ€μ΄μ£Όλ κ²μ΄ μμ°μ΄ μμ±(National Language Generation, NLG)μ ν΄λΉν΄μ.
μ°μ μ¬μ©μμ μλλ₯Ό νμ
νλ κ³Όμ μ λ΄ν λΆμ, μ΄λ€ μλ΅μ μμ±ν μ§λ₯Ό κ²°μ νλ κ³Όμ μ λν λͺ¨λΈλ§μ΄λΌκ³ μ μν΄μ. μ΄λ λν λͺ¨λΈμ μμ μ§μ λͺ¨λΈκ³Ό λ΄ν λͺ¨λΈλ‘ ꡬλΆλλλ°, μ μλ μλ΅μ μμ±νκΈ° μν΄ μ°Έμ‘°ν μ μλ μ§μμ κ΄λ¦¬νλ λͺ¨λΈ, νμλ λν νλ¦μ μ μ΄νλ λͺ¨λΈμ΄μμ. μΆ©λΆν λ§λμΉλ‘ νμ΅λ λͺ¨λΈμ νμ©ν΄, STTλ‘ μ»μ ν
μ€νΈμ μλ―Έλ₯Ό νμ
νκ³ μ΄μ λν μλ΅μ ꡬμ±ν λ°μ΄ν°λ₯Ό νμ νλ κ±°μ£ .
Β
μλ΅μ μμ±νλ μμ°μ΄ μμ± λ¨κ³μμλ μ΅μ’
μ μΌλ‘ ν
μ€νΈ λ΅λ³μ λμΆν΄μ. μ΄ μλ΅μ μ°λ¦¬κ° μ¬μ©νλ μμ°μ΄ ννλ‘ κ΅¬μ±λμ΄ μ 보λ₯Ό μννκ³ μ ννκ² μ λ¬ν μ μλ κ²μ λͺ©μ μΌλ‘ ν©λλ€. Stent et alμ΄ μ μν λ°μ λ°λΌ μ μ μ±, μ μ°½μ±, κ°λ
μ±, λ€μμ±μ λ§μ‘±ν μ μλλ‘ κ·Έλ¦¬κ³ λ¬Έλ§₯, λ¬Έμ₯μ κΈΈμ΄ λ±μ΄ μ μ ν μ μλλ‘ μ‘°κ±΄μ λ§μΆ° μμ±ν΄λΈλ€λ©΄ μ΄μ μ ν©ν μλ΅μ μ¬μ©μμκ² μ μ©νκ² μ λ¬λ κ±°μμ.
Β
Β
3. μΈμ κ²°κ³Ό μ€λμ€ λ³ν
μ¬μ©μμκ² μ λ¬ν μλ΅ λ¬Έμ₯μ΄ κ΅¬μ±λμλ€λ©΄ μ΄μ λ μ¬λμ λͺ©μλ¦¬λ‘ λ³νν΄ μΆλ ₯ν λ¨κ³μ
λλ€. μ΄λ²μλ ν
μ€νΈλ₯Ό μμ±μΌλ‘ μ ννλ TTS(Text-to-Speech) κΈ°μ μ νμ©ν΄μΌ ν΄μ. μμ± ν©μ±μ΄λΌκ³ λ νλ TTSλ, λͺ¨λΈλ‘ μ μ ν μ¬λμ λ§μ리λ₯Ό λ
Ήμν λ€ κ·Έ μμμ μΌμ ν μμ± λ¨μλ‘ λΆν ν΄ μ
λ ₯νκ³ , νμν μμ± λ¨μλ₯Ό ν©μ³ μΈμλ‘ λ°νλ₯Ό λ§λ€μ΄λ΄λ κΈ°μ μ λ§ν΄μ.
μμ°μ΄ μμ± κ³Όμ μΌλ‘ μ¬μ©μμκ² μ λ¬ν μλ΅ λ¬Έμ₯μ΄ κ΅¬μ±λλ©΄ λ¬Έμμ΄μ λ°μμ΄λ‘ λ³ννκ³ , μμ±μ νΉμ§μ μμ±ν λ€μ μμ μ΄μΌκΈ°ν νμν μμ± μ νΈλ₯Ό ν©μ±νλ λ¨κ³λ₯Ό κ±°μΉλ κ±°μ£ .
Β
TTS κΈ°μ μ΄ λ°λ¬νλ©΄μ, μ΄μ λ μΈμμ μΌλ‘ μμ± λ¨μλ₯Ό ν©μ±νμ§ μκ³ λ End-to-End TTS λͺ¨λΈ λ±μ μ¬μ©ν΄ μ΄ λ¨κ³λ₯Ό μμνκ² μ§νν μ μμ΄μ. ν
μ€νΈλ₯Ό μ
λ ₯νλ©΄ μ΄ κ³Όμ μ λν λ°μ΄ν°λ₯Ό λͺ¨λΈμ΄ μ€μ€λ‘ νμ΅νκ² μ€μ ν΄ λ³λλ‘ λ¬Έμμ΄μ λ°μμ΄λ‘ λ³ννμ§ μκ³ λ κ³§λ°λ‘ μμ± λ°μ΄ν°λ‘ μΆλ ₯ν μ μκ±°λ μ!
Β
νμ΄μ€λΆ(ν Meta) AIμμ λ°νν βμμ±μ νμ μΈμ΄ λͺ¨λΈ(Generative Spoken Language Model, GSLM)βμμλ μμ μ€λμ€ μ체μμ μμ°μ΄ μ²λ¦¬κ° μ§νλΌμ. ꡬμ΄μμ μμ£Ό λ°λ³΅λλ μ리μ κ°λ³ λ¨μλ‘ λ³ννκ³ (μΈμ½λ) μ΄λ»κ² λ¨μλ€μ ꡬμ±νκ³ λΆλ¦¬ν΄μΌ ν μ§ μμΈ‘ν λ€(μλ νκ·), κ·Έ λ¨μ κΈ°λ°μ μΈμ΄ λͺ¨λΈμ λ°νμΌλ‘ λ¨μλ₯Ό λ€μ μμ±μΌλ‘ λ³ννλ κ³Όμ (λμ½λ)μ κ±°μ³μ λ§μ΄μ£ .
Β
Β
Β
Β
μ΄μ μ°λ¦¬λ λ₯λ€κ° λ λ¨μλ§μ λΆλ λ βμ리βκ° μ΄λ»κ² μλμ λλ μΌμ μννλμ§ μ΄ν΄ν μ μμ΄μ. βμ리μΌβλΌλ νΈμΆμ΄λ‘ μ€νμ΄ μμλκ³ , μ΄μ΄ μ΄μΌκΈ°ν βμλ κΊΌμ€βλΌλ μμ±μ STTλ₯Ό νμ©ν΄ ν
μ€νΈ λ°μ΄ν°λ‘ λ³νν λ€, ν
μ€νΈμ λν μ΄ν΄λ₯Ό λ°νμΌλ‘ λ§λ μλ΅μ TTSλ‘ μμ± λ°μ΄ν°λ‘ λ³νν΄ μΆλ ₯νλ κ³Όμ μ κ±Έμ³ μλμ λλ μΌμ μννλ κ±°μ£ . μμΌλ‘λ μμ± μΈμ κΈ°μ μ λ₯λ€κ° κ·Έλ¬λ―μ΄, μ거리μμλ, μ νλ κΉλ±νμ§ μκ³ λ, κ΅μ₯ν λΉ λ₯΄κ² μ°λ¦¬κ° μνλ μΌμ ν΄λΌ μ μκ² λ§λ€μ΄μ€ κ±°μμ!
Β
Β
Β
Β
Β
λ΄μ€ μμ½ AI λͺ¨λΈ
Β
μ΄λ κ² μ리μ ν¨κ» μμΉ¨μ μΌμ΄λ¬λ€λ©΄, λ₯λ€μ²λΌ μ μλ λμ μ΄λ€ μΌλ€μ΄ λ°μνλμ§ μμλ³Ό νμκ° μκ² μ£ ? κ·Έλ¬κΈ° μν΄μλ λ΄μ€ κΈ°μ¬λ₯Ό μ’ μ½μ΄μΌ ν ν
λ°... κΆκΈν κ²μ λ§μ§λ§ μ£Όμ μμ₯μ΄ μ΄λ¦¬κΈ°κΉμ§ μκ°μ΄ μΌλ§ λ¨μ§ μμμ λΏλλ¬ νκ΅ μμ
κΉμ§λ μκ°μ΄ λ³λ‘ μμ΄ μλ§μ κΈ°μ¬λ₯Ό μ λ
νκΈ°μλ μκ°μ΄ μ‘°κΈ λΉ λ―ν΄μ.
κ·Έλ λ€λ©΄ λ₯λ€κ° κ·Έλ¬λ― λ΄μ€ μμ½ AI λͺ¨λΈμ νμ©νλ©΄ λκ² λ€μ! λ΄μ€ μμ½ AI λͺ¨λΈλ€μ λμ²΄λ‘ λ΄μ€λ₯Ό μΈμ€, νΉμ νμ€λ‘ νμν λΆλΆλ§ μμ λ½μμ λ§€μ° κ°κ²°νκ² λ³΄μ¬μ£Όλλ°μ, μ€ μΈν°λ·κ³Ό μ°ν©λ΄μ€μ λ΄μ€ μμ½ AI λͺ¨λΈ, λ€μ΄λ²μ CLOVA Summary, SKν
λ μ½€μ KoBART λ±μ μλ‘ λ€ μ μμ΄μ. κ΅λ΄ μ£Όμμ μΆμ²ν΄μ£Όλ μλΉμ€λ κ΅μ₯ν λ§μλ°μ, λ°μ΄λΈμ»΄νΌλλ SOFIAλΌλ νλ«νΌμ κΈ°λ°μΌλ‘ λ§μΆ€ν/ꡬλ
ν μλΉμ€λ₯Ό μ 곡νκ³ μμΌλ©° ν¬λμ§νΈμμλ λ΄μ€μλ¬λλΌλ μ±μ κ°λ°νμ¬ μμ₯ μ£Όμκ³Ό κ΄λ ¨λ λ΄μ€, 리ν¬νΈ λ±μ μ 곡νκ³ μμ΄μ. λ μλΉμ€ λͺ¨λ μ΄λ»κ² ꡬμ±λκ³ λ§λ€μ΄μ‘λμ§ μ΄ν΄λ³΄λλ‘ ν΄μ.
Β
SKν λ μ½€μ KoBARTλ₯Ό νμ©ν λ΄μ€ μμ½
λ¨Όμ λ΄μ€ μμ½ AI λͺ¨λΈλ€μ μ΄ν΄λ³Όν
λ°μ, κ·Έ μ€μμ κ°μ₯ μ¬μ©μ΄ κ°λ¨ν΄μ λꡬλ μ§ νμ©ν΄λ³Ό μ μλ SKν
λ μ½€μ KoBARTλ₯Ό μμλ‘ λ€μ΄λ³΄λ €κ³ ν©λλ€. νμ¬ SKν
λ μ½€μ KoBERT, GPT-2μ μ΄μ΄ μΈ λ²μ§Έ μΈμ΄μ²λ¦¬ λͺ¨λΈλ‘ KoBARTλ₯Ό λ΄μΈμ λλ°μ, μμ°μ΄μ²λ¦¬(NLP) λΆμΌ μ€μμ μμ°μ΄μ΄ν΄(NLU) μμμ κΈ°μ λ ₯μ μ¦κ°μν¨ κ²μ΄λΌκ³ ν©λλ€. SKν
λ μ½€μ ν
ν¬ T3K μΌν°κ° μ΄μνλ GitHub μ€ KoBART-summarization ννΈμ λ€μ΄κ°λ©΄ λ°λ‘ κΈ°μ¬ μμ½ νλ‘κ·Έλ¨μ μ¬μ©ν μ μμ΄μ.
미리 huggingface.coμ λμ μλ binaryλ₯Ό νμ©νμ¬ KoBARTλ₯Ό λΆλ¬λ€μΈ λ€, binaryλ₯Ό λ€μκ³Ό κ°μ μ½λλ₯Ό μ¬μ©ν΄μ λ€μ΄λ°μ΅λλ€. ν΄λΉ GitHubμμλ Dacon νκ΅μ΄ λ¬Έμ μμ±μμ½ AI κ²½μ§λνμ νμ΅ λ°μ΄ν°λ₯Ό νμ©νλ€κ³ ν΄μ. μ΅κ·Όμ SKTλ κ΅λ¦½κ΅μ΄μκ³Ό μ
무 νμ½μ 체결νμ¬ κ΅λ¦½κ΅μ΄μμ μΈμ΄ μ 보, μ²μ μ¬μ΄νΈμμ λ μ§κ° μ§λ μ²μ λ΄μ©, λν λ΄μ© λ± ν¨μ¬ λ λ§μ λ°μ΄ν°λ₯Ό νμ©νκ³ μμ΄μ. κ·Έ λ€μ μ΄ μ½λλ₯Ό ν΅ν΄ μΈλ°νκ² μμ½λ λ΄μ©μ μ‘°μ νλ κ³Όμ μ κ±°μ³ Demoλ₯Ό μ€ννλ©΄ μμΌλ‘λ λ΄μ€ μμ½μ κ°λ¨νκ² ν μ μμκ±°μμ. μ¬κΈ°λ₯Ό λλ₯΄λ©΄ λ°λ‘ KoBART Summarization Model Testλ‘ λμ΄κ° μ μμ΄μ. λ€μμ κ°μ₯ μ΅κ·Όμ κΈ°μ¬λ₯Ό ν΄λΉ λͺ¨λΈμ ν΅ν΄μ μμ½ν΄λ³Έ κ²°κ³Όμμ. λλμ§ μλμ?
Β
Β
Pororoλ₯Ό νμ©ν μ£Όμ λ΄μ€ μμ½
λ€μμΌλ‘λ λ€μ΄λ² λ΄μ€μ, μΉ΄μΉ΄μ€ λΈλ μΈμμ 곡κ°ν νμ΄μ¬ λΌμ΄λΈλ¬λ¦¬ Pororoλ₯Ό νμ©ν΄ μ£Όμ λ΄μ€λ₯Ό μμ½νλ λ°©λ²μ μμλ³΄κ³ μ ν©λλ€. ν΄λΉ νλ‘κ·Έλ¨μ λ©μΌλ§κΉμ§ μ§μνμ¬ κ΅¬κΈ κ³μ κ³Ό μ°λνλ€λ©΄ μμ½λ μ£Όμ λ΄μ€λ₯Ό λ©μΌλ‘ λ°μλ³Ό μ μλ€κ³ λ νλ€μ! λ¨Όμ λ€μ΄λ² λ΄μ€μμλ βκΈμ΅β ννΈμμ μ£Όμ λ΄μ€λ₯Ό λ€λ£¨κ³ μμΌλ―λ‘ ν΄λΉ λΆλΆμμ κΈ°μ¬λ₯Ό ν¬λ‘€λ§ν©λλ€. μ΄ κ³Όμ μ μ£ΌκΈ°μ μΌλ‘ νλ€λ©΄ μ£ΌκΈ°μ μΌλ‘ μ£Όμ κ΄λ ¨ λ΄μ€μ λ°μ΄ν°κ° μμκ³Ό λμμ λ©μΌλ‘ μ£Όμ λ³ν λ΄μ©λ€μ νλμ μμλ³Ό μ μκ² μ£ ? λ€μμ ν¬λ‘€λ§ μ½λμμ.
Β
from bs4 import BeautifulSoup import requests import pandas as pd import re import os class news_crawler: def __init__(self): self.company_code_table = pd.read_csv('company_list.txt', dtype=str, sep='\t') def crawler(self, company_code, num_article): done_page_num=0 # page = 1 num_per_page=20 # naver serves 20 articles per page num_page,remainder=divmod(num_article,20) num_page+=1 article_result=[] for page in range(done_page_num+1, done_page_num+num_page+1): try: url = 'https://finance.naver.com/item/news_news.nhn?code=' + str(company_code) + '&page=' + str(page) source_code = requests.get(url).text html = BeautifulSoup(source_code, "lxml") # λ΄μ€ λ§ν¬ links = html.select('.title') link_result =[] if page == num_page: links=links[:remainder] for link in links: add = 'https://finance.naver.com' + link.find('a')['href'] link_result.append(add) print(f"{len(link_result)}κ°μ λ΄μ€ ν¬λ‘€λ§..") except Exception: pass for article_url in link_result: try: article_source_code = requests.get(article_url).text article_html = BeautifulSoup(article_source_code, "lxml") article_time = article_html.select('.tah')[0].get_text() # λ΄μ€ λ΄μ© article_contents = article_html.select('.scr01') article_contents=article_contents[0].get_text() article_contents = re.sub('\n','',article_contents) article_contents = re.sub('\t','',article_contents) # cut extra text after Copyright mark if "β" in article_contents: article_contents=article_contents[:article_contents.index("β")] # cut too long text to prevent CUDA OOM issue if len(article_contents)>=1500: article_contents=article_contents[:1500] article_result.append([article_contents,article_time]) time.sleep(random.uniform(0.1,0.7)) except Exception: pass # print("λ€μ΄ λ°κ³ μμ΅λλ€------") return article_result def convert_company_to_code(self,company): # μ’ λͺ©μ½λ μΆμΆ company_name = self.company_code_table['νμ¬λͺ '] keys = [i for i in company_name] #λ°μ΄ν°νλ μμμ 리μ€νΈλ‘ λ°κΎΈκΈ° company_code = self.company_code_table['μ’ λͺ©μ½λ'] values = [j for j in company_code] dict_result = dict(zip(keys, values)) # λμ λ리 ννλ‘ νμ¬μ΄λ¦κ³Ό μ’ λͺ©μ½λ λ¬ΆκΈ° pattern = '[a-zA-Zκ°-ν£]+' if bool(re.match(pattern, company)) == True: company_code = dict_result.get(str(company)) return company_code else: company_code = str(company) return company_code def crawl_news(self, company, max_num=5): print(f"{company} μ’ λͺ© λ΄μ€λ₯Ό κ°μ Έμ΅λλ€.") company_code=self.convert_company_to_code(company) if company_code: result=self.crawler(company_code, max_num) for i in range(len(result)): result[i].append(company) return result else: print(f"{company} μ’ λͺ©μ΄ μ‘΄μ¬νμ§ μμ΅λλ€.") return []
Β
κΈ°μ¬ ν¬λ‘€λ§ λΆλΆμμ crawl_news λ©μλλ₯Ό ν΅ν΄ ν¬λ‘€λ§μ μμ°¨μ μΌλ‘ μ§ννλ©΄ λλλ°μ, μ΄λ crawler λ©μλλ κΈ°μ
μ½λμ κ°μ Έμ¬ κΈ°μ¬μ μλ₯Ό μ
λ ₯μΌλ‘ λ°μ λ΄μ€λ₯Ό κ°μ Έμ¨λ€κ³ ν΄μ. μ΄λ κ°μ Έμ€λ κΈ°μ¬μ μ 보λ‘λ μ’
λͺ©μ ν΄λΉνλ κΈ°μ¬ μ λͺ©, κ΄λ ¨ κΈ°μ¬, μ 보 μ 곡 주체μ λ μ§μΈλ°μ, κ°μ Έμ€λ μ£Όμλ₯Ό ν΅ν΄ μ§μ κΈ°μ¬ λ΄μ©μ κΈμ΄μ€λ©΄ ν¬λ‘€λ§μ΄ κ°λ₯ν©λλ€. λν convert_company_to_code λ©μλλ κΈ°μ
λͺ
μ μ
λ ₯μΌλ‘ λ°μ μ’
λͺ© μ½λλ₯Ό μΆλ ₯νλ€κ³ ν΄μ. μ’
λͺ© μ½λλ κΈ°μ
λͺ
μ λ°λΌ λͺ¨μ¬ μλ κΈ°μ¬λ€μ λ§ν¬λ‘ μ΄λν μ μλλ‘ λμμ£Όμ£ . μ΄λ κ² Pororoμ KoBART Summary κΈ°λ₯μ μ΄μ©νλ©΄ μ£Όμ λ΄μ€λ₯Ό κ°λ¨νκ² μμ½ν μ μμ΄μ. νΉν, μ§§μ λ¬Έμ₯μΌλ‘ μΆμ½ν΄μ£ΌκΈ° λλ¬Έμ νμκ° κΈν μ¬λλ€μ΄ μ΄μ©νκΈ° μ λ§ μ’μ κ² κ°λ€μ. νμκ° κΈνμ§λ μμ§λ§, μ§§κ³ κ°κ²°ν λλΆμ λ₯λ€λ κΈ°μ¬ μ½λλ° μκ°μ΄ λ³λ‘ λ€μ§ μμ μ¬μ λ‘κ² μμ
μ€λΉλ₯Ό ν μ μμ κ² κ°λ€μ.
Β
μ€μ μκ° λμμ μμλ NLPμ λν΄μ μ΄ν΄λ³΄μλλ° μ΄λ μ
¨λμ? λ·λΆλΆμ ν΄λΉνλ λ΄μ©μ μμ§ μ€μνμμ κ±°μ μ°μ΄μ§ μκ³ μμ§λ§, νμ λ΄μ© μ 리λ μ£Όμ λ³λ μ¬ν μ 리 λ±μλ λλ¦ νμ©λκ³ μλ€λ μ΄μΌκΈ°λ₯Ό λ£κ³ κ°μ Έμ λ΄€μ΄μ. μ¬μ€ λ§μ μ¬λλ€μ΄ μμ½λ κΈμ μ½λ κ²μ μ’μνλ λ§νΌ ν΄λΉ κΈ°μ λ λ¨Έμ§ μμ κ³§ μ°μ΄κ² λ κ² κ°μ£ ? μ΅κ·Όμλ λ΄μ€ μμ½ μ΄μΈμλ λ€μ΄λ²μ 보μ΄μ€ λ΄μ€μ²λΌ μ£Όμ λ΄μ€ κΈ°μ¬ μμ½λ³Έμ μμ±μΌλ‘ λ€λ € μ£Όλ μλΉμ€λ μκ³ , νμν λ
Όλ¬Έλ§ ν¨μ¨μ μΌλ‘ λ³Ό μ μλλ‘ νλ λ
Όλ¬Έ μμ½ AIμΈ Semantic Scholar λ±λ κ³μ ν΄μ λμ€κ³ μλ€κ³ νλ κ²μ 보면 μμ½ κΈ°μ μ΄ μΌλ§λ λΉ λ₯΄κ² λ°μ νκ³ μλμ§ μ μ μκ² λ€μ. λ€μ μκ°μλ μ€ν μΌκ³Ό μκ° λμμ μ°Ύμλ³Ό μ μλ μν μ NLP μ΄μΌκΈ°λ₯Ό λ§μ λ€κ³ λμμ€λλ‘ ν κ²μ.
Β
Β
μ°Έκ³ λ¬Έν
- κ³½ν¨μ. (2018, 03, 29). μ¬λμ λ§μ κΈ°κ³μΈμ΄λ‘, κΈ°κ³μΈμ΄λ₯Ό μ¬λμκ². https://www.bloter.net/newsView/blt201803290006
- κΉνμ. (2017).μΈκ³΅μ§λ₯ μμ±μΈμ΄ λΉμ μμ€ν μ μμ°μΈμ΄μ²λ¦¬ κΈ°μ λ€.μ 보과ννμ§,35(8),9-18.
- μ΄κ²½λ. (2017). μμ± μΈμ΄ μ²λ¦¬ κΈ°μ , μ΄λκΉμ§ μλ. μκ΅μ΄μν, 27(4)
- LG CNS λ―Έλμ μ¬μ λ΄λΉ. (2018, 11, 12). μ±λ΄μ λμ΄ μμ±λ΄μΌλ‘. https://blog.lgcns.com/1863
- Kincaid, J. (2018, Jul 13). A brief History of ASR: Automatic Speech Recognition. descript. https://medium.com/descript/a-brief-history-of-asr-automatic-speech-recognition-b8f338d4c0e5
- Mattias Lee, [NLP] μ£Όμ λ΄μ€ μμ½ λ©μΌλ§ νλ‘κ·Έλ¨, 2021.03.04.