Richard Watson

Transkrypt

Richard Watson
Równoważność stanów
−
→
L (q) =
∪
−
→
a L (δ(q, a)) ∪
a:δ(q,a)̸=⊥
{
∅
q ̸∈ F
{ϵ} q ∈ F
−
→
−
→
L (q) = L (p) ⇔
(q ∈ F ∧ p ∈ F) ∨ (q ̸∈ F ∧ p ̸∈ F)
{a ∈ Σ : δ(q, a) ∈ Q} = {b ∈ Σ : δ(p, b) ∈ Q}
−
→
→
−
∀a∈Σ:δ(q,a)∈Q L (δ(q, a)) = L (δ(p, a))
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(91 / 165)
Równoważność stanów
−
→
L (q) =
∪
−
→
a L (δ(q, a)) ∪
a:δ(q,a)̸=⊥
{
∅
q ̸∈ F
{ϵ} q ∈ F
−
→
−
→
L (q) = L (p) ⇔
(q ∈ F ∧ p ∈ F) ∨ (q ̸∈ F ∧ p ̸∈ F)
{a ∈ Σ : δ(q, a) ∈ Q} = {b ∈ Σ : δ(p, b) ∈ Q}
∀a∈Σ:δ(q,a)∈Q δ(q, a) = δ(p, a)
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(92 / 165)
Co to jest minimalizacja drzewa?
n
e
t
e
s
t
i
a
n
o
r
a
a
i
s
z
e
m
i
e
n
Jan Daciuk, KISI, ETI, PG
z
n
s
z
o
o
s
e
i
t
t
t
i
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(93 / 165)
Co to jest minimalizacja drzewa?
n
e
t
i
a
m
e
a
i
o
r
s
z
e
e
i
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(94 / 165)
Co to jest minimalizacja drzewa?
n
e
s
s
t
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
e
i
a
n
t
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(95 / 165)
Co to jest minimalizacja drzewa?
n
e
t
e
s
t
i
a
n
o
r
a
a
i
s
z
e
m
i
e
n
Jan Daciuk, KISI, ETI, PG
z
n
s
z
o
o
s
e
i
t
t
t
i
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(96 / 165)
Co to jest minimalizacja drzewa?
t
n
e
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(97 / 165)
Co to jest minimalizacja drzewa?
n
e
t
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(98 / 165)
Co to jest minimalizacja drzewa?
n
e
t
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(99 / 165)
Co to jest minimalizacja drzewa?
n
e
t
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(100 / 165)
Co to jest minimalizacja drzewa?
n
e
t
n
s
s
t
i
a
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
i
t
t
i
a
t
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(101 / 165)
Co to jest minimalizacja drzewa?
n
e
n
t
s
s
t
i
a
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
i
t
t
i
a
t
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(102 / 165)
Co to jest minimalizacja drzewa?
n
e
t
n
s
s
t
i
a
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
i
t
t
i
a
t
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(103 / 165)
Co to jest minimalizacja drzewa?
n
e
t
n
t
e
s
s
t
i
t
t
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(104 / 165)
Co to jest minimalizacja drzewa?
n
e
t
n
s
s
t
i
t
i
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
a
t
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(105 / 165)
Co to jest minimalizacja drzewa?
n
e
t
n
e
s
s
t
i
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
t
t
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(106 / 165)
Co to jest minimalizacja drzewa?
n
e
n
t
e
s
s
t
i
t
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(107 / 165)
Co to jest minimalizacja drzewa?
n
e
t
s
s
e
t
i
t
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(108 / 165)
Co to jest minimalizacja drzewa?
n
e
s
t
s
e
t
i
t
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(109 / 165)
Co to jest minimalizacja drzewa?
n
e
s
t
s
t
i
e
t
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(110 / 165)
Co to jest minimalizacja drzewa?
n
e
t
s
t
i
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(111 / 165)
Co to jest minimalizacja drzewa?
n
e
t
s
t
i
a
a
i
m
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
e
a
n
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(112 / 165)
Rejestr
−
→
Porównanie z użyciem definicji rekurencyjnej L (q)
Stany odwiedzane wg. metody postorder, tak że dzieci zawsze mają
niepowtarzalny prawostronny język
−
→
Stany z niepowtarzalnymi L (q) w tablicy rozproszonej
Funkcja mieszająca wykorzystuje końcowość stanów i przejścia
Wynik: operacje na rejestrze są O(1)
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(113 / 165)
Synchronizacja
Są dwie możliwości:
Dodajemy słowo do języka automatu i minimalizujemy całą zmienioną
część automatu.
Brak ograniczeń na dane wejściowe.
Wielokrotne przetwarzania tych samych stanów.
Dodajemy słowo do języka automatu i minimalizujemy tylko tę część,
która już się nie zmieni.
Dane muszą być uporządkowane.
Duża szybkość bo stany przetwarzane jednokrotnie.
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(114 / 165)
Synchronizacja – dane uporządkowane
n
e
t
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(115 / 165)
Synchronizacja – dane uporządkowane
n
e
t
i
a
m
e
a
i
o
r
s
z
e
i
e
n
z
n
s
z
o
o
Jan Daciuk, KISI, ETI, PG
t
t
n
i
t
s
s
t
i
a
n
e
n
s
s
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(116 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(117 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(118 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg( delta(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(119 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg( delta(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(120 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ←repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(121 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(122 / 165)
Przyrostowa konstr. z danych uporząd.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | ); end if;
while i ≤ |w| do
δ(s, wi ) ← new state; s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(123 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
t
e
i
a
a
i
m
aimaient
5. Tworzenie automatu, f. mieszająca
(124 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
t
e
i
a
a
i
m
aimais
5. Tworzenie automatu, f. mieszająca
(125 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
t
e
i
a
a
i
m
aimais
5. Tworzenie automatu, f. mieszająca
(126 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
t
e
i
a
a
i
m
aimais
5. Tworzenie automatu, f. mieszająca
(127 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
t
e
i
a
a
i
m
aimais
5. Tworzenie automatu, f. mieszająca
(128 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
t
e
i
a
a
i
m
aimais
5. Tworzenie automatu, f. mieszająca
(129 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
i
a
a
i
m
aimais
5. Tworzenie automatu, f. mieszająca
(130 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
i
a
a
i
m
aimait
5. Tworzenie automatu, f. mieszająca
(131 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
i
a
a
i
m
aimait
5. Tworzenie automatu, f. mieszająca
(132 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
m
aimait
5. Tworzenie automatu, f. mieszająca
(133 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
m
aime
5. Tworzenie automatu, f. mieszająca
(134 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
m
aime
5. Tworzenie automatu, f. mieszająca
(135 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
m
aime
5. Tworzenie automatu, f. mieszająca
(136 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
m
aime
5. Tworzenie automatu, f. mieszająca
(137 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
e
m
aime
5. Tworzenie automatu, f. mieszająca
(138 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
i
a
a
i
e
m
aiment
5. Tworzenie automatu, f. mieszająca
(139 / 165)
Przyrostowa konstr. z danych uporządk.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function sorted_construction;
w′ ← ϵ;
while input not empty do
s ← q0 ; i ← 1; w ← next word;
while i ≤ |w| and δ(s, wi ) ̸= ⊥ do
s ← δ(s, wi ); i ← i + 1;
end while;
if i ≤ |w′ | then
δ(s, w′i ) ← repl_or_reg(δ(s, w′i ), w′i+1...|w′ | );
end if;
while i ≤ |w| do
δ(s, wi ) ← new state;
s ← δ(s, wi ); i ← i + 1;
end while;
F ← F ∪ {s}; w′ ← w;
end while;
repl_or_reg(q0 , w′ );
end function;
function repl_or_reg(q, v);
if v ̸= ϵ then
δ(q, v1 ) ← repl_or_reg(δ(q, v1 ), v2...|v| );
end if;
if ∃r∈R r ≡ q then
delete q; return r;
else
R ← R ∪ {q}; return q;
end if;
end function;
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
n
e
t
s
t
t
i
n
a
a
i
e
m
aiment
5. Tworzenie automatu, f. mieszająca
(140 / 165)
Minimalna doskonała funkcja mieszająca
Nie wszystkie dane słownikowe – informacje związane ze słowami – da się
upakować w automacie. Np. znaczenie słowa nie jest związane z jego
końcówką, jest też różne dla różnych słów. W takim przypadku informacje
przechowujemy poza automatem, a słowa numerujemy. Numer słowa jest
indeksem określającym dodatkową informację. Numerowanie słów to
realizacja minimalnej doskonałej funkcji mieszającej.
Doskonała funkcja mieszająca – funkcja mieszająca pozwalająca obliczyć
indeks klucza zawsze za pierwszym razem (wykluczająca kolizje).
Minimalna doskonała funkcja mieszająca to doskonała funkcja mieszająca
ze zbioru n kluczy na spójny przedział n liczb całkowitych.
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(141 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
Jan Daciuk, KISI, ETI, PG
1
a
e
e
w
2
2
a
t
H
G
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(142 / 165)
Doskonała f. mieszająca – obliczanie liczby słów w
prawostronnym języku stanu
∪
−
→
L (q) =
−
→
a L (δ(q, a)) ∪
{
a:δ(q,a)̸=⊥
−
→
| L (q)| =
∑
−
→
| L (δ(q, a))| +
a:δ(q,a)̸=⊥
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
∅
q ̸∈ F
{ϵ} q ∈ F
{
0 q ̸∈ F
1 q∈F
5. Tworzenie automatu, f. mieszająca
(143 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
Jan Daciuk, KISI, ETI, PG
1
a
e
e
w
2
2
a
t
H
G
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(144 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
sea = 2
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(145 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
sea = 2 + 0
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(146 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
sea = 2 + 0 + 0 = 2
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(147 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
e
w
2
2
a
t
H
G
seat =
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(148 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
seat = 2
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(149 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
seat = 2 + 0
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(150 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
seat = 2 + 0 + 0
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(151 / 165)
Doskonała f. mieszająca – pierwsza metoda
2
1
a
B
h
c
C
1
a
t
E
6
A
1
D
2 a
s
I
4
F
e
t
e
w
2
2
a
H
G
seat = 2 + 0 + 0 + 1 = 3
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(152 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
e/0
F
Jan Daciuk, KISI, ETI, PG
w/2
D
e/1
t/1
a/0
H
G
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(153 / 165)
Doskonała f. mieszająca – druga metoda
2
a/0
B
h/1
c/0
2
s/2
I
4 e/0
F
Jan Daciuk, KISI, ETI, PG
a/0
1
t/0
1 E
a/0
6
A
C
w/2
1
D
e/1
2
t/1
a/0
2
H
G
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(154 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
e/0
F
w/2
D
e/1
t/1
a/0
H
G
swat =
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(155 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
swat = 2
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(156 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
h/1
c/0
C
a/0
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
swat = 2 + 2
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(157 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
h/1
c/0
C
a/0
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
swat = 2 + 2 + 0
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(158 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
h/1
c/0
C
a/0
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
swat = 2 + 2 + 0 + 0 = 4
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(159 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
e/0
F
w/2
D
e/1
t/1
a/0
H
G
seat =
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(160 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
seat = 2
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(161 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
seat = 2 + 0
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(162 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
seat = 2 + 0 + 0
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(163 / 165)
Doskonała f. mieszająca – druga metoda
a/0
B
a/0
h/1
c/0
C
t/0
E
a/0
A
s/2
I
D
e/1
t/1
e/0
F
w/2
a/0
H
G
seat = 2 + 0 + 0 + 1 = 3
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(164 / 165)
Literatura nt. przyrostowej budowy słowników i doskonałej
funkcji mieszającej
. Jan Daciuk, Stoyan Mihov, Bruce Watson, and Richard Watson,
Incremental Construction of Minimal Acyclic Finite State Automata,
Computational Linguistics, 26(1), pp. 3-16, March 2000. Dostępne
przez: http://acl.ldc.upenn.edu/J/J00/J00-1002.pdf
2. Claudio Lucchiesi, Tomasz Kowaltowski, Applications of Finite
1
Automata Representing Large Vocabularies, Software Practice and
Experience, Jan. 1993, 23(1), pp. 15–30.
. Jan Daciuk, Dawid Weiss, Smaller Representation of Finite-State
Automata, Theoretical Computer Science, vol. 450, pp. 10-21, 7
Sept. 2012.
3
Jan Daciuk, KISI, ETI, PG
Przetwarzanie języka naturalnego
5. Tworzenie automatu, f. mieszająca
(165 / 165)