全部产品
Search
文档中心

DataWorks:Gunakan node PyODPS untuk memisahkan teks Tionghoa berdasarkan Jieba

更新时间:Jul 02, 2025

Dalam skenario analisis teks, pengambilan informasi, penambangan teks, ekstraksi fitur, pembuatan mesin pencari, penerjemahan mesin, atau pelatihan model bahasa, Anda dapat menggunakan node PyODPS di DataWorks untuk memisahkan teks Tiongkok dengan alat pemisahan sumber terbuka Jieba dan menganalisis serta memproses teks. Jika kamus default Jieba tidak memenuhi kebutuhan bisnis Anda, Anda dapat membuat kamus kustom untuk menambahkan entri atau memodifikasi hasil pemisahan.

Informasi latar belakang

DataWorks menyediakan node PyODPS yang memungkinkan Anda mengedit kode Python dan menggunakan MaxCompute SDK untuk Python dalam pengembangan data. Node PyODPS mencakup versi PyODPS 2 dan PyODPS 3. PyODPS 3 menawarkan API yang lebih sederhana dan mudah digunakan serta dapat diinstal melalui pip, sehingga memaksimalkan penggunaan sumber daya dan fitur MaxCompute. Kami merekomendasikan penggunaan node PyODPS 3 untuk pengembangan data. Untuk informasi lebih lanjut, lihat Mengembangkan tugas PyODPS 3.

Penting
  • Node PyODPS 3 hanya mendukung Python 3.X. Node PyODPS 2 mendukung Python 2.X dan Python 3.X. Jika Anda ingin menggunakan Python 2.X, gunakan node PyODPS 2.

  • Operasi dalam topik ini hanya untuk referensi. Kami merekomendasikan agar Anda tidak menggunakannya di lingkungan produksi.

Prasyarat

  1. Sebuah ruang kerja DataWorks telah dibuat. Untuk informasi lebih lanjut, lihat Buat dan kelola ruang kerja.

  2. Sumber data MaxCompute telah ditambahkan dan dikaitkan dengan ruang kerja. Untuk informasi lebih lanjut, lihat Tambahkan sumber data MaxCompute dan asosiasikan sumber data dengan ruang kerja.

Persiapan: Unduh paket Jieba sumber terbuka

Ikuti petunjuk pada gambar berikut untuk mengunduh paket Jieba sumber terbuka dari GitHub.clone

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

  1. Buat alur kerja. Untuk informasi 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 Create Resource > MaxCompute > Archive.

    2. Di kotak dialog Create Resource, konfigurasikan parameter dan klik Create.

      新建资源Tabel berikut menjelaskan beberapa parameter.

      Parameter

      Deskripsi

      File

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

      Name

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

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

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

    Untuk membuat tabel, lakukan operasi berikut: Klik kanan nama alur kerja yang telah dibuat dan pilih Create Table > MaxCompute > Table. Di kotak dialog Buat Tabel, konfigurasikan parameter sesuai petunjuk dan klik Buat. Kemudian, jalankan pernyataan DDL untuk mengonfigurasi bidang dalam tabel. Setelah tabel dibuat, simpan tabel ke lingkungan pengembangan. Untuk informasi lebih lanjut tentang cara membuat tabel, lihat Buat dan kelola tabel MaxCompute.

    Tabel berikut menjelaskan pernyataan DDL yang digunakan untuk mengonfigurasi bidang dalam dua 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.

  4. Unduh data uji dan impor data uji 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 Data Import Wizard, masukkan nama tabel jieba_test tempat Anda ingin mengimpor data, pilih tabel, lalu klik Next.

    4. Unggah file jieba_test.csv dari mesin lokal Anda, konfigurasikan informasi unggahan, pratinjau data, lalu klik Next.

    5. Pilih By Name, lalu klik Import Data.

  5. Buat node PyODPS 3.

    1. Klik kanan nama alur kerja yang telah dibuat, lalu pilih Create Node > MaxCompute > PyODPS 3.

    2. Di kotak dialog Create Node, konfigurasikan parameter Name dan klik Confirm. Dalam contoh ini, node diberi nama word_split.

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

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

    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

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

  7. Lihat hasilnya.

    Anda dapat menggunakan salah satu metode berikut untuk melihat hasil eksekusi program pemisahan Jieba:

    • Metode 1: Lihat hasil eksekusi program pemisahan Jieba di tab Runtime Log di bagian bawah halaman.

    • Metode 2: Klik Ad Hoc Query 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 alat Jieba tidak memenuhi kebutuhan Anda, Anda dapat menggunakan kamus kustom. Bagian ini memberikan contoh cara menggunakan kamus kustom untuk memisahkan teks Tiongkok.

  1. Buat sumber daya MaxCompute.

    Anda dapat menggunakan 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 closure atau fungsi kelas yang dapat dipanggil.

    Catatan

    Anda dapat membuat fungsi MaxCompute di DataWorks untuk merujuk UDF kompleks. Untuk informasi lebih lanjut, lihat Buat dan gunakan fungsi 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 Create Resource > MaxCompute > File. Di kotak dialog Buat Sumber Daya, atur parameter Nama menjadi key_words.txt dan klik Create.

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

      Konten berikut adalah contoh konten kamus kustom. Anda dapat memasukkan konten kamus kustom berdasarkan kebutuhan pengujian Anda.

      Pencadangan Inkremental
      Keamanan Kepatuhan
  2. Gunakan kamus kustom untuk menjalankan kode pemisahan.

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

    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']  # Referensi paket jieba-master.zip.
    src_df = o.get_table('jieba_test').to_df()  # Referensi 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 pemisahan. Anda dapat melihat lebih banyak data di tabel jieba_result2.
    Catatan

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

  3. Lihat hasilnya.

    Anda dapat menggunakan salah satu metode berikut untuk melihat hasil eksekusi kamus kustom:

    • Metode 1: Lihat hasil eksekusi kamus kustom di tab Runtime Log di bagian bawah halaman.

    • Metode 2: Klik Ad Hoc Query di panel navigasi kiri halaman DataStudio dan buat node kueri ad hoc untuk melihat data dalam tabel jieba_result2.

      select * from jieba_result2;