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