jmalos jmalos
67
BLOG

Macierz podobieństwa, czyli jak ujawniam "powielanie myśli"

jmalos jmalos Technologie Obserwuj notkę 2

Problemy powielania i  zniekształcania informacji to temat kilku moich ostatnich blogów.

W BLOG1  "Excel, SQL, ORB, czyli wielka niemoc w odwzorowaniu rzeczywistości" koncentrowałem się się na obiektowym odwzorowaniu rzeczywistości. Odwzorowanie  obiektowe wymaga całkowitej zmiany myślenia o rzeczywistości  i jest wyzwaniem na dziesięciolecia, stąd trudno oczekiwać szybkich wyników. Inną  łatwiejszą opcją ograniczenia zniekształcania  informacji (choć zdecydowanie mniej  skuteczną)   jest "osadzenie" tej informacji w danych liczbowych.  Takiej metodologi porządkowania danych poświęcony jest  BLOG2 „Niebezpieczne zabawy z tekstem”  w którym naszkicowane trzy scenariusze przetwarzania tekstu: od czystego potoku słów, przez prosty model liczbowy, aż po pełne powiązanie tekstu z tabelą zdarzeń. W blogu 2 starałem się wykazać, że tylko tekst spleciony z ustrukturyzowanymi danymi może zachować wierność faktom.

Niezależnie od stopnia powiązania tekstu z danymi, pogłębia się jednak inna współczesna choroba przekazu informacji   – nadmiarowość informacji. Taką nadmiarowość, nawet w ramach jednego tekstu, trudno jest ocenić obiektywnie „na oko”; niezbędne są do tego dedykowane narzędzia.
Od dłuższego czasu szukam sposobów na uporządkowanie informacji i usuwanie z komunikacji tego, co nie wnosi nic nowego. W tym artykule pokazuję własne narzędzie, które pomaga zmierzyć „powielanie myśli” w tekście – nie na wyczucie, lecz w sposób liczbowy i obiektywny.

Metoda analizy 

Do oceny liczbowej nadmiarowości tekstu wykorzystuję  biblioteki Python i narzędzia  ekosystemu Hugging Face.
Etap 1 Podział  tekstu na zdania

with open("polish.pickle", "rb") as f:
    tokenizer = pickle.load(f)
sentences = tokenizer.tokenize(text1)    #  w drugiej iteracji  text2  


Etap 2 Wektoryzacja semantyczna  (narzędzia ekosystemu Hugging Face)
model = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
embeddings = model.encode(sentences, normalize_embeddings=True)


Etap 3 Macierz podobieństwa pomiędzy zdaniami
sim_matrix = cosine_similarity(embeddings)

Etap 4 Obliczanie średniego podobieństwa dla każdego zdania 

threshold = 0.31  # przykładowy próg uznania zdania za redundantne
redundant_count = 0
for i in range(len(sentences)):
    avg_sim = (np.sum(sim_matrix[i]) - 1) / (len(sentences) - 1) 
    if avg_sim > threshold:
        redundant_count += 1


Etap 5 Prezentacja graficzna macierzy podobieństwa pomiędzy zdaniami (mapa ciepła, heatmap)

plt.figure(figsize=(8, 6))
sns.heatmap(sim_matrix, annot=True, fmt=".2f", cmap="YlGnBu")
plt.title("Macierz podobieństwa między zdaniami")
plt.xlabel("Zdania")
plt.ylabel("Zdania")
plt.tight_layout()
plt.savefig("heatmap.png")  # zapis do pliku


Przykład 1 - Analiza tekstu obietnic wyborczych(19 zdań)

