Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Translator to usługi sztucznej inteligencji platformy Azure, które umożliwiają wykonywanie tłumaczenia języka i innych operacji związanych z językiem. Z tego samouczka dowiesz się, jak używać usługi Translator do tworzenia inteligentnych, wielojęzycznych rozwiązań w usłudze Azure Synapse Analytics.
W tym samouczku pokazano, jak używać tłumacza z programem MMLSpark do:
- Tłumaczenie tekstu
- Transliteracja tekstu
- Wykryj język
- Podział zdania
- Wyszukiwanie w słowniku
- Przykład słownika
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Wymagania wstępne
- Obszar roboczy usługi Azure Synapse Analytics z kontem magazynu usługi Azure Data Lake Storage Gen2 skonfigurowanym jako magazyn domyślny. Musisz być współautorem danych obiektu blob usługi Storage w systemie plików usługi Data Lake Storage Gen2, z którym pracujesz.
- Pula platformy Spark w obszarze roboczym usługi Azure Synapse Analytics. Aby uzyskać szczegółowe informacje, zobacz Tworzenie puli Spark w usłudze Azure Synapse.
- Kroki wstępnej konfiguracji opisane w samouczku Konfigurowanie usług azure AI w usłudze Azure Synapse.
Rozpocznij
Otwórz program Synapse Studio i utwórz nowy notes. Aby rozpocząć, zaimportuj program MMLSpark.
import mmlspark
from mmlspark.cognitive import *
from notebookutils import mssparkutils
from pyspark.sql.functions import col, flatten
Konfigurowanie translatora
Użyj połączonego translatora skonfigurowanego w krokach wstępnej konfiguracji.
ai_service_name = "<Your linked service for translator>"
Przetłumacz tekst
Podstawową operacją usługi Translator jest tłumaczenie tekstu.
df = spark.createDataFrame([
(["Hello, what is your name?", "Bye"],)
], ["text",])
translate = (Translate()
.setLinkedService(ai_service_name)
.setTextCol("text")
.setToLanguage(["zh-Hans", "fr"])
.setOutputCol("translation")
.setConcurrency(5))
display(translate
.transform(df)
.withColumn("translation", flatten(col("translation.translations")))
.withColumn("translation", col("translation.text"))
.select("translation"))
Oczekiwane wyniki
["你好,你叫什么名字?","Bonjour, quel est votre nom?","再见","Au revoir"]
Transliteracja tekstu
Transliteracja to proces konwertowania wyrazu lub frazy ze skryptu (alfabetu) jednego języka na inny na podstawie podobieństwa fonetycznego.
transliterateDf = spark.createDataFrame([
(["こんにちは", "さようなら"],)
], ["text",])
transliterate = (Transliterate()
.setLinkedService(ai_service_name)
.setLanguage("ja")
.setFromScript("Jpan")
.setToScript("Latn")
.setTextCol("text")
.setOutputCol("result"))
display(transliterate
.transform(transliterateDf)
.withColumn("text", col("result.text"))
.withColumn("script", col("result.script"))
.select("text", "script"))
Oczekiwane wyniki
text | skrypt |
---|---|
"["Kon'nichiwa","sayonara"]" | "["Latn","Latn"]" |
Wykrywanie języka
Jeśli wiesz, że potrzebujesz tłumaczenia, ale nie znasz języka tekstu, który zostanie wysłany do usługi Translator, możesz użyć operacji wykrywania języka.
detectDf = spark.createDataFrame([
(["Hello, what is your name?"],)
], ["text",])
detect = (Detect()
.setLinkedService(ai_service_name)
.setTextCol("text")
.setOutputCol("result"))
display(detect
.transform(detectDf)
.withColumn("language", col("result.language"))
.select("language"))
Oczekiwane wyniki
"["en"]"
Podział zdania
Określa położenie granic zdań w tekście.
bsDf = spark.createDataFrame([
(["Hello, what is your name?"],)
], ["text",])
breakSentence = (BreakSentence()
.setLinkedService(ai_service_name)
.setTextCol("text")
.setOutputCol("result"))
display(breakSentence
.transform(bsDf)
.withColumn("sentLen", flatten(col("result.sentLen")))
.select("sentLen"))
Oczekiwane wyniki
"[25]"
Wyszukiwanie słownika (alternatywne tłumaczenia)
Za pomocą punktu końcowego można uzyskać alternatywne tłumaczenia wyrazu lub frazy.
dictDf = spark.createDataFrame([
(["fly"],)
], ["text",])
dictionaryLookup = (DictionaryLookup()
.setLinkedService(ai_service_name)
.setFromLanguage("en")
.setToLanguage("es")
.setTextCol("text")
.setOutputCol("result"))
display(dictionaryLookup
.transform(dictDf)
.withColumn("translations", flatten(col("result.translations")))
.withColumn("normalizedTarget", col("translations.normalizedTarget"))
.select("normalizedTarget"))
Oczekiwane wyniki
normalizedTarget |
---|
"["volar","mosca","operan","pilotar","moscas","marcha"]" |
Przykłady słowników (tłumaczenia w kontekście)
Po wykonaniu wyszukiwania słownika możesz przekazać tekst źródłowy i tłumaczenie do punktu końcowego słownika/przykładów, aby uzyskać listę przykładów, które pokazują oba terminy w kontekście zdania lub frazy.
dictDf = spark.createDataFrame([
([("fly", "volar")],)
], ["textAndTranslation",])
dictionaryExamples = (DictionaryExamples()
.setLinkedService(ai_service_name)
.setFromLanguage("en")
.setToLanguage("es")
.setTextAndTranslationCol("textAndTranslation")
.setOutputCol("result"))
display(dictionaryExamples
.transform(dictDf)
.withColumn("examples", flatten(col("result.examples")))
.select("examples"))
Oczekiwane wyniki
[{"sourcePrefix":"I mean, for a guy who could ","sourceSuffix":".","targetPrefix":"Quiero decir, para un tipo que podía ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"Now it's time to make you ","sourceSuffix":".","targetPrefix":"Ahora es hora de que te haga ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"One happy thought will make you ","sourceSuffix":".","targetPrefix":"Uno solo te hará ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"They need machines to ","sourceSuffix":".","targetPrefix":"Necesitan máquinas para ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"That should really ","sourceSuffix":".","targetPrefix":"Eso realmente debe ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"It sure takes longer when you can't ","sourceSuffix":".","targetPrefix":"Lleva más tiempo cuando no puedes ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"I have to ","sourceSuffix":" home in the morning.","targetPrefix":"Tengo que ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":" a casa por la mañana."},{"sourcePrefix":"You taught me to ","sourceSuffix":".","targetPrefix":"Me enseñaste a ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"I think you should ","sourceSuffix":" with the window closed.","targetPrefix":"Creo que debemos ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":" con la ventana cerrada."},{"sourcePrefix":"They look like they could ","sourceSuffix":".","targetPrefix":"Parece que pudieran ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"But you can ","sourceSuffix":", for instance?","targetPrefix":"Que puedes ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":", por ejemplo."},{"sourcePrefix":"At least until her kids can be able to ","sourceSuffix":".","targetPrefix":"Al menos hasta que sus hijos sean capaces de ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"I thought you could ","sourceSuffix":".","targetPrefix":"Pensé que podías ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"I was wondering what it would be like to ","sourceSuffix":".","targetPrefix":"Me preguntaba cómo sería ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."},{"sourcePrefix":"But nobody else can ","sourceSuffix":".","targetPrefix":"Pero nadie puede ","targetTerm":"volar","sourceTerm":"fly","targetSuffix":"."}]
Czyszczenie zasobów
Aby upewnić się, że wystąpienie platformy Spark jest wyłączone, zakończ wszystkie połączone sesje (notesy). Pula zostanie zamknięta po osiągnięciu czasu bezczynności określonego w puli platformy Apache Spark. Możesz również wybrać pozycję Zatrzymaj sesję na pasku stanu w prawym górnym rogu notesu.