Todos os produtos
Search
Central de documentação

MaxCompute:Use um nó PyODPS para segmentar texto em chinês com base no Jieba

Última atualização: Aug 20, 2026

Use um nó PyODPS no DataWorks para segmentar texto em chinês com o Jieba, ferramenta de segmentação de código aberto. Essa abordagem atende a casos de uso como análise de texto, recuperação de informações, mineração de texto, extração de recursos, criação de mecanismos de busca, tradução automática e treinamento de modelos de linguagem. Se o dicionário padrão do Jieba não atender às suas necessidades, crie um dicionário personalizado para adicionar entradas ou modifique os resultados da segmentação.

Informações básicas

O DataWorks oferece nós PyODPS que permitem edite código Python e usar o MaxCompute SDK for Python no desenvolvimento de dados. Há duas variantes: PyODPS 2 e PyODPS 3. O PyODPS 3 fornece uma API mais simples e pode ser instalado via pip, facilitando o acesso aos recursos e funcionalidades do MaxCompute. Recomendamos o uso de nós PyODPS 3. Para mais informações, consulte Develop a PyODPS 3 task.

Importante
  • Os nós PyODPS 3 suportam apenas Python 3.X. Os nós PyODPS 2 suportam Python 2.X e Python 3.X. Para usar Python 2.X, selecione exclusivamente nós PyODPS 2.

  • As operações descritas neste tópico servem apenas como referência. Não as utilize em ambientes de produção.

Pré-requisitos

  1. Crie um workspace do DataWorks. Para mais informações, consulte Create and manage workspaces.

  2. Vincule um mecanismo de computação MaxCompute ao DataStudio. Para mais informações, consulte Create a MaxCompute data source and bind it to a workspace.

Preparação: Baixe o pacote Jieba de código aberto

Baixe o pacote Jieba de código aberto em seu repositório no GitHub: https://github.com/fxsjy/jieba. Clique em no botão Code no canto superior direito e selecione Download ZIP para baixe o arquivo compactado do código-fonte.

Prática 1: Use o pacote Jieba de código aberto para segmentar texto em chinês

  1. Crie um fluxo de trabalho. Para mais informações, consulte Create a workflow.

  2. Crie um recurso do MaxCompute e faça upload do pacote jieba-master.zip.

    1. Clique em com o botão direito no fluxo de trabalho criado e escolha Create Resource > MaxCompute > Archive.

    2. Na caixa de diálogo Create Resource, configure os parâmetros e clique em Create.

      Neste exemplo, defina Engine Type como MaxCompute, Engine Instance como doc_test e Resource Type como Archive. Selecione Upload as ODPS Resource.

      Parâmetro

      Descrição

      Upload File

      Clique em Click Upload e selecione o arquivo jieba-master.zip baixado.

      Name

      Nome do recurso. Deve seguir as convenções de nomenclatura, mas não precisa corresponder ao nome do arquivo enviado. Neste exemplo, o nome é definido como jieba-master.zip.

    3. Clique em no ícone 提交 na barra de ferramentas superior para submeter o recurso.

  3. Crie uma tabela chamada jieba_test e outra chamada jieba_result. A tabela jieba_test armazena os dados de teste; a tabela jieba_result guarda o resultado do teste.

    Clique em com o botão direito no fluxo de trabalho criado e escolha Create Table > MaxCompute > Table. Crie as tabelas e use o modo DDL para configure seus campos. Após a criação, submeta-as ao ambiente de desenvolvimento. Para mais detalhes sobre a criação de tabelas, consulte Create and use MaxCompute tables.

    A tabela a seguir descreve as instruções DDL usadas para configure os campos nas duas tabelas.

    Tabela

    Instrução DDL

    Descrição

    jieba_test

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

    Armazena dados de teste.

    jieba_result

    CREATE TABLE jieba_result (
        `chinese` string
    ) ;

    Armazena o resultado do teste.

  4. Baixe os dados de teste e importe-os para a tabela jieba_test.

    1. Baixe o arquivo jieba_test.csv, que contém os dados de teste, para sua máquina local.

    2. Na página DataStudio, clique em no ícone 导入.

    3. Na caixa de diálogo Data Import Wizard, insira jieba_test como tabela de destino, selecione-a e clique em Next.

    4. Faça upload do arquivo jieba_test.csv do seu computador, configure as opções de envio, visualize os dados e clique em Next.

    5. Selecione By Name e clique em Import Data.

  5. Crie um nó PyODPS 3.

    1. Clique em com o botão direito no fluxo de trabalho criado e escolha Create Node > MaxCompute > PyODPS 3.

    2. Na caixa de diálogo Create Node, insira um Name (por exemplo, Name) e clique em OK.

  6. Execute o código de segmentação com o pacote Jieba de código aberto.

    Execute o código de exemplo abaixo no nó PyODPS 3 para segmentar os dados de teste na tabela jieba_test e retornar as primeiras 10 linhas dos resultados:

    def test(input_var):
        import jieba
        result = jieba.cut(input_var, cut_all=False)
        return "/ ".join(result)
    # odps.stage.mapper.split.size can be used to increase parallelism.
    hints = {
        'odps.isolation.session.enable': True,
        'odps.stage.mapper.split.size': 64,
    }
    libraries =['jieba-master.zip']  # Reference your jieba-master.zip archive.
    src_df = o.get_table('jieba_test').to_df()  # Reference the data in your jieba_test table.
    result_df = src_df.chinese.map(test).persist('jieba_result', hints=hints, libraries=libraries)
    print(result_df.head(10))  # View the first 10 rows of the segmentation results. For more data, query the jieba_result table.
    Nota

    Use o parâmetro odps.stage.mapper.split.size para melhorar o paralelismo de execução. Para mais informações, consulte Flag parameters.

  7. Visualize o resultado.

    Verifique os resultados da segmentação Jieba por meio de um dos métodos a seguir:

    • Método 1: Verifique os resultados na área Operational Logs, na parte inferior da página.

    • Método 2: No painel de navegação à esquerda, clique em Ad Hoc Query para crie um nó Ad Hoc Query. Em seguida, visualize os dados na tabela jieba_result.

      select * from jieba_result;

