Up
This commit is contained in:
parent
317012455f
commit
7020c4ba18
@ -184,7 +184,7 @@ Stwórzmy generator, który będzie wczytywał słowa z pliku, dodatkowo:
|
|||||||
line = line.rstrip()
|
line = line.rstrip()
|
||||||
yield '<s>'
|
yield '<s>'
|
||||||
for m in re.finditer(r'[\p{L}0-9\*]+|\p{P}+', line):
|
for m in re.finditer(r'[\p{L}0-9\*]+|\p{P}+', line):
|
||||||
yield m.group(0)
|
yield m.group(0).lower()
|
||||||
yield '</s>'
|
yield '</s>'
|
||||||
|
|
||||||
list(islice(get_words_from_file('opensubtitlesA.pl.txt'), 0, 100))
|
list(islice(get_words_from_file('opensubtitlesA.pl.txt'), 0, 100))
|
||||||
@ -192,7 +192,7 @@ Stwórzmy generator, który będzie wczytywał słowa z pliku, dodatkowo:
|
|||||||
|
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:results:
|
||||||
['<s>', 'Lubisz', 'curry', ',', 'prawda', '?', '</s>', '<s>', 'Nałożę', 'ci', 'więcej', '.', '</s>', '<s>', 'Hey', '!', '</s>', '<s>', 'Smakuje', 'ci', '?', '</s>', '<s>', 'Hey', ',', 'brzydalu', '.', '</s>', '<s>', 'Spójrz', 'na', 'nią', '.', '</s>', '<s>', '-', 'Wariatka', '.', '</s>', '<s>', '-', 'Zadałam', 'ci', 'pytanie', '!', '</s>', '<s>', 'No', ',', 'tak', 'lepiej', '!', '</s>', '<s>', '-', 'Wygląda', 'dobrze', '!', '</s>', '<s>', '-', 'Tak', 'lepiej', '!', '</s>', '<s>', 'Pasuje', 'jej', '.', '</s>', '<s>', '-', 'Hey', '.', '</s>', '<s>', '-', 'Co', 'do', '...?', '</s>', '<s>', 'Co', 'do', 'cholery', 'robisz', '?', '</s>', '<s>', 'Zejdź', 'mi', 'z', 'oczu', ',', 'zdziro', '.', '</s>', '<s>', 'Przestań', 'dokuczać']
|
['<s>', 'lubisz', 'curry', ',', 'prawda', '?', '</s>', '<s>', 'nałożę', 'ci', 'więcej', '.', '</s>', '<s>', 'hey', '!', '</s>', '<s>', 'smakuje', 'ci', '?', '</s>', '<s>', 'hey', ',', 'brzydalu', '.', '</s>', '<s>', 'spójrz', 'na', 'nią', '.', '</s>', '<s>', '-', 'wariatka', '.', '</s>', '<s>', '-', 'zadałam', 'ci', 'pytanie', '!', '</s>', '<s>', 'no', ',', 'tak', 'lepiej', '!', '</s>', '<s>', '-', 'wygląda', 'dobrze', '!', '</s>', '<s>', '-', 'tak', 'lepiej', '!', '</s>', '<s>', 'pasuje', 'jej', '.', '</s>', '<s>', '-', 'hey', '.', '</s>', '<s>', '-', 'co', 'do', '...?', '</s>', '<s>', 'co', 'do', 'cholery', 'robisz', '?', '</s>', '<s>', 'zejdź', 'mi', 'z', 'oczu', ',', 'zdziro', '.', '</s>', '<s>', 'przestań', 'dokuczać']
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
**** Empiryczne wyniki
|
**** Empiryczne wyniki
|
||||||
@ -216,7 +216,7 @@ counterA['taki']
|
|||||||
|
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:results:
|
||||||
42330
|
48113
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
||||||
@ -272,7 +272,7 @@ Policzmy teraz jakiej liczby wystąpień byśmy oczekiwali gdyby użyć wygładz
|
|||||||
|
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:results:
|
||||||
1181065
|
926594
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
||||||
@ -284,16 +284,16 @@ Policzmy teraz jakiej liczby wystąpień byśmy oczekiwali gdyby użyć wygładz
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:results:
|
||||||
liczba tokenów średnia częstość w części B estymacje +1 estymacje +0.01
|
liczba tokenów średnia częstość w części B estymacje +1 estymacje +0.01
|
||||||
0 494664 1.805294 0.991839 0.009999
|
0 388334 1.900495 0.993586 0.009999
|
||||||
1 528998 0.591116 1.983678 1.009917
|
1 403870 0.592770 1.987172 1.009935
|
||||||
2 154689 1.574443 2.975517 2.009835
|
2 117529 1.565809 2.980759 2.009870
|
||||||
3 81398 2.512285 3.967356 3.009752
|
3 62800 2.514268 3.974345 3.009806
|
||||||
4 52899 3.502240 4.959196 4.009670
|
4 40856 3.504944 4.967931 4.009741
|
||||||
5 37917 4.433763 5.951035 5.009588
|
5 29443 4.454098 5.961517 5.009677
|
||||||
6 28921 5.280834 6.942874 6.009506
|
6 22709 5.232023 6.955103 6.009612
|
||||||
7 23267 6.209438 7.934713 7.009423
|
7 18255 6.157929 7.948689 7.009548
|
||||||
8 19014 7.265909 8.926552 8.009341
|
8 15076 7.308039 8.942276 8.009483
|
||||||
9 15849 8.193135 9.918391 9.009259
|
9 12859 8.045649 9.935862 9.009418
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
*** Wygładzanie Gooda-Turinga
|
*** Wygładzanie Gooda-Turinga
|
||||||
@ -320,16 +320,16 @@ $$p(w) = \frac{\# w + 1}{|C|}\frac{N_{r+1}}{N_r}.$$
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:results:
|
||||||
liczba tokenów średnia częstość w części B estymacje +1 Good-Turing
|
liczba tokenów średnia częstość w części B estymacje +1 Good-Turing
|
||||||
0 494664 1.805294 0.991839 1.069409
|
0 388334 1.900495 0.993586 1.040007
|
||||||
1 528998 0.591116 1.983678 0.584838
|
1 403870 0.592770 1.987172 0.582014
|
||||||
2 154689 1.574443 2.975517 1.578613
|
2 117529 1.565809 2.980759 1.603009
|
||||||
3 81398 2.512285 3.967356 2.599523
|
3 62800 2.514268 3.974345 2.602293
|
||||||
4 52899 3.502240 4.959196 3.583905
|
4 40856 3.504944 4.967931 3.603265
|
||||||
5 37917 4.433763 5.951035 4.576470
|
5 29443 4.454098 5.961517 4.627721
|
||||||
6 28921 5.280834 6.942874 5.631513
|
6 22709 5.232023 6.955103 5.627064
|
||||||
7 23267 6.209438 7.934713 6.537671
|
7 18255 6.157929 7.948689 6.606847
|
||||||
8 19014 7.265909 8.926552 7.501893
|
8 15076 7.308039 8.942276 7.676506
|
||||||
9 15849 8.193135 9.918391 8.670579
|
9 12859 8.045649 9.935862 8.557431
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
Wygładzanie metodą Gooda-Turinga, mimo prostoty, daje wyniki zaskakująco zbliżone do rzeczywistych.
|
Wygładzanie metodą Gooda-Turinga, mimo prostoty, daje wyniki zaskakująco zbliżone do rzeczywistych.
|
||||||
@ -414,3 +414,42 @@ $$N_{1+}(\bullet w) = |\{w_j : \# w_jw > 0\}|$$.
|
|||||||
W metodzie Knesera-Neya w następujący sposób estymujemy prawdopodobieństwo unigramu:
|
W metodzie Knesera-Neya w następujący sposób estymujemy prawdopodobieństwo unigramu:
|
||||||
|
|
||||||
$$P(w) = \frac{N_{1+}(\bullet w)}{\sum_{w_j} N_{1+}(\bullet w_j)}.$$
|
$$P(w) = \frac{N_{1+}(\bullet w)}{\sum_{w_j} N_{1+}(\bullet w_j)}.$$
|
||||||
|
|
||||||
|
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
||||||
|
def ngrams(iter, size):
|
||||||
|
ngram = []
|
||||||
|
for item in iter:
|
||||||
|
ngram.append(item)
|
||||||
|
if len(ngram) == size:
|
||||||
|
yield tuple(ngram)
|
||||||
|
ngram = ngram[1:]
|
||||||
|
|
||||||
|
list(ngrams("kotek", 3))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
:results:
|
||||||
|
[('k', 'o', 't'), ('o', 't', 'e'), ('t', 'e', 'k')]
|
||||||
|
:end:
|
||||||
|
|
||||||
|
|
||||||
|
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
||||||
|
histories = { }
|
||||||
|
for prev_token, token in ngrams(get_words_from_file('opensubtitlesA.pl.txt'), 2):
|
||||||
|
histories.setdefault(token, set())
|
||||||
|
histories[token].add(prev_token)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
:results:
|
||||||
|
:end:
|
||||||
|
|
||||||
|
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
||||||
|
len(histories['jork'])
|
||||||
|
len(histories['zielony'])
|
||||||
|
histories['jork']
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
:results:
|
||||||
|
:end:
|
||||||
|
Loading…
Reference in New Issue
Block a user