Arquivo da categoria ‘Python’
Quem disse que Python não tem autocomplete?
Eiiiiita!
Isso aqui virou um blog só sobre Python mesmo… No próximo post vou tentar mudar de assunto
Mas então vamos lá!
Essa dica é pra quem acha que não existe autocomplete em Python ou pelo menos fora de algum bom editor… Quem gosta de brincar no shell e ficar testando códigos pequenos, essa pode ser boa!
Abra o shell, interpretador e:
import readline
import rlcompleter
readline.parse_and_bind('tab: complete')
“Voyalá”!
Agora o seu TAB tem super poderes!
Até a próxima!
Gracinhas do Python
Eu já havia lido o Zen of Python em algumas páginas na internet, mas não imaginava que ele está presente no próprio interpretador!
Se você ainda não conhece, digite após chamar o interpretador:
>>> import this
Traduzindo o que foi retornado:
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Plano é melhor que aglomerado.
Esparso é melhor que denso.
Legibilidade faz diferença.
Casos especiais não são especiais o bastante para quebrar as regras.
Embora a praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambigüidade, recuse a tentação de adivinhar.
Deve haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio à primeira vista a menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca freqüentemente seja melhor que *exatamente* agora.
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa idéia.
Namespaces são uma grande idéia — vamos fazer mais dessas!
E para quem ainda tem alguma esperança da linguagem começar a utilizar { chaves } no futuro, tente:
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance
Se você sabe de mais alguma gracinha, poste nos comentários!!!
Diferenças no import em Python
Quero explicar algo que gostaria de ter ouvido na resposta do professor ao aluno (feita na história do post anterior), que é a diferença entre:
import módulo
e
from módulo import método/atributo/*
Antes vou tentar exemplificar!
Se fizermos:
import string
a = 'teste'
upper(a)
irá nos retornar um erro informando que o método upper() não existe, para que isso funcione devemos fazer:
string.upper(a)
ou seja,
módulo.método
Para que o primeiro código funcione, substituímos import string por from string import upper ou from string import *
Explicando teoricamente, ao fazer from módulo import método/atributo/*, os atributos e métodos dos tipos de módulos importados são importados diretamente para dentro do namespace local, ficando disponíveis diretamente, sem qualificação por nome do módulo. Enquanto da outra forma é necessário qualificar o módulo antes do método/atributo a ser utilizado.
Natural Language Toolkit (NLTK)
Primeiramente vou explicar o que é o NLTK e como podemos instalá-lo no Linux.
Natural Language Toolkit (NLTK) é um conjunto de ferramentas open source escritas em Python e para Python, para a manipulação de linguagem natural.
Conta com uma boa documentação (http://nltk.sourceforge.net/index.php/Book) que auxilia o desenvolvimento, composto por leitores de corpus, tokenizers, stemmers, taggers, chunkers, parsers, wordnet, mais de 30 conjuntos de dados anotados amplamente usados de PLN (+300Mb).
Quando a manipulação com strings começa a ser tornar trabalhosa utilizando apenas o módulo String do Python, é a hora do NLTK entrar em cena.
INSTALAÇÃO
A instalação é bem simples, ter o Python instalado é um requisito.
Faça o download do código fonte em: http://prdownloads.sourceforge.net/nltk/nltk-0.9.2.tar.gz
Descompacte:
$ tar -zxvf nltk-0.9.2.tar.gz
Entre na pasta:
$ cd nltk-0.9.2
Utilize o instalador:
$ sudo python setup.py install
Isso feito, agora é necessário realizar um download maior (75MB) com os dados do NLTK: http://prdownloads.sourceforge.net/nltk/nltk-data-0.9.2.zip
Enquanto o download não termina, você pode criar a seguinte pasta:
$ sudo mkdir /usr/share/nltk
Após o término e descompactação dos arquivos, mova a pasta descompactada:
$ sudo mv data /usr/share/nltk
Altere a permissão da pasta para que os dados possam ser utilizados:
$ sudo chmod -R g+r /usr/share/nltk/data
——————————————————————–
Pronto, instalação completa no Linux!
——————————————————————-
Para utilizá-la, você deve importar o módulo no Python:
$ python
>>>import nltk
Existe um corpus em português que pode ser utilizado da seguinte forma:
>>>from nltk.corpus import floresta
Vamos coletar as palavras pertencentes a esse corpus:
>>>palavras = floresta.words()
Temos 211.852 palavras:
>>>len(palavras)
Por enquanto é só isso, pretendo em um próximo post apresentar alguma coisa interessante desse módulo.
Como ainda não o estudei muito bem, não tenho muita coisa. Mas como terei de usá-lo em meu Trabalho de Conclusão de Curso (Investigação e Implementação De Um Sistema Gerador de Expressões Regulares A Partir De Um Conjunto De Expressões Em Linguagem Natural) provavelmente terei alguma coisa para mostrar em breve e quem sabe também não falo sobre o meu TCC.
Referências:
http://nltk.sourceforge.net/
Deixe um comentário
Comentários (1)
Comentários (2)