Bir necha kun oldin men Teylor Svift qo'shiqlarining tahlili haqida "ushbu post" ga duch keldim va bu dam olish kunlarida matn qazib olishni mashq qilish uchun o'zim sinab ko'rish qiziqarli loyiha bo'ladi deb o'yladim.

“BTS” kimligini bilmaydiganlar uchun, ular 2017-yilda Billboard Music Awards sovrinini qo‘lga kiritgan birinchi Kpop guruhi bo‘lganidan beri G‘arbda o‘z kuchini yo‘qotgan koreys guruhidir. ARMY (ularning muxlislari shunday deb ataladi), men debyutdan beri ularning chiqishlarini kuzatib bordim va menga ularning ko'proq tijoratlashtirilgan qo'shiqlarining qiziqarli, ko'ngilochar jihatlari va ular ko'rib chiqqan ijtimoiy muammolar o'rtasidagi muvozanat yoqdi. yoshga oid kurashlar, ruhiy salomatlik, ayollarning imkoniyatlarini kengaytirish va hokazo. Ularning yaxshi yozilgan qo'shiqlari yoshlar bilan rezonanslashadi va menimcha, qisman ularning ulkan xalqaro muvaffaqiyatlariga hissa qo'shadi. Agar qilmagan bo'lsangiz, ularning so'nggi "Idol (ft. Nicki Minaj!)" singlini ko'ring, lekin men ulardan eng sevimlisi "Whalien 52" bo'lib, u Yerdagi eng yolg'iz kit haqida gapiradi.

Endi oddiy muxlis sifatida men ularning barcha qo'shiqlarining matnlarini o'qimayman va tahlil qila olmayman, chunki ular juda katta diskografiyaga ega (2013–2018). Ammo biz "tabiiy tilni qayta ishlash" (NLP) - tabiiy til ma'lumotlarini tahlil qiluvchi sun'iy intellekt (AI) sohasi - qo'shiq matnlari to'plamidan ba'zi ma'lumotlarni olish uchun foydalanishimiz mumkin. Keling, olovni boshlaymiz!

Ma'lumotlar janjali

Yaxshilik

Men foydalanadigan ko'plab texnikalar bilan ishlaganim yo'q, lekin hech qachon qo'rqmang, chunki hamma narsa uchun ochiq kodli kutubxonalar mavjud. Men ularning qo'shiqlarini olish uchun Internetni qirib tashlashim kerak deb o'yladim, lekin xayriyatki, kimdir buning uchun paket yozgan edi, shuning uchun men ularning barcha qo'shiqlarini "Genius.com" da olish uchun "ushbu qo'llanma" ga ergashdim.

Yomon

Ularning asl matnlari duh, koreys tilida. Men faqat Unicode bilan qanday ishlashni o'rgandim. Bundan tashqari, koreys tili bilan ishlash juda qiyin, chunki fe'l shakllarining murakkabligi (men buni hali o'zlashtirishim kerak emas va men buni hech qachon o'ylamayman). Koreyscha lirika odatda rasmiy nutqdan, aytaylik, adabiyotda juda boshqacha yoziladi; jargonlar va grammatikadan "noto'g'ri" foydalanish mavjud. Va keyin so'zlarni segmentatsiyalashda ham muammo bor. Shuning uchun, ingliz tilidagi tarjimalar bilan ishlash, matnning to'g'ri g'oyasini olish osonroq bo'ladi deb o'yladim. G'arbda BTSning ommaviyligi tufayli Genius-ning ingliz tilidagi tarjimalarini olish unchalik qiyin emas, ularning aksariyati juda yaxshi (kontekstda katta noto'g'ri tarjimalar borligini tekshirish uchun bir nechta qo'shiqlarni ko'rib chiqdim). Shunday qilib, bizning qo'shiqlar to'plamimiz yoki korpusimiz bor.

Xunuk

Ma'lumotlarni tozalash. Maʼlumotlarni tozalash uchunkoʻpvaqt ketishini bilmasdim. Takrorlangan qo'shiqlarni (remikslarni) o'chirib tashlaganimdan so'ng, menda jami 95 ta qo'shiq qoldi, bu to'g'ridek tuyuldi. Biroq, eng qiyin qismi qaysi so'zlarni kiritish kerakligini aniqlash edi, chunki ingliz tilida matnning umumiy ma'nosiga hissa qo'shmaydigan turli xil so'zlar mavjud, masalan, "men", "siz" , "kerak". Bular stopwords deb nomlanadi, ular korpusdan chiqarilishi kerak. Nihoyat, toza korpusga ega bo‘lgunimcha, men barchavoyvahalarni ko‘rib chiqishga ko‘p vaqt sarfladim.

Vizualizatsiya

