Tutorial: Mengekstrak frasa kunci dari teks yang disimpan di Power BI
Microsoft Power BI Desktop adalah aplikasi gratis yang memungkinkan Anda untuk tersambung dengan, mentransformasi, dan memvisualisasikan data Anda. Ekstraksi frasa kunci, salah satu fitur Bahasa Azure AI, menyediakan pemrosesan bahasa alami. Pada teks mentah yang tidak terstruktur, layanan ini dapat mengekstrak frasa yang paling penting, menganalisis sentimen, dan mengidentifikasi entitas terkenal seperti merek. Bersama-sama, alat-alat ini dapat membantu Anda dengan cepat melihat apa yang dibicarakan oleh pelanggan Anda dan bagaimana perasaan mereka tentang hal itu.
Dalam tutorial ini, Anda akan mempelajari cara:
- Menggunakan Power BI Desktop untuk mengimpor dan mentransformasi data
- Membuat fungsi kustom di Power BI Desktop
- Mengintegrasikan Power BI Desktop dengan fitur Ekstraksi Frasa Kunci bahasa Azure AI
- Menggunakan Ekstraksi Frase Kunci untuk mendapatkan frasa yang paling penting dari umpan balik pelanggan
- Membuat {i>cloud
Prasyarat
- Microsoft Power BI Desktop. Unduh tanpa biaya.
- Akun Microsoft Azure. Buat akun gratis atau masuk.
- Sumber daya bahasa pemrogram. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
- Kunci sumber daya bahasa pemrogram yang dibuat untuk Anda selama pendaftaran.
- Komentar pelanggan. Anda dapat menggunakan data contoh kami atau data Anda sendiri. Tutorial ini mengasumsikan bahwa Anda menggunakan data contoh kami.
Memuat data pelanggan
Untuk memulai, buka Power BI Desktop dan muat file nilai yang dipisahkan koma (CSV) yang Anda unduh sebagai bagian dari prasyarat. {i>File
Catatan
Power BI bisa menggunakan data dari berbagai sumber-berbasis web, seperti database{i> dokumentasi Power Query untuk informasi selengkapnya.
Di jendela utama Power BI Desktop, klik pita Beranda. Di grup data eksternal pita, buka menu drop-down Dapatkan Data dan pilih Teks/CSV.
Dialog Buka muncul. Navigasikan ke folder Unduhan Anda, atau ke folder tempat Anda mengunduh file CSV. Pilih nama file, lalu tombol Buka . Dialog impor CSV muncul.
Dialog impor CSV memungkinkan Anda memverifikasi bahwa Power BI Desktop telah mendeteksi tataan karakter, pemisah, baris {i>headerMuat.
Untuk melihat data yang dimuat, klik tombol Tampilkan Data di tepi kiri ruang kerja Power BI. Sebuah tabel akan terbuka yang berisi data, seperti di Microsoft Excel.
Menyiapkan data
Anda mungkin perlu mengubah data Anda dalam Power BI Desktop sebelum siap untuk diproses oleh Key Phrase Extraction.
Data sampel berisi kolom subject
dan kolom comment
. Dengan fungsi Gabungkan Kolom di Power BI Desktop, Anda bisa mengekstrak frasa kunci dari data di kedua kolom ini, bukan hanya kolom comment
.
Di Power BI Desktop, pilih pita Beranda. Di grup Data eksternal, pilih Edit Kueri.
Pilih FabrikamComments
di daftar Kueri di sisi kiri jendela jika belum dipilih.
Sekarang pilih kolom subject
dan comment
dalam tabel. Anda mungkin perlu menggulir secara horizontal untuk melihat kolom ini. Pertama klik subject
header kolom, lalu tahan tombol Kontrol dan klik comment
header kolom.
Pilih pita Transformasi. Dalam grup Kolom Teks dari pita, pilih Gabungkan Kolom. Dialog Gabungkan Kolom muncul.
Dalam dialog Gabungkan Kolom, pilih Tab
sebagai pemisah, lalu pilih OK.
Anda mungkin juga mempertimbangkan untuk memfilter pesan kosong menggunakan filter Hapus Kosong, atau menghapus karakter yang tidak dapat dicetak menggunakan transformasi Bersihkan. Jika data Anda berisi kolom seperti spamscore
kolom dalam file sampel, Anda dapat melewati komentar "spam" menggunakan Filter Angka.
Memahami API
Ekstraksi Frase Kunci dapat memproses hingga seribu dokumen teks per permintaan HTTP. Power BI lebih memilih untuk menangani baris satu per satu, jadi dalam tutorial ini panggilan Anda ke API hanya akan menyertakan satu dokumen masing-masing. API Frasa Kunci memerlukan bidang berikut untuk setiap dokumen yang sedang diproses.
Bidang | Deskripsi |
---|---|
id |
Pengidentifikasi unik untuk dokumen ini dalam permintaan. Respons juga menyertakan bidang ini. Dengan demikian, jika Anda memproses lebih dari satu dokumen, Anda dapat dengan mudah mengaitkan frasa kunci yang diekstrak dengan dokumen asalnya. Dalam tutorial ini, karena Anda hanya memproses satu dokumen per permintaan, Anda dapat mengkodekan id nilai untuk menjadi sama untuk setiap permintaan. |
text |
Teks yang akan diproses. Nilai bidang ini berasal dari kolom Merged yang Anda buat di bagian sebelumnya, yang berisi baris subjek gabungan dan teks komentar. API Frasa Kunci mengharuskan data ini berisi tidak lebih dari sekitar 5.120 karakter. |
language |
Kode untuk bahasa alami dokumen sudah ditulis. Semua pesan dalam data sampel dalam bahasa Inggris, sehingga Anda dapat mengkodekan nilai en untuk bidang ini secara permanen. |
Membuat fungsi kustom
Sekarang Anda siap untuk membuat fungsi kustom yang akan mengintegrasikan Power BI dan Ekstraksi Frase Kunci. Fungsi ini menerima teks untuk diproses sebagai parameter. Proses ini mengonversi data ke dan dari format JSON yang diperlukan dan membuat permintaan HTTP ke API Frasa Kunci. Fungsi ini kemudian menguraikan respons dari API dan mengembalikan untai (karakter) yang berisi daftar frasa kunci yang dihasilkan yang dipisahkan koma.
Catatan
Fungsi kustom Power BI Desktop ditulis dalam Bahasa rumus Power Query M,atau singkatnya "M". M adalah bahasa pemrograman fungsional berdasarkan F#. Anda tidak perlu menjadi {i>programmer
Di Power BI Desktop, pastikan Anda masih berada di jendela Editor Kueri. Jika tidak, pilih pita Beranda, dan di grup Data eksternal, pilih Edit Kueri.
Sekarang, di pita Beranda , di grup Kueri Baru, buka menu drop-down Sumber Baru dan pilih Kueri Kosong.
Kueri baru, awalnya bernama Query1
, muncul di daftar Kueri. Klik ganda entri ini dan beri nama KeyPhrases
.
Sekarang, di pita Beranda, di grup Kueri, pilih Editor Lanjutan untuk membuka jendela Editor Lanjutan. Hapus kode yang sudah ada di jendela tersebut dan tempelkan kode berikut.
Catatan
Mengganti titik akhir contoh di bawah ini (berisi <your-custom-subdomain>
) dengan titik akhir yang dihasilkan untuk sumber daya Analitik Teks Anda. Anda dapat menemukan titik akhir ini dengan masuk ke portal Microsoft Azure, mengarahkan ke sumber daya Anda dan memilihKunci dan titik akhir.
// Returns key phrases from the text in a comma-separated list
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics" & "/v3.0/keyPhrases",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { language: ""en"", id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
keyphrases = Text.Lower(Text.Combine(jsonresp[documents]{0}[keyPhrases], ", "))
in keyphrases
Mengganti YOUR_API_KEY_HERE
dengan kunci sumber daya Bahasa pemrogram Anda. Anda dapat menemukan titik akhir ini dengan masuk ke portal Microsoft Azure, mengarahkan ke sumber daya bahasa pemrogram Anda dan memilihKunci dan titik akhir. Pastikan untuk menyertakan tanda kutip sebelum dan sesudah kunci. Kemudian pilih Selesai.
Gunakan nama fungsi kustom
Sekarang Anda dapat menggunakan fungsi kustom untuk mengekstrak frasa kunci dari setiap komentar pelanggan dan menyimpannya di kolom baru dalam tabel.
Di Power BI Desktop, di jendela Editor Kueri, beralih kembali ke kueri FabrikamComments
. Pilih pita Tambahkan Kolom. Di grup Umum, pilih Panggil Fungsi Kustom.
Dialog Panggil Fungsi Kustom muncul. Di Nama kolom baru, masukkan keyphrases
. Di Kueri fungsi, pilih fungsi kustom yang telah Anda buat, KeyPhrases
.
Bidang baru muncul dalam dialog, teks (opsional). Bidang ini menanyakan kolom mana yang ingin kita gunakan untuk menyediakan nilai untuk parameter text
API Frasa Kunci. (Ingatlah bahwa Anda sudah mengkodekan nilai untuk language
parameter dan id
.) Pilih Merged
(kolom yang Anda buat sebelumnya dengan menggabungkan bidang subjek dan pesan) dari menu drop-down.
Terakhir, pilih OK.
Jika semuanya sudah siap, Power BI akan memanggil fungsi kustom Anda sekali untuk setiap baris dalam tabel. Panggilan ini mengirim kueri ke API Frasa Kunci dan menambahkan kolom baru ke tabel untuk menyimpan hasilnya. Tetapi sebelum hal tersebut terjadi, Anda mungkin perlu menentukan pengaturan autentikasi dan privasi.
Autentikasi dan privasi
Setelah Anda menutup dialog Fungsi Kustom Dipanggil, sebuah {i>banner
Pilih Edit Kredensial, pastikan Anonymous
dipilih dalam dialog, lalu pilih Koneksi.
Catatan
Anda memilih Anonymous
karena layanan Analitik Teks mengautentikasi Anda menggunakan kunci akses, sehingga Power BI tidak perlu menyediakan informasi masuk untuk permintaan HTTP itu sendiri.
Jika melihat banner Edit Info Masuk bahkan setelah memilih akses anonim, Anda mungkin lupa menempelkan kunci akses sumber daya Bahasa ke dalam kode di KeyPhrases
fungsi kustom.
Selanjutnya, {i>banner
Pilih Lanjutkan dan pilih Public
untuk setiap sumber data dalam dialog. Kemudian pilih Simpan.
Membuat {i>cloud
Setelah Anda menangani spanduk apa pun yang muncul, pilih Tutup & Terapkan di pita Beranda untuk menutup Editor Kueri.
Power BI Desktop membutuhkan waktu sejenak untuk membuat permintaan HTTP yang diperlukan. Untuk setiap baris dalam tabel, kolom keyphrases
baru berisi frasa kunci yang terdeteksi dalam teks oleh API Frasa Kunci.
Sekarang Anda akan menggunakan kolom ini untuk menghasilkan {i>cloud Laporkan di jendela utama Power BI Desktop, di sebelah kiri ruang kerja.
Catatan
Mengapa menggunakan frasa kunci yang diekstrak untuk menghasilkan {i>cloud penting dari komentar pelanggan kita, bukan hanya kata-kata yang paling umum. Selain itu, ukuran kata di awan yang dihasilkan tidak condong oleh frekuensi penggunaan kata dalam jumlah komentar yang relatif kecil.
Jika Anda belum menginstal visual kustom {i>Cloud ...) dan pilih Impor Dari Pasar. Jika kata "cloud" bukan di antara alat visualisasi yang ditampilkan dalam daftar, Anda bisa mencari "cloud" dan mengklik tombol Tambahkan di samping visual Word Cloud. Power BI menginstal visual {i>Cloud
Pertama, klik ikon {i>Cloud
Laporan baru muncul di ruang kerja. Seret bidang keyphrases
dari panel Bidang ke bidang Kategori di panel Visualisasi. Kata {i>cloud
Sekarang beralih ke halaman Format panel Visualisasi. Dalam kategori Hentikan Kata, aktifkan Kata Berhenti Default untuk menghilangkan kata-kata singkat dan umum seperti "dari" dari cloud. Namun, karena kita memvisualisasikan frasa kunci, mereka mungkin tidak berisi kata-kata yang dihentikan.
Turun sedikit lebih jauh di panel ini, matikan Putar Teks dan Judul.
Pilih alat Mode Fokus dalam laporan untuk melihat lebih baik kata cloud kami. Alat ini memperluas {i>cloud
Menggunakan fitur lain
Bahasa Azure AI juga menyediakan analisis sentimen dan deteksi bahasa. Deteksi bahasa khususnya berguna jika umpan balik pelanggan Anda tidak semuanya tertulis dalam bahasa Inggris.
Kedua API lainnya ini mirip dengan API Frasa Kunci. Itu berarti Anda dapat mengintegrasikannya dengan Power BI Desktop menggunakan fungsi kustom yang hampir identik dengan yang telah Anda buat dalam tutorial ini. Cukup buat kueri kosong dan tempelkan kode yang sesuai di bawah ini ke Editor Lanjutan, seperti yang Anda lakukan sebelumnya. (Jangan lupa kunci akses Anda!) Lalu, seperti sebelumnya, gunakan fungsi untuk menambahkan kolom baru ke tabel.
Fungsi Analisis Sentimen di bawah ini mengembalikan label yang menunjukkan seberapa positif sentimen yang dinyatakan dalam teks.
// Returns the sentiment label of the text, for example, positive, negative or mixed.
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/sentiment",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { language: ""en"", id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
sentiment = jsonresp[documents]{0}[sentiment]
in sentiment
Berikut adalah dua versi fungsi Deteksi Bahasa. Yang pertama mengembalikan kode bahasa ISO (misalnya, en
untuk bahasa Inggris), sedangkan yang kedua mengembalikan nama yang "ramah" (misalnya, English
). Anda mungkin melihat bahwa hanya baris terakhir isi yang berbeda di antara kedua versi.
// Returns the two-letter language code (for example, 'en' for English) of the text
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/languages",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
language = jsonresp [documents]{0}[detectedLanguage] [name] in language
// Returns the name (for example, 'English') of the language in which the text is written
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/languages",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
language =jsonresp [documents]{0}[detectedLanguage] [name] in language
Terakhir, berikut ini adalah varian fungsi Frasa Kunci yang sudah disajikan yang mengembalikan frasa sebagai objek daftar, bukan sebagai untai (karakter) tunggal frasa yang dipisahkan koma.
Catatan
Mengembalikan satu untai (karakter) menyederhanakan contoh {i>cloud
// Returns key phrases from the text as a list object
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/keyPhrases",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { language: ""en"", id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
keyphrases = jsonresp[documents]{0}[keyPhrases]
in keyphrases
Langkah berikutnya
Pelajari selengkapnya tentang Bahasa Azure AI, bahasa rumus Power Query M, atau Power BI.