DataWorks içinde bir PyODPS düğümü kullanarak, açık kaynaklı bölme aracı Jieba ile Çince metinleri bölebilirsiniz. Bu yaklaşım; metin analizi, bilgi erişimi, metin madenciliği, özellik çıkarımı, arama motoru oluşturma, makine çevirisi ve dil modeli eğitimi gibi kullanım senaryolarında işinize yarar. Varsayılan Jieba sözlüğü ihtiyaçlarınızı karşılamıyorsa, girişler eklemek veya bölme sonuçlarını değiştirmek için özel bir sözlük oluşturabilirsiniz.
Arka plan bilgileri
DataWorks, Python kodunu düzenlemenize ve veri geliştirme amacıyla MaxCompute SDK for Python kullanmanıza olanak tanıyan PyODPS düğümleri sağlar. PyODPS düğümleri PyODPS 2 ve PyODPS 3 varyantlarını içerir. PyODPS 3 daha basit bir API sunar ve pip kullanılarak kurulabilir; bu sayede MaxCompute kaynaklarına ve özelliklerine daha iyi erişim elde edersiniz. PyODPS 3 düğümlerini kullanmanızı öneririz. Daha fazla bilgi için bkz. PyODPS 3 görevi geliştirme.
PyODPS 3 düğümleri yalnızca Python 3.X sürümünü destekler. PyODPS 2 düğümleri Python 2.X ve Python 3.X sürümlerini destekler. Python 2.X kullanmak istiyorsanız yalnızca PyODPS 2 düğümlerini seçebilirsiniz.
Bu konudaki işlemler yalnızca referans amaçlıdır. Bunları üretim ortamlarında kullanmayın.
Ön koşullar
Bir DataWorks çalışma alanı oluşturulmuş olmalıdır. Daha fazla bilgi için bkz. Çalışma alanları oluşturma ve yönetme.
DataStudio'ya bağlı bir MaxCompute işlem motoruna sahip olmanız gerekir. Daha fazla bilgi için bkz. MaxCompute veri kaynağı oluşturma ve çalışma alanına bağlama.
Hazırlık: Açık kaynaklı Jieba paketini indirme
https://github.com/fxsjy/jieba GitHub deposundaki açık kaynaklı Jieba paketini indirin. Sağ üst köşedeki Code düğmesini tıklayın ve kaynak kodu arşivini indirmek için Download ZIP seçeneğini seçin.
Uygulama 1: Açık kaynaklı Jieba paketini kullanarak Çince metin bölme
Bir iş akışı oluşturun. Daha fazla bilgi için bkz. İş akışı oluşturma.
-
Bir MaxCompute kaynağı oluşturun ve jieba-master.zip paketini yükleyin.
Oluşturduğunuz iş akışına sağ tıklayın ve yolunu izleyin.
-
Create Resource iletişim kutusunda parametreleri yapılandırın ve Create düğmesini tıklayın.
Bu örnekte Engine Type değerini MaxCompute, Engine Instance değerini doc_test ve Resource Type değerini Archive olarak ayarlayın. Upload as ODPS Resource seçeneğini belirleyin.
Parameter
Description
Upload File
Click Upload düğmesini tıklayın ve indirilen jieba-master.zip dosyasını seçin.
Name
Kaynak adı. Adlandırma kurallarına uygun olmalı ancak yüklenen dosya adıyla eşleşmesi gerekmez. Bu örnekte ad jieba-master.zip olarak ayarlanmıştır. Kaynağı göndermek için üst araç çubuğundaki
simgesini tıklayın.
-
jieba_test ve jieba_result adlı iki tablo oluşturun. jieba_test tablosu test verilerini depolamak için, jieba_result tablosu ise test sonucunu depolamak için kullanılır.
Oluşturduğunuz iş akışına sağ tıklayın ve yolunu izleyin. Tabloları oluşturun ve alanlarını yapılandırmak için DDL modunu kullanın. Tablolar oluşturulduktan sonra bunları geliştirme ortamına gönderin. Tablo oluşturma hakkında daha fazla bilgi için bkz. MaxCompute tabloları oluşturma ve kullanma.
Aşağıdaki tabloda, iki tablodaki alanları yapılandırmak için kullanılan DDL deyimleri açıklanmaktadır.
Table
DDL statement
Description
jieba_test
CREATE TABLE jieba_test ( `chinese` string, `content` string );Test verilerini depolar.
jieba_result
CREATE TABLE jieba_result ( `chinese` string ) ;Test sonucunu depolar.
-
Test verilerini indirin ve jieba_test tablosuna aktarın.
Test verilerini içeren jieba_test.csv dosyasını yerel makinenize indirin.
DataStudio sayfasında
simgesini tıklayın.Data Import Wizard iletişim kutusunda hedef tablo olarak jieba_test yazın, tabloyu seçin ve Next düğmesini tıklayın.
Bilgisayarınızdan jieba_test.csv dosyasını yükleyin, yükleme ayarlarını yapılandırın, verileri önizleyin ve Next düğmesini tıklayın.
By Name seçeneğini belirleyin ve Import Data düğmesini tıklayın.
-
Bir PyODPS 3 düğümü oluşturun.
Oluşturduğunuz iş akışına sağ tıklayın ve yolunu izleyin.
Create Node iletişim kutusunda bir Name (örneğin, Name) girin ve OK düğmesini tıklayın.
-
Açık kaynaklı Jieba paketini kullanarak bölme kodunu çalıştırın.
jieba_test tablosundaki test verilerini bölmek ve bölme sonucu verilerinin ilk 10 satırını döndürmek için PyODPS 3 düğümünde aşağıdaki örnek kodu çalıştırın:
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.Notodps.stage.mapper.split.size parametresi, yürütme paralelliğini artırmak için kullanılabilir. Daha fazla bilgi için bkz. Flag parameters.
-
Sonucu görüntüleyin.
Jieba bölme sonuçlarını aşağıdaki yöntemlerden birini kullanarak görüntüleyebilirsiniz:
Yöntem 1: Sayfanın alt kısmındaki Operational Logs alanında sonuçları görüntüleyin.
-
Yöntem 2: Sol gezinme bölmesinde Ad Hoc Query öğesini tıklayarak bir Ad Hoc Query düğümü oluşturun. Ardından, jieba_result tablosundaki verileri görüntüleyin.
select * from jieba_result;
Uygulama 2: Özel sözlük kullanarak Çince metin bölme
Varsayılan Jieba sözlüğü ihtiyaçlarınızı karşılamıyorsa, Çince metinleri bölmek için özel bir sözlük kullanabilirsiniz. Aşağıdaki örnek bu yaklaşımı göstermektedir.
-
Bir MaxCompute kaynağı oluşturun.
PyODPS kullanıcı tanımlı işlevleri (UDF'ler), tablolar ve dosyalar dahil olmak üzere MaxCompute'a yüklenen kaynakları okuyabilir. UDF, bir kapanış işlevi veya çağrılabilir bir sınıf olarak yazılmalıdır.
NotKarmaşık UDF'lere başvurmak için DataWorks içinde MaxCompute işlevleri oluşturabilirsiniz. Daha fazla bilgi için bkz. MaxCompute işlevi oluşturma ve kullanma.
Aşağıdaki örnekte, MaxCompute'a yüklenen key_words.txt özel sözlük dosyasına başvurmak için bir kapanış işlevi kullanılmaktadır.
-
File türünde bir MaxCompute kaynağı oluşturun.
Oluşturduğunuz iş akışına sağ tıklayın ve yolunu izleyin. Kaynak adı olarak key_words.txt girin ve Create düğmesini tıklayın.
-
key_words.txt kaynağının yapılandırma sekmesinde özel sözlüğün içeriğini girin ve kaynağı kaydedip gönderin.
Aşağıdaki içerik, özel sözlük için örnek içeriktir. Test gereksinimlerinize göre özel sözlüğün içeriğini girebilirsiniz.
-
-
Özel sözlüğü kullanarak bölme kodunu çalıştırın.
jieba_test tablosundaki test verilerini bölmek ve bölme sonucu verilerinin ilk 10 satırını döndürmek için PyODPS 3 düğümünde aşağıdaki örnek kodu çalıştırın:
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.Notodps.stage.mapper.split.size parametresi, yürütme paralelliğini artırmak için kullanılabilir. Daha fazla bilgi için bkz. Flag parameters.
-
Sonucu görüntüleyin.
Özel sözlük bölme sonuçlarını aşağıdaki yöntemlerden birini kullanarak görüntüleyebilirsiniz:
Yöntem 1: Sayfanın alt kısmındaki Operational Logs alanında sonuçları görüntüleyin.
-
Yöntem 2: Sol gezinme bölmesinde Ad Hoc Query öğesini tıklayarak bir Ad Hoc Query düğümü oluşturun. Ardından, jieba_result2 tablosundaki verileri görüntüleyin.
select * from jieba_result2;