Sunteți pe pagina 1din 4

UNIVERSITATEA TEHNIC A MOLODVEI

FACULTATEA CALCULATOARE INFOMRATICA I MICROELECTRONICA


CATEDRA INFORMATICA APLICATA

Lucrare de laborator Nr.1 Procesarea Sintactic a Textului


Tema: Crearea arborelor de derivare

Realizat: st. gr. IA-131, Nicolae Casr


Verificat: Lector Superior, Victoria Lazu

CHIINU
2015
Procesarea Sintactic a Textului
Lucrare de laborator Nr.1
Tema: Crearea arborelor de derivare
NLTK(Natural Language Toolkit)
Propoziii:
1. Obiectele simple sunt dotate cu posibiliti avansate.
2. Oamenii privesc culorile pe care le plac
3. Grania vertical este instalat ca o linie unic.
Listing-ul:
import nltk
import sys
print"Introduceti prima propozitie: \n "
prop = sys.stdin.readline()
print prop
text = nltk.word_tokenize(prop)
print text
tag = nltk.pos_tag(text)
print tag
pos_tags = [token for (token,pos) in nltk.pos_tag(text)]
print pos_tags
simple_grammar = nltk.parse_cfg("""
S -> NP VP

PP -> Prep NP
NP -> N Adj
VP -> Vaux V PP
N -> 'Obiectele'
N -> 'posibilitati'
Prep -> 'cu'
Vaux -> 'sunt'
V -> 'dotate'
Adj -> 'simple'
Adj -> 'avansate'
""")
parser = nltk.ChartParser(simple_grammar)
tree = parser.parse(pos_tags)
print tree
print "Inaltimea arborelui este: "
print tree.height()
tree.draw()
# a doua propozitie
print"Introduceti a doua propozitie: \n "
prop = sys.stdin.readline()
print prop
text = nltk.word_tokenize(prop)
print text
tag = nltk.pos_tag(text)
print tag
pos_tags = [token for (token,pos) in nltk.pos_tag(text)]
print pos_tags
simple_grammar = nltk.parse_cfg("""
S -> S1 S2
S1 -> NP VP
S2 -> VP
NP -> N
VP -> V NP | PP ADJP V
PP -> Prep Adv
ADJP -> Adjp
N -> 'Oamenii' | 'culorile'
V -> 'privesc' | 'plac'
Prep -> 'pe'
Adv -> 'care'
Adjp -> 'le'
""")
parser = nltk.ChartParser(simple_grammar)
tree = parser.parse(pos_tags)
print tree
print "Inaltimea arborelui este: "
print tree.height()
tree.draw()
#A treia propozitie
print"Introduceti a treia propozitie: \n "
prop = sys.stdin.readline()
print prop
text = nltk.word_tokenize(prop)
print text
tag = nltk.pos_tag(text)
print tag
pos_tags = [token for (token,pos) in nltk.pos_tag(text)]
print pos_tags
simple_grammar = nltk.parse_cfg("""

S -> NP VP
NP -> N Adj | Art N Adj
VP -> Vaux V Prep NP
N -> 'Granita' | 'linie'
Adj -> 'verticala' | 'unica'
Vaux -> 'este'
V -> 'instalata'
Prep -> 'ca'
Art -> 'o'
""")
parser = nltk.ChartParser(simple_grammar)
tree = parser.parse(pos_tags)
print tree
print "Inaltimea arborelui este: "
print tree.height()
tree.draw()
Screen-uri:

Concluzii:
Aceasta lucrare este prima, i noi pentru prima dat am descoperit limbajul de progr
amare python pentru procesarea textelor cu NLTK. Am rmas impresionat de modul cum
lucreaz Python-ul n comparaie cu Prolog. Abia atept s explorez noile posibiliti n
atoarele urmtoare.
(c) Nicolae Casr 2015