ktg-plugin-marketplace/plugins/ms-ai-architect/skills/ms-ai-engineering/references/azure-ai-services/language-services-text-analytics.md
Kjell Tore Guttormsen ff6a50d14f docs(architect): weekly KB update — 106 files refreshed (2026-04)
Updates across all 5 skills: ms-ai-advisor, ms-ai-engineering,
ms-ai-governance, ms-ai-security, ms-ai-infrastructure.

Key changes:
- Language Services (Custom Text Classification, Text Analytics, QnA):
  retirement warning 2029-03-31, migration guides to Foundry/GPT-4o
- Agentic Retrieval: 50M free reasoning tokens/month (Public Preview)
- Computer Use: Claude Sonnet 4.5 (preview) + OpenAI CUA models
- Agent Registry: Risks column (M365 E7), user-shared/org-published types
- Declarative agents: schema v1.5 → v1.6, Store validation requirements
- MLflow 3: 13 built-in LLM judges, production monitoring, Genie Code
- AG-UI HITL: ApprovalRequiredAIFunction (C#) + @tool(approval_mode) (Python)
- Entra ID Ignite 2025: Agent ID Admin/Developer RBAC roles, Conditional Access
- Security Copilot: 400 SCU/month per 1000 M365 E5 licenses, auto-provisioned
- Fast Transcription API: phrase lists, 14-language multi-lingual transcription
- Azure Monitor Workbooks: Bicep support, RBAC specifics
- Power Platform Copilot: data residency (Norway/Europe → EU DB, Bing → USA)
- RAG security-rbac: 4-approach table (GA + 3 preview access control methods)
- IaC MLOps: Well-Architected OE:05 principles, Bicep/Terraform patterns
- Translator: image file batch translation Preview (JPEG/PNG/BMP/WebP)

All 106 files: Last updated 2026-04 | Verified: MCP 2026-04

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 09:13:24 +02:00

20 KiB
Raw Blame History

Language Services - Text Analytics for Sentiment and Key Phrases

Last updated: 2026-04 | Verified: MCP 2026-04 Status: GA (deler avvikles 2029-03-31)

ADVARSEL — TJENESTER AVVIKLES (2029-03-31): Sentiment Analysis, Opinion Mining og Custom Text Classification avvikles 31. mars 2029. Migrer til Azure AI Foundry-modeller. PII Detection, Key Phrase Extraction og Language Detection er ikke berørt. Category: Azure AI Services (Foundry Tools)


Introduksjon

Azure AI Language er en samling av forhåndsopplærte språkmodeller som gjør det mulig å utføre avansert tekstanalyse uten å bygge egne maskinlæringsmodeller. Tjenesten tilbyr flere kjernekapabiliteter for text analytics: Sentiment Analysis (med opinion mining), Key Phrase Extraction, Named Entity Recognition (NER), og Language Detection.

Disse kapabilitetene er tilgjengelige både som cloud-baserte REST API-er, SDK-er (C#, Java, Python, JavaScript), og Docker-containere for on-premises deployment. Tjenesten integreres sømløst med Azure AI Foundry, Azure Synapse Analytics, Power BI, og Microsoft Fabric, noe som gjør den egnet for både interactive playgrounds og produksjonsworkflows.

Text analytics-funksjonene er stateless — ingen data lagres i kontoen din, og resultater returneres umiddelbart etter analyse. For batch-operasjoner er resultatene tilgjengelige i 24 timer før de slettes automatisk. Tjenesten støtter 94+ språk for key phrase extraction, med bred språkstøtte også for sentiment analysis og NER.


Kjernekomponenter / Nøkkelegenskaper

Sentiment Analysis

Analyserer tekst og returnerer sentiment labels (positive, negative, neutral, mixed) med confidence scores (01) på både setnings- og dokumentnivå.

Funksjonalitet Beskrivelse
Sentiment labels Positive, negative, neutral (setningsnivå); mixed tilgjengelig på dokumentnivå
Confidence scores 0.01.0 per label (summer alltid til 1.0)
Opinion Mining Identifiserer target-aspect (substantiv/verb) og tilhørende assessment (adjektiv)
Beste use case Små tekstblokker (høyere kvalitet enn store)
Språkstøtte Omfattende liste inkl. norsk

Eksempel (Opinion Mining):

Input: "The room was great, but the staff was unfriendly."
Output:
- Target: "room" → Assessment: "great" (positive)
- Target: "staff" → Assessment: "unfriendly" (negative)
- Document sentiment: mixed

Key Phrase Extraction

Evaluerer ustrukturert tekst og returnerer en liste over viktigste key phrases.

Funksjonalitet Beskrivelse
Input-optimalisering Fungerer best på større tekstblokker (motsatt av sentiment)
Output Liste med key phrases, sortert av modellens interne ranking
Språkstøtte 94 språk (inkl. norsk, samisk, finsk, svensk, dansk)
Use case Rask identifikasjon av hovedpoeng i dokumentsamlinger

Eksempel:

Input: "Dr. Smith has a very modern medical office, and she has great staff."
Output: ["modern medical office", "Dr. Smith", "great staff"]

Named Entity Recognition (NER)

Identifiserer og kategoriserer entities i tekst (person, lokasjon, organisasjon, dato, etc.).

Entity-kategori Typer (eksempler)
Person Person, PersonType (rolle)
Organization Organization, OrganizationMedical, OrganizationSports, OrganizationStockExchange
Location City, CountryRegion, State, GPE (geopolitical entity), Airport, Continent
DateTime Date, Time, DateRange, TimeRange, Duration, Set
Quantity Number, Percentage, Currency, Age, Temperature, Speed, Weight, Volume, Area, Length
Event Event, NaturalEvent, CulturalEvent, SportsEvent
Contact Email, PhoneNumber, URL, IpAddress, Address
Product Product, ComputingProduct
Other Skill, Information

Metadata-resolutionsupport: Mange quantity-entities returnerer strukturert metadata (f.eks. Currency → ISO-kode, normalized verdi).

Language Detection

Evaluerer tekst og returnerer språk-identifier (ISO 639-1) med confidence score (0.01.0).

Funksjonalitet Beskrivelse
Output Language name, ISO 6391 code, confidence score
Use case Automatisk språkdeteksjon for content stores med mixed-language data
Default Engelsk hvis ikke spesifisert

Arkitekturmønstre

Mønster 1: REST API med Fabric/Synapse (Batch Processing)

Use case: Prosesser store volumer av dokumenter fra data lake (f.eks. kundefeedback, supporttickets).

Fordeler:

  • Sømløs integrasjon med Azure Storage og Azure AI Search
  • SynapseML gir Spark-optimalisert batch processing
  • Built-in authentication via Fabric workspace credentials

Ulemper:

  • Krever Spark-kompetanse for SynapseML
  • Batch-mode medfører latency (ikke real-time)

Eksempel (Fabric REST API):

# Auto-authenticated via Fabric
payload = {
    "kind": "SentimentAnalysis",
    "parameters": {"modelVersion": "latest", "opinionMining": "True"},
    "analysisInput": {"documents": [{"id": "1", "language": "en", "text": "..."}]}
}
response = requests.post(service_url, json=payload, headers=auth_headers)

Mønster 2: SDK-basert integrasjon (Client Library)

Use case: Real-time tekstanalyse i web/mobile apps, chatbots, eller Power Apps.

Fordeler:

  • Typed responses (C#, Java) reduserer parsing-bugs
  • Async support for skalerbare apps
  • Enklere feilhåndtering enn raw REST

Ulemper:

  • SDK versioning (må holde tritt med API-versjoner)
  • Større binary footprint enn REST

Eksempel (C# SDK):

var client = new TextAnalyticsClient(endpoint, new AzureKeyCredential(key));
var response = await client.AnalyzeSentimentAsync("The service was excellent!");
Console.WriteLine($"Sentiment: {response.Value.Sentiment}");

Mønster 3: Docker Container (On-Premises)

Use case: Compliance-krav som krever data residency i Norge, eller air-gapped environments.

Fordeler:

  • Full datakontroll (ingen data sendes til cloud)
  • Lav latency (lokal processing)
  • Støtter Sentiment, Language Detection, Key Phrase, Custom NER, Text Analytics for Health

Ulemper:

  • Krever egne compute-ressurser (CPU/minne)
  • Ingen automatiske modelloppdateringer (må manuelt oppdatere container images)
  • Free F0 tier støttes ikke (kun Standard S tier)

Beslutningsveiledning

Når bruke Sentiment Analysis vs. Opinion Mining

Scenario Anbefaling
Trenger kun overordnet positive/negative/neutral? Sentiment Analysis (uten opinion mining-flag)
Må identifisere hva kunder liker/misliker? Opinion Mining (sett opinionMining=true)
Analyserer produktanmeldelser med attributter? Opinion Mining (target = produkt-feature, assessment = vurdering)

Vanlige feil

Feil Løsning
Lav kvalitet på sentiment for lange dokumenter Del opp tekst i mindre chunks (maks 5000 tegn per record)
Key phrases mangler kontekst Gi større tekstblokker (key phrase fungerer bedre på større input enn sentiment)
NER feiltolker domene-spesifikke entities Vurder Custom NER (trener egen modell på dine data)
Mixed sentiment når både positive og negative setninger Dette er forventet — bruk Opinion Mining for granularitet

Røde flagg

  • Ikke bruk for medisinsk diagnostikk (selv om Text Analytics for Health finnes — krever spesialistkompetanse)
  • Ikke bruk for PII-deteksjon i produksjon uten også å enable PII Detection feature
  • Ikke bruk default English language hvis du vet teksten er på andre språk (spesifiser language parameter)

Beslutningstabell: SDK vs. REST vs. Container

Krav SDK REST API Container
Real-time app-integrasjon Beste valg ⚠️ Fungerer, mer boilerplate Overkill
Batch processing (millioner dokumenter) ⚠️ Mulig, men batch APIs bedre Med SynapseML ⚠️ Infrastruktur-overhead
Data residency krav (Norge) Må bruke EU-regioner Må bruke EU-regioner Full kontroll
Lavest kostnads-overhead Pay-per-call Pay-per-call ⚠️ Egen infrastruktur

Integrasjon med Microsoft-stakken

Azure AI Foundry

Language Services er integrert i Foundry Playground med visuell testing av sentiment, key phrases, og NER uten kode.

Workflow:

  1. Opprett Language resource i Foundry
  2. Velg "Analyze sentiment" eller "Key phrase extraction" fra banneret
  3. Lim inn tekst, velg API-versjon, språk, og kjør
  4. Se resultater med confidence scores og opinion mining-targets

Power BI

Power BI Desktop kan integrere direkte med Key Phrase Extraction via Power Query custom functions.

Use case: Analyser kundefeedback fra Excel/CSV, visualiser key phrases som word cloud.

Tutorial: Extract key phrases from Power BI

Azure Synapse Analytics / Microsoft Fabric

SynapseML (tidligere MMLSpark) gir native Spark support for Language Services.

Fordeler:

  • Batch processing av DataFrames
  • Auto-authentication i Fabric notebooks (ingen API keys nødvendig)
  • Sømløs integrasjon med lakehouse data

Eksempel (SynapseML for Key Phrases):

from synapse.ml.cognitive.language import AnalyzeText

model = AnalyzeText().setTextCol("text").setKind("KeyPhraseExtraction")
result = model.transform(df).select("text", "keyPhrases")

Copilot Studio

Language Services kan brukes i custom Copilot Studio skills for å analysere brukersentiment i conversations før routing til riktig agent.

Use case: Automatisk eskaler negative sentiment til human agent, neutral til FAQ bot.

Language Services entities kan indekseres i Azure AI Search som facets, noe som muliggjør entity-basert search filtering (f.eks. "finn dokumenter om Microsoft som organisasjon").


Offentlig sektor (Norge)

GDPR og Schrems II

Risiko Mitigering
Data sendes til Azure EU-regioner (Vest-Europa, Nord-Europa) Bruk EU-regioner for Language resource
Potensielle concerns om US Cloud Act Bruk Docker containers on-premises for følsom data
PII i tekst (personnummer, navn, e-post) Anonymiser først, eller bruk PII Detection-feature
Data retention i 24 timer (batch mode) Synkron modus lagrer ikke data (stateless)

AI Act (EU)

Language Services klassifiseres som lav-risiko AI (ikke høyrisiko) så lenge det ikke brukes til:

  • Biometric identification
  • Critical infrastructure
  • Law enforcement (uten human oversight)

Krav:

  • Dokumenter hvordan sentiment/entity detection brukes
  • Vurder bias (trent på hovedsakelig engelske datasett, kan være mindre nøyaktig for norsk)

Forvaltningsloven og transparens

Ved bruk i saksbehandling:

  • Ikke la sentiment score alene avgjøre saker (kun som beslutningsstøtte)
  • Logg alle analyser (hvem, hva, når, resultat) for etterprøvbarhet
  • Informer brukere hvis deres tekst analyseres (f.eks. feedback-forms)

Datasuverenitet

Azure Norway datacenters (Oslo, Stavanger) støtter ikke Language Services per 2026-02. Nærmeste regioner:

  • West Europe (Nederland)
  • North Europe (Irland)

For full datasuverenitet: Bruk Docker containers (Sentiment, Language Detection, Key Phrase, Custom NER) hosted i Norge.


Kostnad og lisensiering

Prismodell (Azure Language)

Language Services bruker pay-per-call modell (per text record).

Tier Pris per 1000 text records Bruksscenario
Free F0 0 NOK (5000 gratis/måned) Testing, POC, lav-volum apps
Standard S Varierer per region (~$12 USD / 1000 records) Produksjon

Viktige detaljer:

  • Maks 5000 tegn per record (større dokumenter må splittes)
  • Opinion Mining inkludert i Standard tier (ingen ekstra kostnad)
  • Batch mode (asynchronous) har samme pris som synchronous
  • Docker containers krever Standard tier (Free F0 støttes ikke)

Kostnadseksempel (norsk offentlig virksomhet)

Scenario: Analyserer 100 000 brukerhenvendelser/måned med sentiment + key phrases (2 API-kall per henvendelse).

Komponent Kostnad (estimat)
200 000 text records × $1.50 / 1000 $300 USD/måned (~3200 NOK)
Azure Language resource (S tier) Ingen fast månedskostnad (kun per-call)
Azure Storage (hvis batch mode) ~$20 USD/måned for 1TB (~210 NOK)
Total ~3400 NOK/måned

Optimaliseringstips

  1. Batch asynkront — Hvis du kan vente 24 timer, bruk asynchronous API (ingen prisforskjell, men enklere infrastruktur)
  2. Filtrer ut tom tekst — Ikke send records uten innhold (koster like mye som reelle records)
  3. Kombiner features i én request — Sentiment + Key Phrases + Entities kan kjøres i én analyze-text call (sparer HTTP-overhead, ikke pris)
  4. Bruk containers for høy-volum — Hvis >1M records/måned, vurder self-hosted containers med Reserved VM Instances

For arkitekten (Cosmo)

Spørsmål å stille kunden

  1. Volum og latency:

    • Hvor mange dokumenter skal analyseres (per dag/måned)?
    • Kreves real-time respons (<500ms) eller er batch OK (24t)?
  2. Språk og multispråklighet:

    • Er all tekst på norsk, eller blandet språk?
    • Trenger dere automatisk språkdeteksjon?
  3. Datakompleksitet:

    • Er tekstene lange (>5000 tegn) eller korte (f.eks. tweets, SMS)?
    • Inneholder teksten sensitive personopplysninger (navn, personnummer)?
  4. Detaljnivå:

    • Trenger dere kun overordnet sentiment, eller må dere vite hva som er positivt/negativt (opinion mining)?
    • Skal entities kobles til eksterne knowledge bases (entity linking)?
  5. Infrastruktur og compliance:

    • Kan data sendes til Azure EU-regioner, eller kreves on-premises?
    • Har dere eksisterende Azure Synapse / Fabric infrastructure?
  6. Integrasjoner:

    • Skal resultatene visualiseres i Power BI, eller bare lagres i database?
    • Brukes det i en eksisterende app (web/mobile), eller ny løsning?
  7. Fremtidig utvidelse:

    • Vil dere senere trenge custom entities (f.eks. organisasjonsspesifikke termer)?
    • Planlegges det translation workflows (Azure Translator integrasjon)?

Fallgruver

Fallgruve Forklaring Mitigering
"Sentiment = sannhet" Sentiment score er en prediktering, ikke en fasit Alltid ha human-in-the-loop for kritiske beslutninger
Overfitting til engelsk Modellen er best på engelsk, kan være mindre presis på norsk Test med representative norske datasett før produksjon
Ignorere PII Key phrases kan inneholde personnavn eller sensitiv info Kjør PII Detection først, eller anonymiser tekst før analyse
Glemme cost caps Per-call pricing kan eskalere ved bugs (infinite loops) Sett Azure Cost Management alerts på Language resource
Forvente perfekt NER NER kan feiltolke domene-spesifikke entities Vurder Custom NER hvis standard entities ikke er presise nok

Anbefalinger per modenhetsnivå

Nivå 1: Exploring (POC, <1000 records/måned)

  • Anbefaling: Free F0 tier + Azure AI Foundry Playground
  • Verktøy: REST API via Postman eller Foundry web UI
  • Fokus: Teste om sentiment/key phrases gir verdi for use case
  • Advarsler: Ikke bygg produksjonsapp på Free tier (5000 records/mnd cap)

Nivå 2: Building (Pilot, 1000100K records/måned)

  • Anbefaling: Standard S tier + SDK (C#/Python) + Azure App Service
  • Verktøy: Azure Language SDK, Application Insights for monitoring
  • Fokus: Real-time integrasjon i app, feilhåndtering, retry-logikk
  • Advarseler: Implementer circuit breaker pattern (unngå API throttling ved 429 errors)

Nivå 3: Scaling (Produksjon, >100K records/måned)

  • Anbefaling: Standard S tier + SynapseML / Fabric + Batch API
  • Verktøy: Azure Synapse Pipelines, Azure Data Lake, Azure AI Search (for entity indexing)
  • Fokus: Batch processing, cost optimization, data governance
  • Advarseler: Vurder Docker containers hvis kostnad >$1000/måned

Nivå 4: Optimizing (Enterprise, >1M records/måned)

  • Anbefaling: Docker containers on Azure Kubernetes Service (AKS) + Custom NER
  • Verktøy: AKS, Azure Monitor, Custom Text Classification (Language Studio)
  • Fokus: Self-hosted inference, custom models for domene-spesifikke entities
  • Advarsler: Container-licensing krever Standard tier — test kostnad mot cloud API

Kilder og verifisering

Microsoft Learn-dokumentasjon (Verified via MCP)

Kategori URL Konfidensnivå
Sentiment Analysis Overview https://learn.microsoft.com/en-us/azure/ai-services/language-service/sentiment-opinion-mining/overview Verified (2026-02)
Sentiment Analysis How-To https://learn.microsoft.com/en-us/azure/ai-services/language-service/sentiment-opinion-mining/how-to/call-api Verified (2026-02)
Key Phrase Extraction How-To https://learn.microsoft.com/en-us/azure/ai-services/language-service/key-phrase-extraction/how-to/call-api Verified (2026-02)
NER Entity Categories https://learn.microsoft.com/en-us/azure/ai-services/language-service/named-entity-recognition/concepts/named-entity-categories Verified (2026-02)
Fabric Text Analytics https://learn.microsoft.com/en-us/fabric/data-science/ai-services/how-to-use-text-analytics Verified (2026-02)
Key Phrase Language Support https://learn.microsoft.com/en-us/azure/ai-services/language-service/key-phrase-extraction/language-support Verified (2026-02)
Sentiment Language Support https://learn.microsoft.com/en-us/azure/ai-services/language-service/sentiment-opinion-mining/language-support Verified (2026-02)
Custom Text Classification https://learn.microsoft.com/en-us/azure/ai-services/language-service/custom-text-classification/overview Verified (2026-02)

Konfidensnivå per seksjon

Seksjon Konfidens Kilde
Introduksjon Verified Microsoft Learn docs (MCP-fetched)
Kjernekomponenter Verified REST API examples + model outputs fra docs
Arkitekturmønstre Verified Fabric tutorial + Synapse docs + SDK samples
Beslutningsveiledning ⚠️ Baseline Best practices (modellkunnskap), ikke eksplisitt dokumentert
Integrasjon med MS-stakken Verified Power BI tutorial + SynapseML docs + Foundry quickstarts
Offentlig sektor (Norge) ⚠️ Baseline GDPR-analyse (modellkunnskap) + Azure datacenter geografi
Kostnad og lisensiering ⚠️ Baseline Generell Azure pricing structure (ikke eksakte NOK-priser hentet)
For arkitekten (Cosmo) ⚠️ Baseline Arkitekturerfaringer (modellkunnskap), ikke dokumentert av Microsoft

Notater:

  • Prisestimater er basert på generell Azure-prisstruktur — alltid sjekk Azure Pricing Calculator for eksakte priser.
  • Norge datacenter-status per 2026-02 — verifiser i Azure portal før arkitekturavgjørelser.
  • Custom NER og Custom Text Classification er separate features med egne prismodeller (ikke dekket detaljert her).