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

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.

The Get Data button

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.

The CSV Import dialog

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.

The initial view of the imported data

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.

The External Data group in Home ribbon

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.

Selecting fields to be merged

Pilih pita Transformasi. Dalam grup Kolom Teks dari pita, pilih Gabungkan Kolom. Dialog Gabungkan Kolom muncul.

Merging fields using the Merge Columns dialog

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.

Invoke Custom Function button

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.

Invoking a custom function

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

credentials 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.

setting authentication to anonymous

Jika melihat banner Edit Info Masuk bahkan setelah memilih akses anonim, Anda mungkin lupa menempelkan kunci akses sumber daya Bahasa ke dalam kode di KeyPhrasesfungsi kustom.

Selanjutnya, {i>banner

privacy banner

Pilih Lanjutkan dan pilih Public untuk setiap sumber data dalam dialog. Kemudian pilih Simpan.

setting data source privacy

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

adding a custom visual

Pertama, klik ikon {i>Cloud

Word Cloud icon in visualizations panel

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.

activating default stop words

Turun sedikit lebih jauh di panel ini, matikan Putar Teks dan Judul.

activate focus mode

Pilih alat Mode Fokus dalam laporan untuk melihat lebih baik kata cloud kami. Alat ini memperluas {i>cloud

A Word 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.