全部产品
Search
文档中心

DataWorks:Gunakan node PyODPS untuk pemisahan teks Mandarin berdasarkan Jieba

更新时间:Feb 10, 2026

Ketika Anda ingin melakukan analisis teks, pengambilan informasi, penambangan teks, ekstraksi fitur, pembuatan search engine, penerjemahan mesin, atau pelatihan model bahasa, Anda dapat menggunakan node PyODPS di DataWorks untuk memisahkan teks Mandarin berdasarkan tool pemisahan open source Jieba dan melakukan analisis serta pemrosesan teks. Apabila kamus default Jieba tidak memenuhi kebutuhan bisnis Anda, Anda dapat membuat kamus kustom untuk menambahkan entri atau memodifikasi hasil pemisahan.

Gambaran umum

DataWorks menyediakan node PyODPS. Anda dapat mengedit kode Python dan menggunakan MaxCompute SDK for Python pada node PyODPS DataWorks untuk pengembangan data. Node PyODPS DataWorks mencakup node PyODPS 2 dan node PyODPS 3. PyODPS 3 menyediakan API yang simple dan mudah digunakan serta dapat diinstal menggunakan pip. Dengan cara ini, Anda dapat lebih baik menggunakan resource dan fitur MaxCompute. Kami merekomendasikan Anda menggunakan node PyODPS 3 untuk pengembangan data. Untuk informasi lebih lanjut, lihat Develop a PyODPS 3 task.

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, Anda hanya dapat memilih node PyODPS 2.

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

Prasyarat

  1. Workspace DataWorks telah dibuat. Untuk informasi lebih lanjut, lihat Create and manage workspaces.

  2. Resource MaxCompute telah ditambahkan dan diaitkan dengan workspace. Untuk informasi lebih lanjut, lihat Add a MaxCompute data source and associate the data source with a workspace.

Persiapan: Unduh paket Jieba open source

Ikuti petunjuk yang ditunjukkan pada gambar berikut untuk mengunduh paket Jieba open source dari GitHub.clone

Praktik 1: Gunakan paket Jieba open source untuk memisahkan teks Mandarin

  1. Buat workflow. Untuk informasi lebih lanjut, lihat Create a workflow.

  2. Buat resource MaxCompute dan unggah paket jieba-master.zip.

    1. Klik kanan workflow yang telah Anda buat dan pilih New Resource > MaxCompute > Archive.

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

      新建资源Tabel berikut menjelaskan parameter utama.

      Parameter

      Deskripsi

      Upload File

      Klik Click to Upload dan pilih file jieba-master.zip yang telah diunduh sesuai petunjuk.

      Name

      Nama resource. Tidak harus sama dengan nama file yang diunggah tetapi harus mengikuti konvensi penamaan. Anda dapat menentukan nama kustom sesuai petunjuk. Dalam contoh ini, nama disetel ke jieba-master.zip.

    3. Klik ikon 提交 di toolbar untuk menyimpan resource baru.

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

    Untuk membuat tabel, lakukan operasi berikut: Klik kanan nama workflow yang dibuat dan pilih Create Table > MaxCompute > Table. Dalam kotak dialog Create Table, konfigurasikan parameter sesuai petunjuk dan klik Create. Kemudian, eksekusi pernyataan DDL untuk mengonfigurasi field dalam tabel. Setelah tabel dibuat, komit tabel ke lingkungan pengembangan. Untuk informasi lebih lanjut tentang cara membuat tabel, lihat Create and manage MaxCompute tables.

    Tabel berikut menjelaskan pernyataan DDL yang digunakan untuk mengonfigurasi field dalam kedua tabel.

    Nama Tabel

    Pernyataan DDL

    Tujuan

    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 Import di panel Scheduled Workflow pada halaman DataStudio.

    3. Dalam 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 dan klik Import Data.

  5. Buat node PyODPS 3.

    1. Klik kanan workflow yang telah Anda buat dan pilih New Node > MaxCompute > PyODPS 3.

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

  6. Gunakan paket Jieba open source untuk menjalankan kode pemisahan.

    Jalankan kode sampel berikut pada 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']  # Mereferensikan paket jieba-master.zip.
    src_df = o.get_table('jieba_test').to_df()  # Mereferensikan data dalam tabel jieba_test.
    result_df = src_df.chinese.map(test).persist('jieba_result', hints=hints, libraries=libraries)
    print(result_df.head(10))  # Menampilkan 10 baris pertama data hasil pemisahan. 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 Flag parameters.

  7. Lihat hasil.

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

    • Metode 1: Lihat hasil eksekusi program pemisahan Jieba pada tab Runtime Log.

    • Metode 2: Pada panel navigasi sebelah kiri, klik tombol Ad-hoc Query. Buat node kueri ad-hoc untuk melihat hasil dalam tabel jieba_result.

      select * from jieba_result;

