Statistisk tekstanalyse.

Fuldført

Bemærk

Se fanen Tekst og billeder for flere detaljer!

Efter at have opdelt et tekstkorpus i dets bestanddele og forberedt dem til analyse; Der findes nogle almindelige statistiske analyseteknikker, du kan bruge til at udlede betydning ud fra teksten.

Frekvensanalyse

Måske er den mest oplagte måde at fastslå de emner, der diskuteres i et dokument, blot at tælle, hvor mange gange hver normaliseret token optræder. Antagelsen er, at termer, der bruges oftere i dokumentet, kan hjælpe med at identificere de emner eller temaer, der diskuteres. Kort sagt, hvis du kan finde de mest almindeligt brugte ord i et givent dokument, kan du ofte få en god idé om, hvad dokumentet handler om.

For eksempel, betragt følgende tekst:

AI in modern business delivers transformative benefits by enhancing efficiency, decision-making, and customer experiences. Businesses can leverage AI to automate repetitive tasks, freeing employees to focus on strategic work, while predictive analytics and machine learning models enable data-driven decisions that improve accuracy and speed. AI-powered tools like Copilot streamline workflows across marketing, finance, and operations, reducing costs and boosting productivity. Additionally, intelligent applications personalize customer interactions, driving engagement and loyalty. By embedding AI into core processes, businesses benefit from the ability to innovate faster, adapt to market changes, and maintain a competitive edge in an increasingly digital economy.

Efter tokenisering, normalisering og påføring af lemmatisering af teksten kan hyppigheden af hvert udtryk tælles og tabelleres; hvilket giver følgende delvise resultater:

Vilkår Hyppighed
ai 4
business 3
benefit 2
customer 2
decision 2
market 2
ability 1
accuracy 1
... ...

Ud fra disse resultater indikerer de hyppigst forekommende termer, at teksten diskuterer AI og dens forretningsmæssige fordele.

Termfrekvens - Invers dokumentfrekvens (TF-IDF)

Simpel frekvensanalyse, hvor du tæller antallet af forekomster af hvert token, kan være en effektiv måde at analysere et enkelt dokument på, men når du skal differentiere på tværs af flere dokumenter inden for samme korpus, har du brug for en måde at afgøre, hvilke tokens der er mest relevante i hvert enkelt dokument.

For eksempel, betragt følgende to teksteksempler:

Eksempel A:

Microsoft Copilot Studio enables declarative AI agent creation using natural language, prompts, and templates. With this declarative approach, an AI agent is configured rather than programmed: makers define intents, actions, and data connections, then publish the agent to channels. Microsoft Copilot Studio simplifies agent orchestration, governance, and lifecycles so an AI agent can be iterated quickly. Using Microsoft Copilot Studio helps modern businesses deploy Microsoft AI agent solutions fast.

Eksempel B:

Microsoft Foundry enables code‑based AI agent development with SDKs and APIs. Developers write code to implement agent conversations, tool calling, state management, and custom pipelines. In Microsoft Foundry, engineers can use Python or Microsoft C#, integrate Microsoft AI services, and manage CI/CD to deploy the AI agent. This code-first development model supports extensibility and performance while building Microsoft Foundry AI agent applications.

De tre mest hyppige termer i disse prøver vises i følgende tabeller:

Eksempel A:

Vilkår Hyppighed
agent 6
ai 4
microsoft 4

Eksempel B:

Vilkår Hyppighed
microsoft 5
agent 4
ai 4

Som du kan se på resultaterne, er de mest almindelige ord i begge prøver de samme ("agent", "Microsoft", og "AI"). Det fortæller os, at begge dokumenter dækker et lignende overordnet tema, men hjælper os ikke med at skelne mellem de enkelte dokumenter. At undersøge antallet af mindre hyppigt anvendte termer kan hjælpe, men du kan nemt forestille dig en analyse af et korpus baseret på Microsofts AI-dokumentation, hvilket ville resultere i et stort antal termer, der er fælles for alle dokumenter; hvilket gør det svært at bestemme de specifikke emner, der dækkes i hvert dokument.

