ms-ai-architect/skills/ms-ai-engineering/references/azure-ai-services/language-services-text-analytics.md
Kjell Tore Guttormsen 3a73eeafdc refactor(ms-ai-architect): R13 del 1 — nøytraliser Cosmo-personaen i ref-korpusets headinger, etter å ha rettet en gate som var målt usann to ganger
Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:

1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
   produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
   substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
   `Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
   tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
   kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
   formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
   132 bokføres til R13b/R14.

Tre korreksjoner av premisser som sto i ordren og STATE:
  «ca 320 produkt»   -> 451 (case-sensitivt nett manglet 327 lowercase
                        TOC-ankre + 99 identifikatorer; sann nevner 1 638)
  «169 headinger»    -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
                        internt inkonsistent med sin egen topp-variant (204)
  «417 matcher ingen
   populasjon»       -> 417 er cosmo-headinger utenfor kodefences; briefens
                        nevner var reell hele tiden

Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.

TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.

Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.

Verifisering (alle 7 kriterier fra ordren):
  G1 persona på heading-linjer   401 -> 0
  G2 døde fragmentlenker         1 -> 1 (pre-eksisterende, unntatt)
  G3 produkt-forekomster         451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
  de 3 kun-produkt-filene        byte-identiske
  nettet validert begge veier    injisert persona feller G1; genitiv feller G1;
                                 produkt-heading og de 3 filene passerer
  hele diffen                    802 heading-linjer + 654 TOC-linjer, ANNET = 0
  linjeantall                    728 lagt til = 728 slettet
  suite                          1120/1120 (1097 + 23 nye)
  validate-plugin                250 PASS / 0 FAIL
  stikkprøve                     10 filer, alle 5 skills, inkl. de 3 mest
                                 produkt-tunge (26/20/19) — kun heading+TOC

Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 22:12:28 +02:00

429 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Language Services - Text Analytics for Sentiment and Key Phrases
**Last updated:** 2026-06-19
**Status:** GA (deler avvikles 2029-03-31)
**Type:** reference
**Source:** https://learn.microsoft.com/azure/ai-services/language-service/personally-identifiable-information/overview
> **ADVARSEL — TJENESTER AVVIKLES (2029-03-31):** Sentiment Analysis, Opinion Mining og Custom Text Classification avvikles 31. mars 2029. Migrer til Microsoft Foundry-modeller. PII Detection, Key Phrase Extraction og Language Detection er ikke berørt.
**Category:** Azure AI Services (Foundry Tools)
---
## Innhold
- [Introduksjon](#introduksjon)
- [Kjernekomponenter / Nøkkelegenskaper](#kjernekomponenter--nøkkelegenskaper)
- [Arkitekturmønstre](#arkitekturmønstre)
- [Beslutningsveiledning](#beslutningsveiledning)
- [Integrasjon med Microsoft-stakken](#integrasjon-med-microsoft-stakken)
- [Offentlig sektor (Norge)](#offentlig-sektor-norge)
- [Kostnad og lisensiering](#kostnad-og-lisensiering)
- [For arkitekten](#for-arkitekten)
- [Kilder og verifisering](#kilder-og-verifisering)
## 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 Microsoft 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](https://learn.microsoft.com/en-us/azure/ai-services/language-service/sentiment-opinion-mining/language-support) 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):**
```python
# 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):**
```csharp
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](https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-information/overview)
- **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
### Microsoft 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](https://learn.microsoft.com/en-us/azure/ai-services/language-service/key-phrase-extraction/tutorials/integrate-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):**
```python
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.
### Azure Cognitive Search
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
### 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 + Microsoft 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 | ✅ Documented (2026-02) |
| **Sentiment Analysis How-To** | https://learn.microsoft.com/en-us/azure/ai-services/language-service/sentiment-opinion-mining/how-to/call-api | ✅ Documented (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 | ✅ Documented (2026-02) |
| **NER Entity Categories** | https://learn.microsoft.com/en-us/azure/ai-services/language-service/named-entity-recognition/concepts/named-entity-categories | ✅ Documented (2026-02) |
| **Fabric Text Analytics** | https://learn.microsoft.com/en-us/fabric/data-science/ai-services/how-to-use-text-analytics | ✅ Documented (2026-02) |
| **Key Phrase Language Support** | https://learn.microsoft.com/en-us/azure/ai-services/language-service/key-phrase-extraction/language-support | ✅ Documented (2026-02) |
| **Sentiment Language Support** | https://learn.microsoft.com/en-us/azure/ai-services/language-service/sentiment-opinion-mining/language-support | ✅ Documented (2026-02) |
| **Custom Text Classification** | https://learn.microsoft.com/en-us/azure/ai-services/language-service/custom-text-classification/overview | ✅ Documented (2026-02) |
### Konfidensnivå per seksjon
| Seksjon | Konfidens | Kilde |
|---------|-----------|-------|
| Introduksjon | ✅ Documented | Microsoft Learn docs (MCP-fetched) |
| Kjernekomponenter | ✅ Documented | REST API examples + model outputs fra docs |
| Arkitekturmønstre | ✅ Documented | Fabric tutorial + Synapse docs + SDK samples |
| Beslutningsveiledning | ⚠️ Baseline | Best practices (modellkunnskap), ikke eksplisitt dokumentert |
| Integrasjon med MS-stakken | ✅ Documented | 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](https://azure.microsoft.com/en-us/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).