SI5301_w9.pdf

(206 KB) Pobierz
QPrint
Wykþad 9. Rozpoznawanie semantyki zdaı jħzyka naturalnego
Struktura systemu automatycznego programowania:
Zadaniem systemu automatycznego programowania jest synteza przez komputer programu w okreĻ-
lonym jħzyku programowania (np. Pascal, C itd.) na podstawie opisu sþownego danego problemu.
Polecenia uŇytkownika wyraŇone sĢ za pomocĢ zdaı jħzyka naturalnego (np. w jħzyku angielskim).
MogĢ siħ one jednak rŇnię sþownictwem oraz skþadniĢ. Oglnie moŇna stwierdzię, Ňe zdania o
identycznej semantyce mogĢ byę tworzone w wyniku:
* zmian leksykalnych synonimicznych bez przeksztaþceı skþadniowych,
* zmian skþadni zdania,
* zmian leksykalnych prowadzĢcych rwnieŇ do zmian skþadniowych.
PoniŇej przedstawiono przykþadowe polecenia w systemie automatycznego programowania
ilustrujĢce powyŇsze zjawiska:
s 1 - Compute the area of a sphere
s 2 - Calculate the area of a sphere
s 3 - Sort a list of numbers in increasing order
s 4 - Arrange the numbers in the list increasingly
s 5 - Add the given numbers
s 6 - Determine the sum of the given numbers
s 7 - Make the summation of the given numbers
352051464.006.png 352051464.007.png
W zdaniach s 1 i s 2 do opisu akcji zostaþy uŇyte rŇne czasowniki, ktre sĢ synonimami ("compute" i
"calculate").
Zdania s 3 i s 4 ilustrujĢ poþĢczenie tych samych wyrazw posiadajĢcych treĻę semantycznĢ ("list",
"numbers" itd.) za pomocĢ rŇnych konstrukcji syntaktycznych. W niektrych przypadkach moŇe
to prowadzię do zmiany formy wyrazu (np. zmiana przymiotnika "increasing" na przysþwek
"increasingly").
W przypadku zdaı s 5 , s 6 i s 7 w rŇny sposb okreĻlono rodzaj polecenia, ktre komputer powinien
wykonaę. RwnowaŇnoĻę semantyczna tych zdaı wynika z relacji wystħpujĢcych miħdzy
czasownikiem opisujĢcym rodzaj akcji ("add") a rzeczownikami, ktre okreĻlajĢ nazwħ czynnoĻci
("summation") lub jej rezultat ("sum"). Funkcjħ orzeczenia w zdaniach s 6 i s 7 peþniĢ czasowniki
"determine" i "make", ktre posiadajĢ jednak bardzo szerokie znaczenie. ZawħŇenie znaczenia
nastħpuje w wyniku poþĢczenia z odpowiednim rzeczownikiem.
W celu rozpoznania semantyki polecenia uŇytkownika przyjħto zaþoŇenie:
Rozpoznanie semantyki polega na porwnywaniu semantyki zdania wprowadzonego
przez uŇytkownika z semantykĢ zdaı zawartych w bazie wiedzy komputera.
Semantyka zdania uŇytkownika zostanie rozpoznana wwczas, gdy komputer moŇe stwierdzię, Ňe
jest ono rwnowaŇne semantycznie z jednym ze zdaı z bazy wiedzy. Rozpoznanie semantyki
zdania polega wiħc na znalezieniu w bazie wiedzy jego odpowiednika semantycznego.
W procesie rozpoznawania semantyki pewnego zdania s x moŇna wyrŇnię nastħpujĢce etapy:
• transformacja zdania s x na postaę symbolicznĢ,
• okreĻlenie struktury semantycznej zdania
• poszukiwanie w bazie odpowiednikw semantycznych zdania
• porwnanie semantyki zdaı
Podstawħ symbolicznej reprezentacji zdania stanowi podziaþ zdania na grupy sþw, ktry jest
wynikiem analizy syntaktycznej. Proces transformacji zdania na postaę symbolicznĢ polega na:
• zastĢpieniu wyrazw odpowiednimi symbolami d i ,
• wyodrħbnieniu podciĢgw symboli d i , ktre reprezentujĢ grupy sþw (kaŇda grupa kodowana
jest symbolem a j ),
• reprezentacja zdania za pomocĢ ciĢgu symboli a j .
2
Przebieg tego procesu ilustruje nastħpujĢcy przykþad:
s x - Add the numbers in the array
Zdanie s x reprezentuje nastħpujĢcy ciĢg symboli d i :
d (s x ) = d 82 d 32 d 43 d 35 d 32 d 36
W wyniku analizy syntaktycznej otrzymujemy:
a (s x ) = a 28 a 29 a 3
d (a 28 ) = d 82 ; d (a 29 ) = d 32 d 43 ; d (a 3 ) = d 35 d 32 d 36
Kolejnym etapem jest analiza semantyczna zdania s x . Przebiega ona zgodnie z algorytmem
przedstawionym na wykþadzie 8. W omawianym systemie automatycznego programowania przyjħto
nastħpujĢcy zestaw kategorii semantycznych:
KS = {ACTION, AGENT, OBJECT, METHOD, LOCATION, SOURCE, GOAL,
INSTRUMENT, RESULT, FEATURE, CONDITION, TIME}
W wyniku analizy semantycznej grupom w zdaniu s x nadano nastħpujĢce kategorie semantyczne:
a 28 - ACTION a 29 - OBJECT a 3 - LOCATION
Istotne znaczenie w poszukiwaniu odpowiednika semantycznego zdania s x w bazie wiedzy, a
szczeglnie w procesie porwnania semantyki zdaı odgrywajĢ relacje semantyczne miedzy
wyrazami. Zestaw uŇywanych w systemie relacji przedstawia tabela:
Symbol relacji
opis relacji
r 1
r 2
r 3
r 4
r 5
r 6
r 7
r 8
r 9
r 10
r 11
r 12
r 13
r 14
r 15
d p i d k sĢ synonimami
d p i d k sĢ antonimami
d p i d k sĢ konwersami
d k jest hiponimem d p
d k jest skþadnikiem obiektu d p
d k jest elementem zbioru d p
d k jest materiaþem, z ktrego wykonano d p
d k jest nazwĢ czynnoĻci d p
d k jest rezultatem czynnoĻci d p
d k jest wykonawcĢ czynnoĻci d p
d k jest "odbiorcĢ" czynnoĻci d p
d k jest obiektem czynnoĻci d p
d k jest narzħdziem czynnoĻci d p
d k okreĻla miejsce wykonania czynnoĻci d p
d k okreĻla sposb wykonania czynnoĻci d p
3
352051464.008.png 352051464.009.png
Do reprezentacji w bazie wiedzy relacji semantycznych wystħpujĢcych miħdzy wyrazami
wykorzystano model sieci semantycznej. PoniŇej przedstawiono fragment sieci semantycznej
ilustrujĢcy wykorzystanie omwionych relacji do opisu zaleŇnoĻci semantycznych dla czasownika
"calculate". Synonimem czasownika "calculate" jest czasownik "compute". Posiada on rwnieŇ
cztery hiponimy odpowiadajĢce podstawowym operacjom arytmetycznym: "add", "subtract",
"multiply" oraz "divide". Dla czasownika "add" okreĻlono rzeczownik bħdĢcy nazwĢ wykonywanej
operacji "summation" oraz rzeczownik opisujĢcy rezultat jej wykonania "sum". Synonimami sĢ
pary wyrazw "summation" - "addition" oraz "sum" - "total".
PowyŇszy fragment sieci semantycznej reprezentowany jest przez odpowiednie wyraŇenie
symboliczne E' + :
E' + = 0 (d 21 1 (r 4 d 23 , r 4 d 24 , r 4 d 25 , r 4 d 26 , r 1 d 22 2 (r 1 d 21 ) 2 ) 1 , d 23 1 (r 8 d 28 , r 9 d 29 2 (r 1 d 30 3 (r 1 d 29 ) 3 ) 2 ) 1 , d 28
1 (r 1 d 27 2 (r 1 d 28 ) 2 ) 1 , d 24 1 (r 8 d 31 ) 1 , d 25 1 (r 4 d 32 ) 1 ) 0
gdzie: d 21 - calculate, d 22 - compute, d 23 - add, d 24 - subtract, d 25 - multiply, d 26 - divide, d 27 -
addition, d 28 - summation, d 29 - sum, d 30 - total, d 31 - subtraction oraz d 32 - square.
Poszukiwanie w bazie odpowiednikw semantycznych zdania s x opiera siħ na symbolicznej
reprezentacji zdaı:
a (s x ) = a j1 a j2 ... a jk
r(a j1 ) = d r1 , r(a j2 ) = d r2 , ... r(a jk ) = d rk
Przyjħto nastħpujĢce kryteria poszukiwania w bazie wiedzy odpowiednikw semantycznych:
• zdanie zawiera identycznĢ grupħ,
• zdanie zawiera grupħ o identycznym rdzeniu semantyczny d r ,
4
352051464.001.png 352051464.002.png 352051464.003.png 352051464.004.png 352051464.005.png
 