For at løse dette problem er Term Frequency - Inverse Document Frequency (TF-IDF) en teknik, der beregner scores baseret på, hvor ofte et ord eller et udtryk optræder i ét dokument sammenlignet med dets mere generelle frekvens på tværs af hele samlingen af dokumenter. Ved hjælp af denne teknik antages en høj grad af relevans for ord, der ofte vises i et bestemt dokument, men relativt sjældent på tværs af en lang række andre dokumenter. For at beregne TF-IDF for termer i et individuelt dokument kan du bruge følgende tretrinsproces:

  1. Beregn termfrekvens (TF): Dette er simpelthen, hvor mange gange et ord optræder i et dokument. For eksempel, hvis ordet "agent" optræder 6 gange i et dokument, så tf(agent) = 6.

  2. Beregn Inverse Document Frequency (IDF): Dette tjekker, hvor almindeligt eller sjældent et ord er på tværs af alle dokumenter. Hvis et ord optræder i hvert dokument, er det ikke specielt. Formlen, der bruges til at beregne IDF, er idf(t) = log(N / df(t)) (hvor N er det samlede antal dokumenter og df(t) er antallet af dokumenter, der indeholder ordet t)

  3. Kombiner dem for at beregne TF-IDF: Gang TF og IDF for at få scoren: tfidf(t, d) = tf(t, d) * log(N / df(t))

En høj TF-IDF-score indikerer, at et ord ofte optræder i ét dokument, men sjældent i andre. En lav score indikerer, at ordet er almindeligt i mange dokumenter. I to prøver om AI-agenter, fordi , , og "agent" optræder i begge prøver (N = 2, df(t) = 2), er log(2/2) = 0deres IDF , så de har ingen diskriminerende vægt i TF-IDF. "Microsoft""AI" De tre øverste TF-IDF resultater for prøverne er:

Eksempel A:

Vilkår TF-IDF
copilot 2.0794
studio 2.0794
declarative 1.3863

Eksempel B:

Vilkår TF-IDF
code 2.0794
develop 2.0794
foundry 2.0794

Ud fra disse resultater er det tydeligere, at prøve A handler om deklarativ agentoprettelse med Copilot Studio, mens prøve B handler om kodebaseret agentudvikling med Microsoft Foundry.

"Pose-af-ord" maskinlæringsteknikker

Pose-af-ord er navnet på en feature-ekstraktionsteknik, der repræsenterer teksttokens som en vektor af ordfrekvenser eller forekomster, uden at tage hensyn til grammatik og ordstilling. Denne repræsentation bliver input til maskinlæringsalgoritmer som Naive Bayes, en probabilistisk klassifikator, der anvender Bayes' sætning til at forudsige den sandsynlige klasse af et dokument baseret på ordfrekvens.

For eksempel kan du bruge denne teknik til at træne en maskinlæringsmodel, der udfører spamfiltrering af e-mails. Ordene "miracle cure", "lose weight fast", og '"anti-aging" kan optræde oftere i spam-mails om tvivlsomme sundhedsprodukter end i dine almindelige e-mails, og en trænet model kan markere beskeder med disse ord som potentiel spam.

Du kan implementere sentimentanalyse ved at bruge samme metode til at klassificere tekst efter følelsesmæssig tone. Ordposen giver funktionerne, og modellen bruger disse funktioner til at estimere sandsynligheder og tildele sentiment-etiketter som "positiv" eller "negativ".

TextRank

TextRank er en uovervåget grafbaseret algoritme, der modellerer tekst som et netværk af forbundne noder. For eksempel kan hver sætning i et dokument betragtes som en node, og forbindelserne (kanterne) mellem dem scores baseret på ligheden af de ord, de indeholder. TextRank bruges ofte til at opsummere tekst baseret på at identificere et delsæt af sætninger i et dokument, der bedst repræsenterer dets overordnede emne.

