1. Guia Pràctica: Azure AI Language (Capa Gratuïta)
1.1. Introducció
Azure AI Language ofereix capacitats de processament del llenguatge natural (NLP) per analitzar text: sentiment, entitats, frases clau, idioma detectat, i molt més. Tot sense entrenar cap model.
1.1.1. Límits de la capa gratuïta (F0)
- 5.000 transaccions/mes gratuïtes
- Fins a 5.120 caràcters per sol·licitud
- Sense cost de desplegament
1.2. Prerequisits
- Compte d'Azure actiu
- Python 3.8 o superior
- Connexió a internet
1.3. Pas 1: Crear el recurs al portal d'Azure
- Ves a portal.azure.com
- Cerca "Language service"
- Fes clic a "Crear"
- Omple els camps:
- Grup de recursos:
rg-ia-practica (el mateix d'abans)
- Regió:
West Europe
- Nom: un nom únic (p.ex.
language-practica-2024)
- Nivell de preus: F0 (Gratuït)
- Fes clic a "Revisar i crear" → "Crear"
Copia l'Endpoint i la Clau des de "Claus i punt de connexió".
1.4. Pas 2: Instal·lar les dependències
| Bash |
|---|
| pip install azure-ai-textanalytics
|
1.5. Pas 3: Anàlisi de sentiment
Crea un fitxer language_sentiment.py:
| Python |
|---|
| from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
ENDPOINT = "https://<el-teu-endpoint>.cognitiveservices.azure.com/"
KEY = "<la-teva-clau>"
client = TextAnalyticsClient(
endpoint=ENDPOINT,
credential=AzureKeyCredential(KEY)
)
documents = [
"M'encanta aquest producte, és fantàstic!",
"El servei al client va ser horrible i molt lent.",
"El menjar estava bé, ni molt bo ni molt dolent.",
]
response = client.analyze_sentiment(documents=documents, language="ca")
for i, doc in enumerate(response):
print(f"\nText: {documents[i]}")
print(f"Sentiment general: {doc.sentiment}")
print(f" Positiu: {doc.confidence_scores.positive:.2f}")
print(f" Neutral: {doc.confidence_scores.neutral:.2f}")
print(f" Negatiu: {doc.confidence_scores.negative:.2f}")
|
Crea un fitxer language_entities.py:
| Python |
|---|
| from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
ENDPOINT = "https://<el-teu-endpoint>.cognitiveservices.azure.com/"
KEY = "<la-teva-clau>"
client = TextAnalyticsClient(
endpoint=ENDPOINT,
credential=AzureKeyCredential(KEY)
)
documents = [
"La Microsoft va fundar-se el 1975 a Albuquerque, Nou Mèxic, per Bill Gates i Paul Allen.",
"Barcelona és la capital de Catalunya i té una població de més d'1,6 milions d'habitants."
]
# Frases clau
print("=== FRASES CLAU ===")
kp_response = client.extract_key_phrases(documents=documents, language="ca")
for i, doc in enumerate(kp_response):
print(f"\nDocument {i+1}: {documents[i][:50]}...")
print(f" Frases clau: {', '.join(doc.key_phrases)}")
# Entitats nombrades (NER)
print("\n=== ENTITATS RECONEGUDES ===")
ner_response = client.recognize_entities(documents=documents, language="ca")
for i, doc in enumerate(ner_response):
print(f"\nDocument {i+1}:")
for entity in doc.entities:
print(f" - '{entity.text}' → {entity.category} (confiança: {entity.confidence_score:.2f})")
# Detecció d'idioma
print("\n=== DETECCIÓ D'IDIOMA ===")
mixed_docs = ["Hello, how are you?", "Bonjour tout le monde", "Hola, ¿cómo estás?", "Bon dia, com esteu?"]
lang_response = client.detect_language(documents=mixed_docs)
for i, doc in enumerate(lang_response):
print(f" '{mixed_docs[i]}' → {doc.primary_language.name} ({doc.primary_language.iso6391_name})")
|
1.7. Pas 5: Respostes a preguntes (Question Answering)
Aquest servei permet crear una base de coneixement i fer-li preguntes en llenguatge natural.
| Python |
|---|
| from azure.ai.language.questionanswering import QuestionAnsweringClient
from azure.core.credentials import AzureKeyCredential
# Nota: requereix crear un projecte de Question Answering al Language Studio
ENDPOINT = "https://<el-teu-endpoint>.cognitiveservices.azure.com/"
KEY = "<la-teva-clau>"
client = QuestionAnsweringClient(endpoint=ENDPOINT, credential=AzureKeyCredential(KEY))
# Resposta sobre text directe (sense base de coneixement)
output = client.get_answers_from_text(
question="Qui va fundar Microsoft?",
text_documents=[
"Microsoft va ser fundada el 1975 per Bill Gates i Paul Allen a Albuquerque."
],
language="ca"
)
for answer in output.answers:
print(f"Resposta: {answer.answer}")
print(f"Confiança: {answer.confidence:.2f}")
|
1.8. Exercicis proposats
- Nivell bàsic: Analitza el sentiment de 10 ressenyes de productes (pots inventar-les o extreure-les d'internet).
- Nivell mitjà: Crea un script que llegeixi un fitxer de text i extregui totes les entitats (persones, llocs, organitzacions) i les guardi en un CSV.
- Nivell avançat: Construeix un classificador de tickets de suport que, donat un text, determini si és una queixa, una pregunta o un agraïment.
1.9. Errors habituals
| Error |
Causa |
Solució |
AuthenticationFailure |
Clau incorrecta |
Verifica la clau al portal |
InvalidLanguageCode |
Codi d'idioma no vàlid |
Usa "ca", "es", "en" |
DocumentTooLong |
Text supera 5.120 caràcters |
Divideix el text en fragments |
QuotaExceeded |
Superat el límit mensual |
Espera al mes següent |
1.10. Recursos addicionals