全部产品
Search
文档中心

MaxCompute:Gunakan node PyODPS untuk memisahkan teks Tionghoa berdasarkan Jieba

更新时间:Jul 02, 2025

Dokumen ini menjelaskan cara menggunakan node PyODPS dari DataWorks untuk memisahkan teks Tionghoa dalam tabel data menggunakan alat pemisahan sumber terbuka Jieba dan menulis hasil segmentasi ke tabel baru. Dokumen ini juga mencakup penggunaan fungsi penutupan untuk segmentasi berbasis kamus kustom.

Prasyarat

Ruang kerja DataWorks telah dibuat dan mesin komputasi MaxCompute telah dikaitkan dengannya. Untuk informasi lebih lanjut tentang pembuatan ruang kerja, lihat Buat Ruang Kerja.

Informasi latar belakang

DataWorks menyediakan node PyODPS yang mendukung pengeditan kode Python serta penggunaan SDK MaxCompute untuk Python. Node PyODPS tersedia dalam versi PyODPS 2 dan PyODPS 3, dengan rekomendasi penggunaan PyODPS 3. Untuk informasi lebih lanjut, lihat Kembangkan Tugas PyODPS 3.

Penting

Kode contoh dalam dokumen ini hanya untuk referensi dan tidak disarankan untuk digunakan di lingkungan produksi.

Persiapan: Unduh paket Jieba sumber terbuka

Unduh paket Jieba sumber terbuka dari GitHub.clone

Praktik 1: Gunakan paket Jieba sumber terbuka untuk memisahkan teks Tionghoa

  1. Buat alur kerja.

    Untuk detail lebih lanjut, lihat Buat Alur Kerja.

  2. Buat sumber daya MaxCompute dan unggah paket jieba-master.zip.

    1. Klik kanan nama alur kerja yang telah dibuat dan pilih Buat Sumber Daya > MaxCompute > Arsip.

    2. Di kotak dialog Buat Sumber Daya, konfigurasikan parameter yang diperlukan dan klik Buat.

      新建资源Tabel berikut menjelaskan beberapa parameter utama.

      Parameter

      Deskripsi

      File

      Klik Unggah dan unggah paket jieba-master.zip yang diunduh sesuai petunjuk.

      Nama

      Nama sumber daya. Nama sumber daya bisa berbeda dari nama file yang Anda unggah tetapi harus mematuhi konvensi tertentu. Anda dapat menentukan nama sumber daya kustom sesuai petunjuk. Dalam praktik ini, parameter ini disetel ke jieba-master.zip.

    3. Klik ikon 提交 di bilah alat atas untuk menyimpan sumber daya.

  3. Buat dua tabel bernama jieba_test dan jieba_result. Tabel jieba_test digunakan untuk menyimpan data uji, sedangkan tabel jieba_result digunakan untuk menyimpan hasil segmentasi.

    Untuk membuat tabel, klik kanan nama alur kerja yang telah dibuat dan pilih Buat Tabel > MaxCompute > Tabel. Di kotak dialog Buat Tabel, konfigurasikan parameter sesuai petunjuk dan klik Buat. Kemudian, jalankan pernyataan DDL untuk mengonfigurasi bidang dalam tabel. Tabel berikut menjelaskan pernyataan DDL yang digunakan untuk mengonfigurasi bidang dalam kedua tabel.

    Tabel

    Pernyataan DDL

    Deskripsi

    jieba_test

    CREATE TABLE jieba_test (
        `chinese` string,
        `content` string
    );

    Menyimpan data uji.

    jieba_result

    CREATE TABLE jieba_result (
        `chinese` string
    ) ;

    Menyimpan hasil uji.

    Setelah tabel dibuat, simpan tabel ke lingkungan pengembangan.

  4. Unduh data uji dan impor data tersebut ke tabel jieba_test.

    1. Unduh file jieba_test.csv yang berisi data uji ke mesin lokal Anda.

    2. Klik ikon 导入 di panel Alur Kerja Terjadwal halaman DataStudio.

    3. Di kotak dialog Wizard Impor Data, masukkan nama tabel jieba_test sebagai tujuan impor, pilih tabel, dan klik Berikutnya.

    4. Klik Telusuri, unggah file jieba_test.csv dari mesin lokal Anda, dan klik Berikutnya.

    5. Pilih Berdasarkan Nama dan klik Impor Data.

  5. Buat node PyODPS 3.

    1. Klik kanan nama alur kerja yang telah dibuat dan pilih Buat Node > MaxCompute > PyODPS 3.

    2. Di kotak dialog Buat Node, atur parameter Nama ke nilai yang sesuai, seperti word_split, dan klik Konfirmasi.

  6. Gunakan paket Jieba sumber terbuka untuk menjalankan kode segmentasi.

    Jalankan kode contoh berikut di node PyODPS 3 untuk memisahkan data uji dalam tabel jieba_test dan mengembalikan 10 baris pertama hasil segmentasi:

    def test(input_var):
        import jieba
        result = jieba.cut(input_var, cut_all=False)
        return "/ ".join(result)
    
    # odps.stage.mapper.split.size dapat digunakan untuk meningkatkan paralelisme eksekusi.
    hints = {
        'odps.isolation.session.enable': True,
        'odps.stage.mapper.split.size': 64,
    }
    libraries =['jieba-master.zip']  # Referensikan paket jieba-master.zip.
    src_df = o.get_table('jieba_test').to_df()  # Referensikan data dalam tabel jieba_test.
    result_df = src_df.chinese.map(test).persist('jieba_result', hints=hints, libraries=libraries)
    print(result_df.head(10))  # Tampilkan 10 baris pertama data hasil segmentasi. Anda dapat melihat lebih banyak data di tabel jieba_result.
    Catatan

    Parameter odps.stage.mapper.split.size dapat digunakan untuk meningkatkan paralelisme eksekusi. Untuk informasi lebih lanjut, lihat Parameter Bendera.

  7. Lihat hasilnya.

    • Lihat hasil eksekusi program segmentasi Jieba di tab Log Runtime di bagian bawah halaman.

    • Anda juga dapat mengklik Kueri Ad Hoc di panel navigasi kiri halaman DataStudio dan buat node kueri ad hoc untuk melihat data dalam tabel jieba_result.

      select * from jieba_result;