Prática 2: Use um dicionário personalizado para segmentar texto em chinês

Se o dicionário padrão do Jieba não atender aos seus requisitos, use um dicionário personalizado para segmentar texto em chinês. O exemplo a seguir demonstra essa abordagem.

  1. Crie um recurso do MaxCompute.

    Funções definidas pelo usuário (UDFs) do PyODPS podem ler recursos enviados ao MaxCompute, incluindo tabelas e arquivos. Escreva a UDF como uma função closure ou uma classe chamável.

    Nota

    Crie funções do MaxCompute no DataWorks para referenciar UDFs complexas. Para mais informações, consulte Create and use a MaxCompute function.

    O exemplo abaixo usa uma função closure para referenciar o arquivo de dicionário personalizado key_words.txt enviado ao MaxCompute.

    1. Crie um recurso do MaxCompute do tipo File.

      Clique em com o botão direito no fluxo de trabalho criado e escolha Create Resource > MaxCompute > File. Insira o nome do recurso key_words.txt e clique em Create.

    2. Na aba de configuração do recurso key_words.txt, insira o conteúdo do dicionário personalizado, salve e submeta o recurso.

      O conteúdo abaixo é um exemplo de dicionário personalizado. Preencha o conteúdo conforme as necessidades do seu teste.

  2. Execute o código de segmentação com o dicionário personalizado.

    Execute o código de exemplo a seguir no nó PyODPS 3 para segmentar os dados de teste na tabela jieba_test e retornar as primeiras 10 linhas dos resultados:

    def test(resources):
        import jieba
        fileobj = resources[0]
        jieba.load_userdict(fileobj)
        def h(input_var):  # In the nested function h(), load the dictionary and perform segmentation.
            result = jieba.cut(input_var, cut_all=False)
            return "/ ".join(result)
        return h
    # odps.stage.mapper.split.size can be used to increase parallelism.
    hints = {
        'odps.isolation.session.enable': True,
        'odps.stage.mapper.split.size': 64,
    }
    libraries =['jieba-master.zip']  # Reference your jieba-master.zip archive.
    src_df = o.get_table('jieba_test').to_df()  # Reference the data in your jieba_test table.
    file_object = o.get_resource('key_words.txt') # get_resource() references a MaxCompute resource.
    mapped_df = src_df.chinese.map(test, resources=[file_object])  # The map function calls the function and passes the resources parameter.
    result_df = mapped_df.persist('jieba_result2', hints=hints, libraries=libraries)
    print(result_df.head(10))  # View the first 10 rows of the segmentation results. For more data, query the jieba_result2 table.
    Nota

    Use o parâmetro odps.stage.mapper.split.size para melhorar o paralelismo de execução. Para mais informações, consulte Flag parameters.

  3. Visualize o resultado.

    Verifique os resultados da segmentação com dicionário personalizado usando um dos métodos abaixo:

    • Método 1: Consulte os resultados na área Operational Logs, na parte inferior da página.

    • Método 2: No painel de navegação à esquerda, clique em Ad Hoc Query para crie um nó Ad Hoc Query. Depois, visualize os dados na tabela jieba_result2.

      select * from jieba_result2;