TextRank-algoritmen anvender samme princip som Googles PageRank-algoritme (som rangerer websider baseret på links mellem dem) på tekst. Hovedideen er, at en sætning er vigtig, hvis den ligner mange andre vigtige sætninger. Algoritmen gennemfører følgende trin:

  1. Byg en graf: Hver sætning bliver en node, og kanter, der forbinder dem, vægtes efter lighed (ofte målt ved hjælp af ordoverlap eller cosinuslighed mellem sætningsvektorer).

  2. Beregn rangeringer iterativt: Hver nodes score beregnes ud fra scorerne for de tilsluttede noder. Formlen er: (hvor d er en dæmpningsfaktor, typisk 0,85, wⱼᵢ er vægten af kanten fra sætning j til sætning i, og summen itererer over alle sætninger forbundet med i). TextRank(Sᵢ) = (1-d) + d * Σ(wⱼᵢ / Σwⱼₖ) * TextRank(Sⱼ)

  3. Uddrag top-rangerede sætninger: Efter konvergens vælges sætningerne med de højeste scorer som resumé.

For eksempel, overvej følgende dokument om cloud computing:

Cloud computing provides on-demand access to computing resources. Computing resources include servers, storage, and networking. Azure is Microsoft's cloud computing platform. Organizations use cloud platforms to reduce infrastructure costs. Cloud computing enables scalability and flexibility.

For at generere et resumé af dette dokument begynder TextRank-processen med at opdele dokumentet i sætninger:

  1. Cloud computing provides on-demand access to computing resources.
  2. Computing resources include servers, storage, and networking.
  3. Azure is Microsoft's cloud computing platform.
  4. Organizations use cloud platforms to reduce infrastructure costs.
  5. Cloud computing enables scalability and flexibility.

Dernæst skabes kanter mellem sætninger med vægte baseret på lighed (ordoverlap). For dette eksempel kan kantvægtene være:

  • Sætning 1 <-> Sætning 2: 0,5 (andele "computing resources")
  • Sætning 1 <-> Sætning 3: 0,6 (andele "cloud computing")
  • Sætning 1 <-> Sætning 4: 0,2 (andele "cloud")
  • Sætning 1 <-> Sætning 5: 0,7 (andele "cloud computing")
  • Sætning 2 <-> Sætning 3: 0,2 (begrænset overlap)
  • Sætning 2 <-> Sætning 4: 0,1 (begrænset overlap)
  • Sætning 2 <-> Sætning 5: 0,1 (andele "computing")
  • Sætning 3 <-> Sætning 4: 0,5 (andele "cloud platforms")
  • Sætning 3 <-> Sætning 5: 0,4 (andele "cloud computing")
  • Sætning 4 <-> Sætning 5: 0,3 (begrænset overlap)

Diagram over sammenhængende sætningsnoder.

Efter iterativ beregning af TextRank-scorer ved hjælp af disse vægte, kan sætningerne 1, 3 og 5 opnå de højeste scorer, fordi de forbinder godt med andre sætninger gennem fælles terminologi og begreber. Disse sætninger ville blive udvalgt for at danne et kortfattet resumé: "Cloud computing provides on-demand access to computing resources. Azure is Microsoft's cloud computing platform. Cloud computing enables scalability and flexibility."

Bemærk

At generere et dokumentresumé ved at vælge de mest relevante sætninger er en form for ekstraktiv opsummering. I denne tilgang genereres der ingen ny tekst – resuméet består af et delmængde af den oprindelige tekst. Nyere udviklinger inden for semantisk modellering muliggør også abstrakt opsummering, hvor nyt sprog, der opsummerer nøgletemaerne i kildedokumentet, genereres.

TextRank kan også anvendes på ordniveau til nøgleordsudtrækning, hvor ord (i stedet for sætninger) bliver til noder, og kanter repræsenterer samforekomst inden for et fast vindue. De højest rangerede ord udtrækkes som nøgletermer, der repræsenterer dokumentets hovedemner.