Praktik 2: Gunakan kamus kustom untuk memisahkan teks Tionghoa

Jika kamus default Jieba tidak memenuhi kebutuhan Anda, Anda dapat menggunakan kamus kustom. Bagian ini memberikan contoh penggunaan kamus kustom untuk segmentasi teks Tionghoa.

  1. Buat sumber daya MaxCompute.

    Anda dapat memanggil fungsi yang ditentukan pengguna (UDF) PyODPS untuk membaca sumber daya yang diunggah ke MaxCompute. Sumber daya tersebut dapat berupa tabel atau file. Dalam hal ini, Anda harus menulis UDF sebagai fungsi penutupan atau fungsi kelas yang dapat dipanggil. Jika Anda perlu merujuk UDF kompleks, Anda dapat membuat fungsi MaxCompute di DataWorks. Untuk informasi lebih lanjut, lihat Buat dan Gunakan UDF MaxCompute.

    Dalam bagian ini, fungsi penutupan dipanggil untuk merujuk file kamus kustom key_words.txt yang diunggah ke MaxCompute.

    1. Buat fungsi MaxCompute bertipe File.

      Klik kanan nama alur kerja yang telah dibuat dan pilih Buat Sumber Daya > MaxCompute > File. Di kotak dialog Buat Sumber Daya, atur parameter Nama ke key_words.txt dan klik Buat.

    2. Di tab konfigurasi sumber daya key_words.txt, masukkan konten kamus kustom dan simpan serta commit sumber daya tersebut.

      Konten berikut adalah contoh kamus kustom. Sesuaikan konten berdasarkan kebutuhan uji Anda.

      Backup Inkremental
      Keamanan dan Kepatuhan
  2. Gunakan kamus kustom untuk menjalankan kode segmentasi.

    Jalankan kode contoh berikut di node PyODPS 3 untuk memisahkan data uji dalam tabel jieba_test dan mengembalikan 10 baris pertama hasil segmentasi.

    Penting

    Sebelum menjalankan kode contoh berikut, buat tabel bernama jieba_result2 untuk menyimpan hasil segmentasi. Untuk informasi lebih lanjut tentang pembuatan tabel, lihat langkah membuat tabel bernama jieba_result.

    def test(resources):
        import jieba
        fileobj = resources[0]
        jieba.load_userdict(fileobj)
    
        def h(input_var):  # Panggil fungsi bersarang h() untuk memuat kamus dan memisahkan teks.
            result = jieba.cut(input_var, cut_all=False)
            return "/ ".join(result)
    
        return h
    
    # odps.stage.mapper.split.size dapat digunakan untuk meningkatkan paralelisme eksekusi.
    hints = {
        'odps.isolation.session.enable': True,
        'odps.stage.mapper.split.size': 64,
    }
    libraries =['jieba-master.zip']  # Referensikan paket jieba-master.zip.
    src_df = o.get_table('jieba_test').to_df()  # Referensikan data dalam tabel jieba_test.
    
    file_object = o.get_resource('key_words.txt') # Panggil fungsi get_resource() untuk merujuk sumber daya MaxCompute.
    mapped_df = src_df.chinese.map(test, resources=[file_object])  # Panggil fungsi map untuk mentransfer parameter sumber daya.
    result_df = mapped_df.persist('jieba_result2', hints=hints, libraries=libraries)
    print(result_df.head(10))  # Tampilkan 10 baris pertama data hasil segmentasi. Anda dapat melihat lebih banyak data di tabel jieba_result2.
    Catatan

    Parameter odps.stage.mapper.split.size dapat digunakan untuk meningkatkan paralelisme eksekusi. Untuk informasi lebih lanjut, lihat Parameter Bendera.

  3. Lihat hasilnya.

    • Lihat hasil eksekusi di tab Log Runtime di bagian bawah halaman.

    • Anda juga dapat mengklik Kueri Ad Hoc di panel navigasi kiri halaman DataStudio dan buat node kueri ad hoc untuk melihat data dalam tabel jieba_result2.

      select * from jieba_result2;
  4. Bandingkan hasil segmentasi menggunakan kamus kustom dengan hasil segmentasi menggunakan paket Jieba sumber terbuka.

Referensi

Untuk informasi lebih lanjut tentang penggunaan node PyODPS 3 di DataWorks, lihat Gunakan PyODPS di DataWorks.