Analiză statistică a textului.

Finalizat

Notă

Consultați fila Text și imagini pentru mai multe detalii!

După ce a descompus un corpus de text în tokenurile sale componente și le-a pregătit pentru analiză; Există câteva tehnici comune de analiză statistică pe care le poți folosi pentru a deduce sensul din text.

Analiza frecvenței

Poate cea mai evidentă modalitate de a stabili subiectele discutate într-un document este pur și simplu să numeri de câte ori apare fiecare token normalizat. Presupunerea este că termenii folosiți mai frecvent în document pot ajuta la identificarea subiectelor sau temelor discutate. Pe scurt, dacă poți determina cele mai frecvent folosite cuvinte într-un anumit document, de multe ori poți obține o idee clară despre ce este acel document.

De exemplu, considerați următorul text:

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.

După tokenizarea, normalizarea și aplicarea lemmatizării textului, frecvența fiecărui termen poate fi numărată și tabelată; A produs următoarele rezultate parțiale:

Termen Frecvență
ai 4
business 3
benefit 2
customer 2
decision 2
market 2
ability 1
accuracy 1
... ...

Din aceste rezultate, termenii cei mai frecvent apăruți indică faptul că textul discută despre AI și beneficiile sale de afaceri.

Frecvența termenului - Frecvența inversă a documentului (TF-IDF)

O analiză simplă a frecvenței, în care numeri numărul de apariții ale fiecărui token, poate fi o metodă eficientă de a analiza un singur document, dar când trebuie să diferențiezi între mai multe documente din același corpus, ai nevoie de o modalitate de a determina care tokenuri sunt cele mai relevante în fiecare document individual.

De exemplu, considerați următoarele două exemple de text:

Exemplul 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.

Exemplul 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.

Cei trei termeni cei mai frecvenți din aceste eșantioane sunt prezentați în tabelele următoare:

Exemplul A:

Termen Frecvență
agent 6
ai 4
microsoft 4

Exemplul B:

Termen Frecvență
microsoft 5
agent 4
ai 4

După cum puteți vedea din rezultate, cele mai comune cuvinte din ambele eșantioane sunt aceleași ("agent", "Microsoft", și "AI"). Acest lucru ne arată că ambele documente acoperă o temă generală similară, dar nu ne ajută să facem diferența între documentele individuale. Examinarea numărului de termeni mai puțin utilizați ar putea ajuta, dar îți poți imagina ușor o analiză a unui corpus bazată pe documentația AI a Microsoft, ceea ce ar duce la un număr mare de termeni comuni în toate documentele; ceea ce face dificilă determinarea subiectelor specifice acoperite în fiecare document.

Pentru a rezolva această problemă, Frecvența Termenului - Frecvența Inversă a Documentului (TF-IDF) este o tehnică care calculează scorurile în funcție de cât de des apare un cuvânt sau termen într-un document comparativ cu frecvența sa generală pe întreaga colecție de documente. Utilizând această tehnică, se presupune un grad ridicat de relevanță pentru cuvintele care apar frecvent într-un anumit document, dar relativ rar într-o gamă largă de alte documente. Pentru a calcula TF-IDF pentru termeni într-un document individual, poți folosi următorul proces în trei pași:

  1. Calculează frecvența termenului (TF): Aceasta este pur și simplu de câte ori apare un cuvânt într-un document. De exemplu, dacă cuvântul "agent" apare de 6 ori într-un document, atunci tf(agent) = 6.

  2. Calcularea Frecvății Inverse a Documentelor (IDF): Aceasta verifică cât de comun sau rar este un cuvânt în toate documentele. Dacă apare un cuvânt în fiecare document, nu este ceva special. Formula folosită pentru a calcula IDF este idf(t) = log(N / df(t)) (unde N este numărul total de documente și df(t) este numărul de documente care conțin cuvântul t)

  3. Combinați-le pentru a calcula TF-IDF: Multiplicați TF și IDF pentru a obține scorul: tfidf(t, d) = tf(t, d) * log(N / df(t))

Un scor TF-IDF ridicat indică faptul că un cuvânt apare frecvent într-un document, dar rar în altele. Un scor scăzut indică faptul că acest cuvânt este comun în multe documente. În două eșantioane despre agenții AI, deoarece "AI", , și "agent" apar în ambele eșantioane (N = 2, df(t) = 2), IDF-ul lor este log(2/2) = 0, deci nu au o greutate discriminatorie în TF-IDF"Microsoft". Primele trei rezultate TF-IDF pentru eșantioane sunt:

Exemplul A:

Termen TF-IDF
copilot 2.0794
studio 2.0794
declarative 1.3863

Exemplul B:

Termen TF-IDF
code 2.0794
develop 2.0794
foundry 2.0794

Din aceste rezultate, este mai clar că exemplul A este despre crearea declarativă a agenților cu Copilot Studio, în timp ce exemplul B este despre dezvoltarea agenților bazate pe cod cu Microsoft Foundry.

Tehnici de învățare automată "sacul de cuvinte"