Praktik 2: Gunakan kamus kustom untuk memisahkan teks Mandarin

Jika kamus default paket Jieba open source tidak memenuhi kebutuhan bisnis Anda, Anda dapat menggunakan kamus kustom untuk memperbaiki hasil pemisahan. Bagian ini menjelaskan cara menggunakan kamus kustom untuk memisahkan teks Mandarin.

  1. Buat resource MaxCompute.

    Fungsi yang ditentukan pengguna (UDF) PyODPS dapat membaca resource, seperti resource tabel atau resource file, yang diunggah ke MaxCompute. Untuk melakukan ini, UDF harus ditulis sebagai closure atau callable class.

    Catatan

    Anda dapat menggunakan fitur pendaftaran fungsi MaxCompute di DataWorks untuk mereferensikan UDF kompleks. Untuk informasi lebih lanjut, lihat Create and use a UDF.

    Contoh ini menggunakan closure untuk mereferensikan file resource. File resource merupakan kamus kustom key_words.txt yang Anda unggah ke MaxCompute.

    1. Buat resource MaxCompute bertipe File.

      Klik kanan nama workflow yang dibuat dan pilih Create Resource > MaxCompute > File. Masukkan nama resource key_words.txt dan klik Create.

    2. Masukkan konten untuk kamus kustom, simpan, dan komit.

      Kode berikut menyediakan contoh kamus kustom. Anda dapat memasukkan konten untuk kamus kustom Anda berdasarkan kebutuhan pengujian Anda.

      incremental backup
      security compliance
  2. Gunakan kamus kustom untuk menjalankan kode pemisahan.

    Jalankan kode sampel berikut pada node PyODPS 3. Kode ini memisahkan data uji dalam tabel jieba_test dan menampilkan 10 baris pertama dari tabel hasil.

    def test(resources):
        import jieba
        fileobj = resources[0]
        jieba.load_userdict(fileobj)
    
        def h(input_var):  # Dalam fungsi nested h(), muat kamus dan lakukan pemisahan.
            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']  # Mereferensikan paket jieba-master.zip.
    src_df = o.get_table('jieba_test').to_df()  # Mereferensikan data dalam tabel jieba_test.
    
    file_object = o.get_resource('key_words.txt') # get_resource() mereferensikan resource MaxCompute.
    mapped_df = src_df.chinese.map(test, resources=[file_object])  # Fungsi map memanggil fungsi dan meneruskan parameter resource.
    result_df = mapped_df.persist('jieba_result2', hints=hints, libraries=libraries)
    print(result_df.head(10))  # Menampilkan 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 Flag parameters.

  3. Lihat hasil.

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

    • Metode 1: Lihat hasil eksekusi program pemisahan Jieba pada tab Runtime Log.

    • Metode 2: Pada panel navigasi sebelah kiri, klik tombol Ad-hoc Query. Buat node kueri ad-hoc untuk melihat hasil dalam tabel jieba_result2.

      select * from jieba_result2;