Lista L1 - pablo faria

Propaganda
HL377–LinguísticaComputacional–2016/1
Docente:PabloFaria
LISTADEEXERCÍCIOSL1
Disponibilizada:18/03/2016
Entrega:até31/03/2016
Os exercícios abaixo envolve especialmente a prática da linguagem Python e da
bibliotecaNLTKdentrodointerpretadorPython(oambientequeacessamosquando
abrimosoterminalouPromptdeComandoedigitamos“python”).Paratodoseles,
vocêteráqueusarointerpretadorparatestarouexecutaroscomandos.Lembre-se
deimportarosdadosnecessáriosusandoocomando“fromnltk.bookimport*”logo
no início da sua sessão. Este comando também deverá estar no início do arquivo
indicadonoitem(2)abaixo.Entregadosexercíciosemarquivos(poremail).
1. Questõesdissertativas,arespondernumarquivoDOCdenome“L1_SEURA.doc”:
a. Produzaumagráficodedispersãodosquatroprincipais
protagonistasde“SenseandSensibility”:Elinor,Marianne,Edward
eWilloughby.Oquevocêpodedizersobreospapéisdehomense
mulheresnessahistória?Vocêconsegueidentificaroscasais?
b. ConsidereaexpressãoemPython:len(set(text4)).Digaqualo
propósitodessaexpressãoedescrevaosdoispassosenvolvidos
nessacomputação.
c. Crieváriasvariáveiscontendolistasdepalavras(relativosa
fragmentosdefrases),p.e.,frag1,frag2,eassimpordiante,eas
junteemdiferentescombinações(usandoooperador‘+’)para
formarsentençasinteiras.Qualarelaçãoentrelen(frag1+frag2)e
len(frag1)+len(frag2)?
d. Considereasduasexpressõesseguintes,quecontémomesmo
valor.QualdelasserátipicamentemaisrelevanteemPLN?Porquê?
a.“MontyPython”[6:12]
b.[“Monty”,“Python”][1]
e. Vimoscomorepresentarumasentençacomoumalistadepalavras,
ondecadapalavraéporsuavezumalistadecaracteres(i.e.,uma
1
string).Oquesent1[2][2]faz?Porquê?Experimentecomoutros
valoresindiciais.
f. Qualadiferençaentreasduaslinhasaseguir?Qualdelasretorna
umconjuntomaior?Seráesteocasoparaoutrostextos?
>>>sorted(set([w.lower()forwintext1]))
>>>sorted([w.lower()forwinset(text1)])
g. Qualadiferençaentreosdoisseguintestestes:w.isupper()enot
w.islower()?
h. OqueoseguintecódigoemPythonfaz?
sum([len(w)forwintext1])
Vocêpodeusá-locomobaseparacalcularotamanhomédiode
palavrasdeumtexto?
2. Paraasquestõesabaixo,crieumarquivodenome“L1_SEU-RA.py”eem
cadalinhainformeapenasasexpressõesemPythoncorrespondentesa
cadaexercício(nãoosresultados),umaporlinha.Adicaé:primeirotestea
expressãonointerpretadordoPythonparadepoissalvarelanoseu
arquivo.Nocasedeexpressõesqueproduzemresultados(comoasdos
exercíciosa,b,etc.),preceda-ascomocomando‘print’.
a. ExperimenteutilizaroPythoncomoumacalculadora,informandoa
expressão12/(4+1)emaisumaenvolvendotodasasoperações:
adição(+),subtração(-),multiplicação(*),divisão(/)e
exponenciação(**).
b. Dadoumalfabetode26letras,há26elevadoa10,ou26**10,
stringsde10letrasquepodemosformar.Istorepresenta
141167095653376L(oLnofinalapenasindicaqueesteéoformato
“long-number”doPython).Quantasstringsdecemletrassão
possíveis?
c. AoperaçãodemultiplicaçãodoPythonpodeseraplicadaalistas.O
queacontecesevocêinformar[‘Monty’,‘Python’]*20ou3*
sent1?
d. Revisãodaseção1.1sobreacomputaçãodelinguagem.Quantas
palavrashánotext2?Quantaspalavrasdistintashá?
e. Obtenhaascolocações(“collocations”)dotext5.
f. RevisãodaSeção1.2sobrelistasestrings.Crieumavariável
atribuindoumastringaela,porexemplo,minha_string=‘Minha
string’(mascoloquealgomaisinteressante,claro).Imprimao
conteúdodastringusandoocomandoprint.Tenteadicionara
stringasiprópriaoumultiplicá-laporalgumnúmerointeiro.Note
2
g.
h.
i.
j.
k.
l.
m.
n.
o.
p.
queascópiassãocoladassemespaçoentreelas.Comocorrigir
isso?
Definaavariável‘my_sent’comoumalistadepalavras,usandoa
sintaxemy_sent=[‘my’,‘sent’].
a.Use‘’.join(my_sent)paraconverteralistaparaumastring.
b.Usesplit()parapartirastringdevoltaàformadelista.
Aprimeirasentençadotext3édisponibilizadaavocênavariável
sent3.Oíndicede‘the’emsent3é1,porquesent3[1]nosdevolve
‘the’.Quaissãoosíndicesdasduasoutrasocorrênciasdessa
palavraemsent3?
RevisãodadiscussãosobrecondicionaisnaSeção1.4.Encontre
todasaspalavranocorpusChat(text5)começandocomaletra‘b’.
Exiba-asemordemalfabética.
Entrecomaexpressãorange(10)nointerpretador.Agoratente
range(10,20),range(10,20,2)erange(20,10,-2).Veremosváriosusos
dessafunçãopredefinidaemcapítulosposteriores.
Usetext9.index()paraencontraroíndicedapalavra‘sunset’.Você
precisaráinformarestapalavracomoargumentoentreos
parênteses.Porumprocessodetentativaeerro,encontreafatia
(slice)dasentençacompletaquecontémessapalavra.
Usandoadiçãodelistaeasoperações‘set’e‘sorted’,computeo
vocabuláriodassentençassent1...sent8.
Escrevaaexpressãodefatiaqueextraiasúltimasduaspalavrasdo
text2.
EncontretodasaspalavrasdequatroletrasdoCorpusChat(text5).
RevisãodadiscussãosobrelaçoscomcondiçõesnaSeção1.4.Usea
combinaçãodoscomandosforeifparapercorreraspalavrasdo
roteirodofilme“MontyPythonandtheHolyGrail”(text6)e
imprimirtodasaspalavras(totalmente)emmaiúsculas,umapor
linha.
Escrevaexpressõesparaencontrartodasaspalavrasnotext6que
atendamàscondiçõesabaixo,umaporvez.Oresultadodeveserna
formadeumalistadepalavras:[‘palavra1’,‘palavra2’,...].
a.Terminandoem“ise”
b.Contendoaletra“z”
c.Contendoasequênciadeletras“pt”
d.Todasasletrasminúsculas,excetopelaletrainicialmaiúscula
3
q. Definasentcomoalistadepalavras['she','sells','sea','shells','by',
'the','sea','shore'].Agoraescrevaumcódigoquerealizeas
seguintestarefas:
a.Imprimatodasaspalavrasquecomeçamcom‘sh’
b.Imprimaaspalavrascommaisde4letras
r. Definaumafunçãochamadavocab_size(text)quetomaum
parâmetroúnicoreferenteaotextoequeretornaotamanhodo
vocabuláriodotexto.
s. Definaumafunçãopercent(word,text)quecalculaoquão
frequentementeumapalavraocorrenumtextoeexpressao
resultadocomoumpercentual.
4
Download