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()
|
||||
yield '<s>'
|
||||
for m in re.finditer(r'[\p{L}0-9\*]+|\p{P}+', line):
|
||||
yield m.group(0)
|
||||
yield m.group(0).lower()
|
||||
yield '</s>'
|
||||
|
||||
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:
|
||||
['<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:
|
||||
|
||||
**** Empiryczne wyniki
|
||||
@ -216,7 +216,7 @@ counterA['taki']
|
||||
|
||||
#+RESULTS:
|
||||
:results:
|
||||
42330
|
||||
48113
|
||||
:end:
|
||||
|
||||
#+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:
|
||||
1181065
|
||||
926594
|
||||
:end:
|
||||
|
||||
#+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:
|
||||
liczba tokenów średnia częstość w części B estymacje +1 estymacje +0.01
|
||||
0 494664 1.805294 0.991839 0.009999
|
||||
1 528998 0.591116 1.983678 1.009917
|
||||
2 154689 1.574443 2.975517 2.009835
|
||||
3 81398 2.512285 3.967356 3.009752
|
||||
4 52899 3.502240 4.959196 4.009670
|
||||
5 37917 4.433763 5.951035 5.009588
|
||||
6 28921 5.280834 6.942874 6.009506
|
||||
7 23267 6.209438 7.934713 7.009423
|
||||
8 19014 7.265909 8.926552 8.009341
|
||||
9 15849 8.193135 9.918391 9.009259
|
||||
0 388334 1.900495 0.993586 0.009999
|
||||
1 403870 0.592770 1.987172 1.009935
|
||||
2 117529 1.565809 2.980759 2.009870
|
||||
3 62800 2.514268 3.974345 3.009806
|
||||
4 40856 3.504944 4.967931 4.009741
|
||||
5 29443 4.454098 5.961517 5.009677
|
||||
6 22709 5.232023 6.955103 6.009612
|
||||
7 18255 6.157929 7.948689 7.009548
|
||||
8 15076 7.308039 8.942276 8.009483
|
||||
9 12859 8.045649 9.935862 9.009418
|
||||
:end:
|
||||
|
||||
*** Wygładzanie Gooda-Turinga
|
||||
@ -320,16 +320,16 @@ $$p(w) = \frac{\# w + 1}{|C|}\frac{N_{r+1}}{N_r}.$$
|
||||
#+RESULTS:
|
||||
:results:
|
||||
liczba tokenów średnia częstość w części B estymacje +1 Good-Turing
|
||||
0 494664 1.805294 0.991839 1.069409
|
||||
1 528998 0.591116 1.983678 0.584838
|
||||
2 154689 1.574443 2.975517 1.578613
|
||||
3 81398 2.512285 3.967356 2.599523
|
||||
4 52899 3.502240 4.959196 3.583905
|
||||
5 37917 4.433763 5.951035 4.576470
|
||||
6 28921 5.280834 6.942874 5.631513
|
||||
7 23267 6.209438 7.934713 6.537671
|
||||
8 19014 7.265909 8.926552 7.501893
|
||||
9 15849 8.193135 9.918391 8.670579
|
||||
0 388334 1.900495 0.993586 1.040007
|
||||
1 403870 0.592770 1.987172 0.582014
|
||||
2 117529 1.565809 2.980759 1.603009
|
||||
3 62800 2.514268 3.974345 2.602293
|
||||
4 40856 3.504944 4.967931 3.603265
|
||||
5 29443 4.454098 5.961517 4.627721
|
||||
6 22709 5.232023 6.955103 5.627064
|
||||
7 18255 6.157929 7.948689 6.606847
|
||||
8 15076 7.308039 8.942276 7.676506
|
||||
9 12859 8.045649 9.935862 8.557431
|
||||
:end:
|
||||
|
||||
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:
|
||||
|
||||
$$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