Avval bitta qo'shiqni ko'rib chiqaylik. Quyida "Best of Me" qo'shig'idan yaratilgan so'z buluti mavjud. Bu "oldim" va "eng yaxshi" so'zlari eng tez-tez uchraydigan so'zlar ekanligi mantiqan to'g'ri keladi, chunki ular qo'shiqning ko'p qismida "siz mendan eng yaxshisini oldingiz" iborasini takrorlaydi.

Endi qolgan 94 ta qo‘shiq uchun ham xuddi shunday qilaylik... Menimcha, yo‘q. Biz barcha qo'shiqlardagi eng mashhur so'zlarni ko'rib chiqishimiz mumkin. Mana natija.

Xo'sh, ularning qo'shiqlari estrada qo'shiqlarining umumiy mavzulari bo'lgan sevgi, istak, vaqt, rep, orzular haqida gapiradiganga o'xshaydi. Lekin bu BTS musiqasidagi barcha mavzularning haqiqiy ifodasimi? Keling, chuqurroq o'rganaylik.

So'zlarni joylashtirish

Matnni qazib olishda juda mashhur usullardan biri so'zlarni joylashtirish uchun "word2vec" dan foydalanishdir. Ushbu model asosan katta matn korpusini olish va har bir so'zni ko'p o'lchovli makonga joylashtirishdir. Taxminan 3000 ta noyob so'zdan iborat bo'lgan atigi 95 ta qo'shiq bilan men atigi 50 o'lchamdan foydalandim. Buni amalga oshirish orqali biz ma'lum so'zlarning xaritalangan bo'shliqdagi masofalariga qarab, ularning o'xshashligini ko'rishimiz mumkin. Ammo biz 50 o'lchovli fazoda qanday ko'rishimiz mumkin? Biz buni "t-SNE" yordamida tasavvur qilishimiz mumkin, bu o'lchovni kamaytirish texnikasi bo'lib, 2-D formatida yuqori o'lchamli ma'lumotlarni vizualizatsiya qilish uchun ishlatilishi mumkin.

Bunga qarab, biz so'zlarning bir-biri bilan qanday bog'liqligini tushunishimiz mumkin. Ular qanchalik to'plangan bo'lsa, kontekstda shunchalik o'xshash. Keling, kattalashtirib, ba'zi so'zlarni ko'rib chiqaylik.

O'rta klasterda biz "ahmoq", "tashvish", "zulmat" kabi ichki kurashlarga bog'liq bo'lgan so'zlarni ko'rishimiz mumkin, shuningdek, o'z-o'ziga ishonch: "iltimos", "biling", "yaxshi". BTS-ning ko'plab voyaga yetgan qo'shiqlari bor, ularda ular o'zlarining ishonchsizliklari va ulg'ayish paytidagi kurashlarini ifodalaydilar, ammo orqasida ular yubormoqchi bo'lgan ijobiy xabar yotadi, yaxshi, biz hammamiz yaxshi bo'lamiz.

Xo'sh, bu klaster ichida "partiya" ham bor, lekin ba'zida siz o'z muammolaringizni hal qila olasizmi??!?

Mavzuni modellashtirish

Endi men ularning matnidagi so'zlar qanday bog'liqligini bilganimdan so'ng, men ularning barcha qo'shiqlarini alohida mavzularga to'plashimiz mumkinligini bilmoqchiman. BTS qo'shiqlari bilan biz ko'pincha birga paydo bo'ladigan va ularning musiqiy karerasida takrorlanadigan turli xil "mavzular" ni tashkil etuvchi so'zlar to'plamini topishimiz mumkin.

Xususiyatlarni chiqarish

Avval modellashtirish uchun xususiyatlarni ajratib olishimiz kerak. Umumiy xususiyatni ajratib olish modeli bu "so'zlar sumkasi" bo'lib, u asosan har bir so'zni alohida "sumkaga" qo'yish va matndagi uning chastotasiga qarashdir. Biz so'zlarning tartibi yoki jumlalarning tuzilishi haqida ma'lumotni rad etamiz. Ushbu usulni tushunish va amalga oshirish oson, lekin biz kontekst va ma'noni savdo sifatida yo'qotamiz.

Ammo qo'shiq matnida qo'shiqni yanada jozibali qilish uchun ba'zi so'zlar boshqalarga qaraganda tez-tez takrorlanadi. Korpusda tez-tez uchraydigan so'zlarning so'z sonini jazolaydigan usul mavjud, chunki bu so'zlar hujjatlarning mavzulari haqida qo'shimcha ma'lumot bermasligi mumkin. Bu "tf-idf" deb ataladi va biz undan xususiyatni olish uchun foydalanamiz.

Modellar

Mavzuni modellashtirishda tez-tez qo'llaniladigan ikkita algoritm mavjud: "salbiy bo'lmagan matritsalarni faktorizatsiya" (NMF) va "Yashirin Dirichlet ajratish" (LDA). Ikkalasi ham matn korpusini oladi va turli mavzularni tashkil etuvchi so'zlar ro'yxatini, shuningdek, ma'lum bir mavzuga tegishli hujjatlarni qaytaradi. Men sizga bu ikki usul bir-biridan qanday farq qilishi va natijalarga to'g'ridan-to'g'ri kirishi haqida "matematik tafsilotlar" ni aytib beraman.