0- Drodzy Rodacy, nasz rząd nie ustaje w wysiłkach, aby konsekwentnie realizować ambitny program, który obiecaliśmy w kampanii.
1- Podwyższenie kwoty wolnej od podatku do 60 tys. zł to priorytet, który wkrótce stanie się faktem, bo Polacy zasługują na więcej w swoich portfelach.
2- Likwidacja podatku Belki już jest procedowana – dzięki temu każda złotówka oszczędności i inwestycji będzie pracowała tylko dla Was, a nie dla fiskusa.
3- Rozpoczynamy także proces wygaszania Funduszu Kościelnego, co uczyni finanse publiczne bardziej przejrzystymi niż kiedykolwiek wcześniej.
4- W zakresie reformy sądownictwa przygotowaliśmy rozwiązania, które przywrócą pełną praworządność i zaufanie obywateli do instytucji państwa.
5- Mamy świadomość, że Polacy nie chcą czekać ani chwili dłużej – dlatego z podwojoną energią przyspieszamy prace legislacyjne.
6- To są zmiany, które zbliżają nas do nowoczesnej, europejskiej Polski.
7- Naszym celem jest Polska silna, sprawiedliwa i nowoczesna.
8- Gwarantujemy, że obietnice wyborcze to nie puste słowa, lecz konkretne działania, które przynoszą efekty.
9- Nigdy wcześniej Polska nie miała rządu, który tak skutecznie i odważnie zmierzał do spełnienia społecznych oczekiwań.Kwota wolna od podatku 60 tys. zł to symbol sprawiedliwości podatkowej, który wdrażamy z determinacją.
10- Podatek Belki odchodzi do historii, aby Polacy mogli wreszcie cieszyć się owocami własnej pracy i przedsiębiorczości.
11- Fundusz Kościelny odchodzi w przeszłość – rząd Tuska dotrzymuje słowa i wprowadza przełomową przejrzystość w finansach publicznych.
12- Reforma sądownictwa to nie tylko projekt – to wielka zmiana cywilizacyjna, która przywróci wiarę w prawo i sprawiedliwość społeczną.
13- Nikt nie zrobił dla praworządności tyle w tak krótkim czasie.
14- Nasze tempo jest bezprecedensowe, a konsekwencja w działaniu budzi szacunek nawet w Europie.
15- Dziś możemy z dumą powiedzieć: zmieniamy Polskę na lepsze, krok po kroku, dzień po dniu.
16- Polacy mogą być spokojni – obietnice nie są tylko spełniane, one stają się częścią fundamentów silnego państwa.
17 Każda decyzja, każdy projekt ustawowy to dowód naszej wiarygodności i odpowiedzialności za przyszłość Polski.
18- Idziemy do przodu i nie zatrzymamy się, aż wszystkie deklaracje staną się rzeczywistością.


Co pokazuje mapa podobieństw zdań (heatmap)?.  Każde zdanie z tekstu porównane jest ze wszystkimi innymi zdaniami. Kolor pola oznacza poziom podobieństwa – im ciemniejszy, tym bardziej zdania się powtarzają. Jeśli widzimy dużo ciemnych pól poza przekątną, to znaczy, że tekst jest przegadany i powiela te same myśli.

image

W tekście nr 1 występuje bardzo  dużo powtórzeń. Obietnice wyborcze są więc 'bardzo  mętne'.

Dla przykładu zdania 15 i 6  pokrywają się informacyjnie w  80% (na przecięciu  kolumn 16 i 6 wyświetlana jest cyfra 0.80)

zdanie 15- Dziś możemy z dumą powiedzieć: zmieniamy Polskę na lepsze, krok po kroku, dzień po dniu.

zdanie 6- To są zmiany, które zbliżają nas do nowoczesnej, europejskiej Polski.


Przykład 2 - Krótka relacja sportowa (4 zdania)

0- Wczoraj odbył się mecz piłki nożnej Polska Niemcy, wynik 5 do 3.

1- Polska strzeliła 5 goli.

2 - Niemcy wpuścili 3 gole.

3 - Tak więc polska wygrała z Niemcami dwoma bramkami.image

W tekście nr 2 występują same  powtórzenia. Do zrelacjonowania wydarzenia wystarczyłoby tylko jedno zdanie zamiast 4 zdań.


Wnioski końcowe

1/ Analiza macierzy podobieństwa zdań ujawnia powszechny defekt komunikacyjny: znaczna część tekstów tworzonych w działalności naukowej, politycznej i edukacyjnej cechuje się nadmierną redundancją i wtórnością treści.

2/ Średni współczynnik podobieństwa zdań, przekraczający wartość progową X, można uznać za miernik pustosłowia i brak klarowności myśli. Dokumenty takie są nawet w przypadku kiedy posiadają jakąś wartość merytoryczną, są szkodliwe dla procesów decyzyjnych i poznawczych.

3/ Wnioski grantowe, plany rozwojowe, opisy projektów i sprawozdania polityczne, których średni współczynnik podobieństwa przekracza określony próg X, powinny być automatycznie odrzucane przez algorytmy weryfikujące, jako teksty przegadane i bezwartościowe.

4/ Oczyszczenie procesów z tekstów wtórnych i zniekształcających informację pozwoli przywrócić przejrzystość komunikacji, usprawnić procesy decyzyjne, zaoszczędzić środki publiczne i ograniczyć chaos informacyjny.

5/ Macierz podobieństwa zdań powinna stać się podstawową miarą jakości treści tekstowych – jako obiektywne i możliwe do zautomatyzowania  narzędzie oceny klarowności przekazu, a nie zatruwania przestrzeni informacyjnej nadmiarową treścią.




jmalos
O mnie jmalos

Nowości od blogera

Komentarze

Pokaż komentarze (2)

Inne tematy w dziale Technologie