metody komputerowej analizy stylometrycznej tekstów w jEzyku polskim
prowadzący: dr inż. Tomasz Walkowiak
Maciej Baj
spis treSci
1. Przybliżenie problematyki
2. Atrybuty tekstu
3. Język polski
4. Schemat systemu
5. Proste metryki
6. Histogramy słów
7. Części mowy
8. Klasyfikatory
9. Analizy wyników
10. Działanie systemu
ASPEKT IŻYNIERSKI
Zapoznanie się z narzędziami NLP do języka polskiego (tager POS, wyznaczanie nazw wlasnych, parser zależnościowy). Konstrukjca aplikacji do analizy stylometrycznej.
Subtitle
aspekt badawczy
Opracowanie systemu komputerowej analizy stylometrycznej (np. atrybucja autorstwa) dla tekstów w języku polskim.
Selekcja zbioru cech deskryptywnych opisujących sygnały stylometryczne.
Porównanie efektywności algorytmów klasyfikacji z nauczycielem (np. SVM, Naive Bayes, drzewa decyzyjne)
PrzybliZenie problematyki
Stylometria - metoda analizy dzieła sztuki dla ustalenia statystycznej charakterystyki stylu autora
- Grupowanie tekstów w klasy na podstawie określonych form stylistycznych tekstu
- Mierzenie tekstu określonymi metrykami
- Kwalifikacja próbki tekstu do określonej klasy na podstawie zbioru uczącego
Atrybuty tekstu
- Autor
- Rodzaj (artykuł, wiersz, proza...)
- Epoka
- Płeć autora
- Wiek autora
- Temat (sport, motoryzacja, kuchnia ...)
JEzyk polski
Czasy
Lubi, lubił, będzie lubić, polubi
Odmiany
Mianownik, dopełniacz, celownik, biernik, nadrzędnik, wołacz
Rodzaje
Wszedłem, weszłam, weszło
schemat systemu
METRYKI LICZBOWE
-
- średnia długość słowa
- średnia długość zdania
- współczynnik częstości znaków specjalnych
- współczynnik najrzadziej używanych słów
METRYKI LICZBOWE
"average_word_length" : 5.8539325842696632,
"name" : "sienkiewicz",
"type_token_ratio" : 0.8202247191011236,
"average_sentence_length" : 22.2500000000000000,
"hapax_legomana_ratio" : 0.7415730337078652
NARZEDZIA DO ANALIZY
morgologicznej i skladniowej
NARZEDZIA DO ANALIZY
FLEKSYJNEJ I MORFOSYNTAKTYCZNEJ
def produce_xml_with_morphological_data(text_file_path, output_file_path):
os.system("~/apps/wcrft/wcrft/wcrft.py
-d ~/apps/model_nkjp10_wcrft/ ~/apps/wcrft/config/nkjp.ini -i txt " +
text_file_path + " -O " + output_file_path)
PLIK WYNIKOWY WCRFT
<chunkList>
<chunk type="s">
<tok>
<orth>Czas</orth>
<lex disamb="1"><base>czas</base><ctag>subst:sg:nom:m3</ctag></lex>
</tok>
<tok>
<orth>był</orth>
<lex disamb="1"><base>być</base><ctag>praet:sg:m3:imperf</ctag></lex>
</tok>
<tok>
<orth>wiosenny</orth>
<lex disamb="1"><base>wiosenny</base><ctag>adj:sg:nom:m3:pos</ctag></lex>
</tok>
<tok>
<orth>o</orth>
<lex disamb="1"><base>o</base><ctag>prep:loc</ctag></lex>
</tok>
<tok>
<orth>świtaniu</orth>
<lex disamb="1"><base>świtanie</base><ctag>subst:sg:loc:n</ctag></lex>
</tok>
<ns/>
Histogramy sLów
- histogram binarny
- na podstawie słownika
- na podstawie częstości wystąpień
NAJCZeSTSZE SLOWA
"base_words" : [
{
"i" : 7
},
{
"w" : 4
},
{
"na" : 3
},
{
"się" : 3
},
{
"rok" : 2
},
{
"co" : 2
},
{
"być" : 2
}
....
CZesCI MOWY
"parts_of_speech_frequencies" : {
"adv" : 0.0194174757281553,
"praet" : 0.0776699029126214,
"imps" : 0.0291262135922330,
"pred" : 0.0097087378640777,
"interp" : 0.1067961165048544,
"subst" : 0.3398058252427185,
"qub" : 0.0388349514563107,
"comp" : 0.0291262135922330,
"conj" : 0.0873786407766990,
"adj" : 0.1359223300970874,
"prep" : 0.0970873786407767,
"fin" : 0.0291262135922330
},
PREDYKCJA WYNIKU
Jakie wagi nadać parametrom tekstu?
- cechy numeryczne
- częstości słów
- częstości używania konkretnych części mowy
Klasyfikatory
heurystyczne przypisanie próbki do pewnej klasy
- SVM
- Naive Bayes
- drzewa decyzyjne
KLASYFIKACJA METODA NAIVE BAYES
from sklearn import naive_bayes
trainingSet = [reymontCharacteristics, sienkiewiczCharacteristics]
gaussian_naive_bayes = naive_bayes.GaussianNB()
gaussian_naive_bayes.fit(trainingSet, ['reymont', 'sienkiewicz'])
print gaussian_naive_bayes.predict(inputCharacteristics)
klasyfikatory
Porównanie skuteczności klasyfikatorów
Porównanie skuteczności klasyfikatorów z prostymi metrykami
dane
Koleracja zmiany skuteczności ze wzrostem:
- zbioru uczącego
- rozmiaru tekstów zbioru uczącego
- rozmiaru tekstu próbki
Analiza wyników
Działanie systemu
bibliografia
Scikit- http://scikit-learn.org/stable/supervised_learning.html#supervised-learning
WCRFT- http://nlp.pwr.wroc.pl/redmine/projects/wcrft/wiki
partial-fit- http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB.partial_fit
Dziekuje
metody komputerowej analizy stylometrycznej tekstów w języku polskim
By Maciej Baj
metody komputerowej analizy stylometrycznej tekstów w języku polskim
- 622