• miħdzy rdzeniami grup istnieje pewna relacja semantyczna r i ,
• zdanie posiada identycznĢ strukturħ semantycznĢ.
W wyniku tego procesu otrzymujemy nastħpujĢce zbiory:
S'(a j1 ) = S 1 (a j1 ) S 2 (d r1 ) S 3 (d r1 )
= 1. U S'(a ji ) , gdzie: k - iloĻę grup w zdaniu s x .
UwzglħdniajĢc zbir S"(s x ), zawierajĢcy zdania o identycznej strukturze semantycznej ze
zdaniem s x ostatecznie otrzymujemy:
S(s x ) = S'(s x ) S"(s x ) ,
Zbir S(s x ) zawiera zdania, ktre wykazujĢ minimalne podobieıstwo ze zdaniem s x (np. posiadajĢ
przynajmniej jednĢ grupħ wystħpujĢcĢ w zdaniu s x lub przynajmniej jednĢ grupħ posiadajĢcĢ
identyczny rdzeı grupy).
W celu znalezienia zdaı, ktre posiadajĢ najwiħcej elementw wsplnych ze zdaniem s x okreĻlamy
nastħpujĢcy zbir:
S'*(s x ) = i k
S*(s x ) = S'*(s x ) S"(s x )
OkreĻlanie poszczeglnych zbiorw S'(a ji ) odbywa siħ na podstawie wyraŇeı symbolicznych DÓ +
oraz AÓ + . PoniŇszy przykþad ilustruje tworzenie zbiorw S 1 (a ji ), gdzie a ji Îgrupy w zdaniu s x :
s x - a 1 a 2 a 4 a 10
Na podstawie wyraŇenia AÓ + moŇna okreĻlię w jakich zdaniach wystħpujĢ poszczeglne grupy:
+ = 0 (a 1 1 ( z 1 s 5 a 14 , z 1 s 1 a 2 2 ( z 1 s 1 a 3 3 ( z 1 s 1 a 4 4 (z 1 s 1 a 5 , ... a 10 1 ( z 3 s 4 a 11 ) 1 ...
W wyniku otrzymujemy:
S 1 (a 1 ) = {s 1 , s 5 }; S 1 (a 2 ) = {s 1 }; S 1 (a 4 ) = {s 1 }; S 1 (a 10 ) = {s 4 }
Podobnie przebiega proces tworzenia zbioru S 2 (s x ). Dla kaŇdej grupy zdania s x okreĻlono jej
rdzeı semantyczny. W wyniku otrzymujemy zbir D r (s x ):
D r (s x ) = {d 21 , d 25 , d 42 , d 40 }
5
S'(s x ) = i k
= 1. I S'(a ji )
Zgłoś jeśli naruszono regulamin