Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Microsoft Fabric not defterinde SynapseML ile makine öğrenmesi modeli oluşturma gösterilmektedir. Yorum metinlerinden kitap puanlarını tahmin etmek için metin öznitelik çıkarımı ve LightGBM regresyonu kullanan bir eğitim işlem hattı oluşturursunuz. Ayrıca, hazır duygu analizi için Foundry Tools'u nasıl kullanacağınızı da öğrenirsiniz.
- Fabric not defteri oluşturun ve Lakehouse ekleyin
- Kitaplıkları içeri aktarma ve verileri yükleme
- Metin öznitelik çıkarımı ve LightGBM regresyon işlem hattı oluşturun ve eğitin
- Tahmin oluşturma
- (İsteğe bağlı) Foundry Tools duygu analizini çalıştırın
Önkoşullar
Microsoft Fabric aboneliği alın. Alternatif olarak, ücretsiz bir Microsoft Fabric deneme sürümüne kaydolun.
Giriş sayfanızın sol alt köşesindeki deneyim değiştiriciyi kullanarak Fabric'e geçin.
- yeni bir not defteri oluşturun Fabric çalışma alanınızda.
- Not defterine bir göl evi ekleyin. Gezgin bölmesinde Lakehouses'ı genişletin ve Ekle'yi seçin.
- (İsteğe bağlı) Yaklaşım analizi adımını çalıştırmak için şunları yapmanız gerekir:
- Foundry Tools anahtarı. Hızlı Başlangıç: Döküm Araçları için çok hizmetli kaynak oluşturma başlığı altındaki yönergeleri izleyin.
- Foundry Tools anahtarınızın gizli anahtar olarak depolandığı bir Azure Key Vault örneği.
Ortamı ayarlama
Not defterinizde SynapseML kitaplıklarını içeri aktarın ve Spark oturumunuzu başlatın.
from pyspark.sql import SparkSession
from synapse.ml.core.platform import *
spark = SparkSession.builder.getOrCreate()
Doğrulama: Spark'ın çalıştığını onaylamak için aşağıdaki hücreyi çalıştırın:
print(f"Spark version: {spark.version}")
Çıktıda Spark sürüm numarası görüntülenir. Herhangi bir sürüm 3.4 veya üstü beklenir. Tam sürüm, Fabric çalışma zamanınıza bağlıdır.
Veri kümesi yükleme
Kitap incelemeleri veri kümesini yükleyin ve eğitim ile test kümelerine ayırın. Veri kümesi iki sütun içerir: rating (tamsayı 1-5) ve text (içeriği gözden geçirme).
train, test = (
spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
)
.limit(1000)
.cache()
.randomSplit([0.8, 0.2])
)
display(train)
Doğrulama: Doğru yüklenen verileri onaylamak için aşağıdaki hücreyi çalıştırın:
print(f"Training rows: {train.count()}, Test rows: {test.count()}")
print(f"Columns: {train.columns}")
train.printSchema()
Çıktıda yaklaşık 800 eğitim satırı ve 200 test satırı gösterilir ve iki sütun bulunur: rating (tamsayı) ve text (dize). Kesin satır sayıları belirleyici olmadığından farklılık gösterir randomSplit .
Eğitim işlem hattını oluşturma
İnceleme metnini TextFeaturizer ile özelliklendiren ve puanı LightGBMRegressor ile tahmin eden bir işlem hattı oluşturun.
from pyspark.ml import Pipeline
from synapse.ml.featurize.text import TextFeaturizer
from synapse.ml.lightgbm import LightGBMRegressor
model = Pipeline(
stages=[
TextFeaturizer(inputCol="text", outputCol="features"),
LightGBMRegressor(featuresCol="features", labelCol="rating", dataTransferMode="bulk")
]
).fit(train)
Doğrulama: İşlem hattının eğitilmiş olduğunu onaylamak için aşağıdaki hücreyi çalıştırın:
print(f"Pipeline stages: {len(model.stages)}")
print(f"Stage 1: {type(model.stages[0]).__name__}")
print(f"Stage 2: {type(model.stages[1]).__name__}")
Çıktıda iki işlem hattı aşaması gösterilir: TextFeaturizerModel ve LightGBMRegressionModel.
Test verilerinin çıkışını tahmin edin
Test verileri için derecelendirmeleri tahmin etmek ve sonuçları görüntülemek üzere modelde transform yöntemini çağırın.
predictions = model.transform(test)
display(predictions)
Doğrulama: Tahminlerin oluşturulduğunu onaylamak için aşağıdaki hücreyi çalıştırın:
print(f"Prediction columns: {predictions.columns}")
print(f"Prediction count: {predictions.count()}")
predictions.select("rating", "prediction").show(5)
Çıktıda dört sütun (rating, text, features, prediction) ve yaklaşık 200 satır listelenir.
prediction sütunu, modelin float olarak tahmin edilen derecelendirmesini içerir. Model performansını değerlendirmek için gerçek rating sütunla karşılaştırın.
(İsteğe bağlı) Duygu analizi için Foundry Tools'u kullanın
Kitap incelemelerinizin yaklaşımını analiz etmek istiyorsanız SynapseML'nin Döküm Araçları ile tümleştirmesini kullanabilirsiniz. Bu adım, önceki adımlardaki derecelendirme tahmininden farklı bir görev olan metin yaklaşımını sınıflandırmak için önceden oluşturulmuş TextSentiment modeli kullanır.
Important
Bu adım, Azure Key Vault depolanan bir Döküm Araçları anahtarı gerektirir. Bu önkoşulları atladıysanız, önce bunları tamamlayın veya bu bölümü atlayın.
Bu değiştirmelerle aşağıdaki kodu çalıştırın:
-
<your-secret-name>yerine Key Vault’daki Foundry Tools gizli anahtarınızın adını yazın. -
<your-key-vault-name>değerini Azure Key Vault örneğinizin adıyla değiştirin.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret
sentiment_model = TextSentiment(
textCol="text",
outputCol="sentiment",
subscriptionKey=find_secret("<your-secret-name>", "<your-key-vault-name>")
).setLocation("eastus")
sentiment_results = sentiment_model.transform(test)
display(sentiment_results)
Note
Döküm Araçları kaynağınız farklı bir Azure bölgesindeyse (örneğin, setLocation veya "westus2") "westeurope" değerini güncelleştirin.
Doğrulama: Yaklaşım analizinin tamamlandığını onaylamak için aşağıdaki hücreyi çalıştırın:
print(f"Sentiment columns: {sentiment_results.columns}")
sentiment_results.select("text", "sentiment").show(3, truncate=50)
Çıktıda üç sütun (rating, text, sentiment) gösterilir.
sentiment sütunu, her inceleme için positive, negative, neutral veya mixed gibi etiketler içeren yapılandırılmış sonuçlar içerir.
Sorun giderme
| Sorun | Nedeni | Çözünürlük |
|---|---|---|
JAVA_GATEWAY_EXITED SparkSession oluştururken hata oluştu |
Fabric not defterinin dışında kod çalıştırma | Bu kodu Spark'ın önceden yapılandırıldığı bir Fabric not defterinde çalıştırın. Spark yüklemesi olmadan yerel olarak çalıştırmayın. |
Could not find <secret> in keyvault <vault> |
Key Vault adı veya gizli anahtar adı yanlış ya da not defteri kimliği erişime sahip değil | Adların tam olarak eşleştiğinden emin olun. Azure portalında, Fabric çalışma alanı kimliğinizin Key Vault gizli anahtarları için Get iznine sahip olduğunu onaylayın. |
TextFeaturizer boş özellikler döndürür |
Giriş metin sütunu null veya boş | Null değerleri denetleyin: train.filter(train.text.isNull()).count() - eğitimden önce null değerleri kaldırın. |
randomSplit beklenmeyen satır sayıları döndürür |
Spark'ın rastgele bölünmesi belirleyici değildir | Bu beklenen bir davranıştır. Yeniden üretilebilirlik için bir tohum ayarlayın: .randomSplit([0.8, 0.2], seed=42) |
AnalysisException: Path does not exist |
Örnek veri blob'una erişim ağ sorunu | Ağ bağlantısını doğrulayın. Fabric'da çalışma alanınızın dış Azure Blob Depolama URL'lerine erişebildiğini onaylayın. |
| Foundry Tools 401 veya 403 hatası döndürür | Geçersiz veya süresi dolmuş abonelik anahtarı | Azure portalında, Foundry Tools kaynağınızın Keys and Endpoint bölümünde yeni bir anahtar oluşturun. Key Vault gizli anahtarını güncelleyin. |
setLocation 404 döndürür |
Bölge uyuşmazlığı | Konumu, Döküm Araçları kaynağınızı oluşturduğunuz Azure bölgeyle eşleşecek şekilde ayarlayın. |
Kaynakları temizle
İsteğe bağlı Döküm Araçları adımı için Azure kaynakları oluşturduysanız ve artık bunlara ihtiyacınız yoksa, ücretlerden kaçınmak için bunları silin:
- Azure portalında Foundry Tools çok hizmetli kaynağını silin.
- Azure portalında Key Vault örneğini silin.
- Fabric çalışma alanınızda, artık ihtiyacınız yoksa test not defterini silin.