Bag-of-words este denumirea dată unei tehnici de extragere a caracteristicilor care reprezintă jetoanele de text ca un vector al frecvențelor sau aparițiilor cuvintelor, ignorând gramatica și ordinea cuvintelor. Această reprezentare devine intrarea pentru algoritmi de învățare automată precum Naive Bayes, un clasificator probabilistic care aplică teorema lui Bayes pentru a prezice clasa probabilă a unui document pe baza frecvenței cuvintelor.

De exemplu, ai putea folosi această tehnică pentru a antrena un model de învățare automată care să filtreze spam-ul emailului. Cuvintele "miracle cure", "lose weight fast", și "anti-îmbătrânire" pot apărea mai frecvent în emailurile spam despre produse de sănătate dubioase decât în emailurile obișnuite, iar un model antrenat ar putea marca mesajele care conțin aceste cuvinte ca potențial spam.

Poți implementa analiza sentimentului folosind aceeași metodă pentru a clasifica textul după tonul emoțional. Sacul de cuvinte oferă caracteristicile, iar modelul le folosește pentru a estima probabilitățile și a atribui etichete de sentiment precum "pozitiv" sau "negativ".

TextRank

TextRank este un algoritm nesupravegheat bazat pe grafuri care modelează textul ca o rețea de noduri conectate. De exemplu, fiecare propoziție dintr-un document ar putea fi considerată un nod, iar conexiunile (muchii) dintre ele sunt notate în funcție de asemănarea cuvintelor pe care le conțin. TextRank este folosit frecvent pentru a rezuma textul pe baza identificării unui subset de propoziții dintr-un document care reprezintă cel mai bine subiectul său general.

Algoritmul TextRank aplică același principiu ca algoritmul PageRank al Google (care clasifică paginile web pe baza legăturilor dintre ele) textului. Ideea cheie este că o propoziție este importantă dacă este similară cu multe alte propoziții importante. Algoritmul funcționează prin următorii pași:

  1. Construiește un graf: Fiecare propoziție devine un nod, iar muchiile care le conectează sunt ponderate prin similaritate (adesea măsurată folosind suprapunerea cuvintelor sau similaritatea cosinus între vectorii de propoziție).

  2. Calculați rangurile iterativ: Scorul fiecărui nod este calculat pe baza scorurilor nodurilor conectate la el. Formula este: TextRank(Sᵢ) = (1-d) + d * Σ(wⱼᵢ / Σwⱼₖ) * TextRank(Sⱼ) (unde d este un factor de amortizare, de obicei 0,85, wⱼᵢ este greutatea muchiei de la o propoziție j la ialta , iar suma se itera peste toate propozițiile legate de i).

  3. Extrage propozițiile de top clasate: După convergență, propozițiile cu cele mai mari scoruri sunt selectate ca rezumat.

De exemplu, luați în considerare următorul document despre 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.

Pentru a genera un rezumat al acestui document, procesul TextRank începe prin împărțirea acestui document în propoziții:

  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.

Apoi, se creează muchii între propoziții cu ponderi bazate pe similaritate (suprapunerea cuvintelor). Pentru acest exemplu, greutățile muchii ar putea fi:

  • Sentința 1 <-> Propoziția 2: 0,5 (cote "computing resources")
  • Sentința 1 <-> Propoziția 3: 0,6 (acțiuni "cloud computing")
  • Sentința 1 <-> Propoziția 4: 0,2 (acțiuni "cloud")
  • Sentința 1 <-> Propoziția 5: 0,7 (acțiuni "cloud computing")
  • Propoziția 2 <-> Propoziția 3: 0.2 (suprapunere limitată)
  • Propoziția 2 <-> Propoziția 4: 0.1 (suprapunere limitată)
  • Sentința 2 <-> Propoziția 5: 0,1 (partajează "computing")
  • Sentința 3 <-> Propoziția 4: 0,5 (acțiuni "cloud platforms")
  • Sentința 3 <-> Propoziția 5: 0,4 (acțiuni "cloud computing")
  • Propoziția 4 <-> Propoziția 5: 0,3 (suprapunere limitată)

Diagramă a nodurilor de propoziție conectate.

După calcularea ierativ a scorurilor TextRank folosind aceste ponderi, propozițiile 1, 3 și 5 pot primi cele mai mari scoruri deoarece se leagă bine de alte propoziții prin terminologie și concepte comune. Aceste propoziții erau selectate pentru a forma un rezumat concis: "Cloud computing provides on-demand access to computing resources. Azure is Microsoft's cloud computing platform. Cloud computing enables scalability and flexibility."

Notă

Generarea unui rezumat al documentului prin selectarea celor mai relevante propoziții este o formă de sumar extractiv . În această abordare, nu se generează niciun text nou – rezumatul constă dintr-un subset al textului original. Dezvoltările mai recente în modelarea semantică permit, de asemenea, rezumatul abstract , în care se generează un limbaj nou care rezumă temele cheie ale documentului sursă.

TextRank poate fi aplicat și la nivel de cuvânt pentru extragerea cuvintelor cheie, unde cuvintele (mai degrabă decât propozițiile) devin noduri, iar muchiile reprezintă co-apariția într-o fereastră fixă. Cele mai bine cotate cuvinte sunt extrase ca termeni-cheie care reprezintă principalele subiecte ale documentului.