Ko'rib turganingizdek, NMF tomonidan yaratilgan mavzular LDA tomonidan yaratilgan mavzularga qaraganda ancha yaxshi edi. Bu mantiqiy, chunki biz juda kichik korpus bilan ishlaymiz va NMF odatda bunday vaziyatda yaxshiroq ishlaydi. Men biroz nozik sozlashni amalga oshirdim va 9 ta umumiy mavzuni (yuqoridagi natija bilan bir xil tartibda) hal qilishga qaror qildim: “Yoshlik”, “O'yin-kulgi”, “BTS”, “Sevgi”, “Tanishuv”, “Yo'qotish”, “ Ijtimoiy masalalar”, “Orzular”, “Yolg‘izlik”.

Ushbu mavzulardan men BTS musiqasi yillar davomida qanday o'zgarganini ko'rish uchun albomlar bo'yicha yig'ilgan (chiqarish sanasi bo'yicha) mavzu bo'yicha qo'shiqlar sonini tuzdim.

Ularning debyut albomidan boshlab, biz ko'rishimiz mumkinki, dastlabki 2 albomda o'zlari haqida juda ko'p qo'shiqlar bo'lgan (nomi kamaygan), bu mutlaqo mantiqiy, chunki ular o'z nomlarini ommaga etkazishlari kerak edi. Buning uchun qo'shiq matnida ularning ismlarini qoldirishdan ko'ra yaxshiroq yo'l nima? Taxminan 2017 yilda ular BBMA mukofotidan so'ng to'satdankattaga ega bo'lishdi, shuning uchun yangi xalqaro muxlislarni ham ularning ismlarini eslab qolishlarini talab qilish kerak, bu esa eng so'nggi nashrlar tomon cho'qqisini tushuntiradi.

Ularning "Tanishuv" mavzusi "Skool Luv Affair" va "Dark & ​​Wild" davrlarida eng yuqori cho'qqisiga chiqadi, bu ham ma'noga ega, chunki ular o'sha paytda balog'atga etishgan va "Boy in Luv" kabi mashhur qo'shiqlari bilan tanishish/yoqish haqida ko'p kuylashgan. , "Miss Right", "Gormon urushi", faqat bir nechtasini nomlash uchun.

"Orzular", "Yoshlik" va "Yo'qotish" mavzulari yil davomida keng tarqalgan mavzu bo'lib tuyuladi. Yuqorida aytib o'tganimdek, BTS o'z musiqalarini yosh avlod uchun yozadi, shuning uchun bu mavzular ularning ko'pchiligini tashvishga soladi. "Ijtimoiy masalalar" ham o'zining "Qanotlar" davrida g'ayrioddiy cho'qqiga ega bo'lib, bu mavzuni tashkil etgan so'zlarning aksariyati "" dau (Kumush qoshiq/Baepsae)" dan olingan. Biroq, "Qanotlar" dagi ushbu mavzu bilan bog'liq qo'shiqlar ham "Men noto'g'rimanmi" dan "21-asr qizlari"gacha bo'lgan ijtimoiy muammolarni hal qilishning vakili ekanligini aniqladim.

"Yolg'izlik" mavzusi "O'zingni sev" trilogiyasida eng ko'p tarqalgan ko'rinadi, lekin "Sevgi". Ular sevgi haqidagi bu trilogiyani hamma narsani bir-biriga bog'laydigan albom bilan yakunladilar, hayotning, sevgining qorong'u va qayg'uli tomonlari bor, lekin barcha kurashlarga yakuniy javob, eng muhimi, birinchi navbatda o'zingizni sevishdir. .

"Qish o'tsa, bahor keladi" - Javob: O'zimni sev

Yana nima?

Har bir qo'shiq yoki albomning kayfiyatini aniqlash uchun his-tuyg'ularni tahlil qilish kabi qo'shiq matni bilan shug'ullanishim mumkin bo'lgan yana ko'p narsalar bor. Shundan kelib chiqib, kayfiyatimga mos qo‘shiqni taklif qilish uchun tavsiyalar tizimini ham yaratishim mumkin. Men original koreyscha qo'shiq matnidan foydalanib mavzuni modellashtirishni amalga oshirishim mumkin (aniqlanishicha, Hangulni qayta ishlash uchun mo'ljallangan KoNLPy kabi ochiq kodli paketlar mavjud). Imkoniyatlar cheksizdir. Umuman olganda, men ko'plab yangi texnikalarni o'rgandim, o'zim yoqtirgan narsam ustida ishladim, juda xursand bo'ldim va juda qiziqarli natijalarga erishdim.

Ushbu loyiha uchun barcha kodlarni bu yerda topishingiz mumkin.