domingo, 5 de fevereiro de 2012

Hifenização em LaTeX

Para os escritores do idioma português, o LaTeX pode ser chato no momento de hifenizar as palavras. Isso ocorre porque o idioma "padrão" do LaTeX é o inglês, do qual não possui forma correta de hifenizar as palavras (By Hugo Sica, meu amigo de graduação).

Assim, o texto gerado no pdf pode apresentar erros de separação silábicas, por exemplo a palavra postagem ser separada assim post-agem. Uma forma manual de concertar esse erro é inserir o - para indicar o correto ponto de "corte" da palavra. No exemplo anterior, o erro seria concertado então por: posta-gem ou pos-tagem. Entretanto, caso várias ocorrências de uma mesma palavra exista no texto e, estas possuam erros de hifenização. Essa forma manual será ineficiente, pois para todas as palavras (iguais) deve-se inserir o -

Para resolver o problema de hifenização do LaTeX pode-se usar duas abordagem. A primeira é não permitir hifenização de palavras, assim como a maioria dos editores de textos fazem por padrão. Não gosto deste método porque algumas linhas ficam "esticadas". Já a segunda maneira é permitir a hifenização e indicar a separação silábica das palavras. Assim, caso existam n ocorrências da palavra postagem hifenizadas de forma errada no texto, esse método corrige-os após indicar a correta separação silábica de postagem apenas uma vez.

Para usar esse tão "mágico" recurso basta fazer usar \usepackage[T1]{fontenc} juntamente com o comando \usepackage[brazil]{babel}. Para indicar a separação silábica das palavras use o comando \hyphenation{ PALAVRAS } e substitua PALAVRAS pela separação silábica das palavras hifenizadas incorretamente separando-as por espaços. Importante, use esse comandos antes de \begin{document}

Exemplificando: Palavras postagem e silábica.

\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}
\hyphenation{ pos-ta-gem si-lá-bi-ca}

\begin{document}

...

{\it Abraços}



quarta-feira, 1 de fevereiro de 2012

PLN, o que é isso?

Olá pessoa, fiquei um tempo fora (ou melhor, muito tempo) mas pretendo voltar a postar algumas novidades aqui no blog. Comecei primeiramente dando uma repaginada no visual o que acharam?

Durante esse tempo que estive ausente, algumas coisas mudaram, em meu perfil digo que sou um recente formado em Ciência da Computação, porém, acho que o "recente" já não é tão recente assim. Atualmente entrei em um novo desafio, estou fazendo Mestrado em Inteligência Computacional trabalhando com processamento de Língua Natural.

Com esse post pretendo apresentar que coisa é essa de Processamento de Língua Natural, pois provavelmente será tópico de algum outro post no futuro. O Processamento de Língua Natural (PLN) surgiu por interesses em aplicações de Tradução Automática (acredito que vocês usam um desses sistemas quase que diariamente, não é?) , mas hoje encontra-se presente em diversas aplicações.

O PLN pode ser descrito como ciência que visa estudar e desenvolver métodos para tratar objetos descritos em língua natural, o texto deste post por exemplo. Por exemplo, vocês já usaram algum editor de texto e como se fosse mágica, esse reconhece que houve um erro de digitação ou que a frase possui um erro de concordância? Isso é um exemplo de aplicações do PLN.  Outro exemplo é o Google Tradutor, sim a Google trabalha com processamento de língua natural, legal isso né :D.

O que eu trabalho dentro do PLN é a Sumarização Automática (SA), que consiste em desenvolver aplicações cujo objetivo é a geração automática de resumos. Dentro da SA existem dois "mundos", o monodocumento e o multidocumento. No mundo monodocumento, os sistemas devem fazer resumos a partir de um único texto-fonte, poderia por exemplo resumir esse post. Já no cenário multidocumento, do qual tenho mais interesse, as aplicações devem "ler" vários textos-fonte e gerar um único resumo, por exemplo, faça uma busca no Google pela palavra chave "Copa do Mundo 2014", a quantidade de resultados é enorme, a SA multidocumento podeira receber como entrada os 10 primeiros documentos retornar e apresentar um resumo, inclusive indicar de onde as informações foram tiradas, legal não é?

A forma que é descrita a SA parece ser uma tarefa muito fácil. Mas possui diversos desafios, como informações conflitantes, redundantes, ambíguas, etc. Creio que esta seja área bastante ampla e que possui vasta gama de aplicação, visto a quantidade de informação publicada, principalmente na Web,  é muito grande.

É isso ai, qualquer dúvida perguntem.

sexta-feira, 28 de janeiro de 2011

Comandar o PC pelo Twitter????

Estive passeando pela internet e encontrei um aplicativo interessante, pode ser útil em alguma situação ou uma boa brincadeira.

O aplicativo chama-se TweetMyPC encontrado no site, desenvolvido para plataforma Windows escrito na linguagem VB.Net usando o .Net-Framework V3.0, mas isso não foi a parte interessante ou engraçada do aplicativo.


Este aplicativo consiste em um Cliente Twitter pelo qual você pode controlar seu computador, isso mesmo, controlar seu computador via Twitter onde quer que você esteja :-/. Repito pode ser útil em alguma situação ou uma boa brincadeira.

Como funciona? Primeiro seu computador deve estar ligado (não, ele não funciona com o computador desligado! :-/) e com o aplicativo em execução, deve-se cadastrar no programa o nome de usuário e senha de uma conta ativa no Twitter. Existe alguns comandos já definidos e você pode adicionar mais, apenas referenciando uma palavra a alguma execução ou programa, ex.: editarTexto para abrir seu software de edição de texto.

Depois de configurado basta você enviar um tweet através da conta configurada com o comando e pronto, o TweetMyPC faz uma leitura do que você posta no Twitter, reconhece os comando e o executa!!! Possível até desligar o computador.

Algumas idéias, você pode colocar o comando VoltandoPraCasa configurado para seu computador ligar sua música preferida ou carregar um filme só usar a criatividade. Ou fazer uma boa brincadeira com o pessoal.

Bem aí segue uma dica de um aplicativo que pode ser útil ou uma boa brincadeira! Divirtam-se.

sexta-feira, 21 de janeiro de 2011

Dojo Toolkit

Dojo é um conjunto de bibliotecas em JavaScript voltado para desenvolvimento Web e Móvel, seguindo a metodologia de desenvolvimento "Escreva Menos Faça Mais". Tal metodologia consiste em apresentar ao programador um conjunto de ferramentas e componentes pré-programados, diminuindo a quantidade de código escrito pelo programador e com resultados mais rápidos.

Logo oficial 
Estive e ainda estou estudando Dojo, se assemelha com a idéia de JQuery que é mais difundido. Sinceramente ainda não vi motivos para diferença de popularidade, talvez seja pelo fato de apesar de possuir uma documentação extensa sua grande maioria é escrita em inglês, e já existe vários sites brasileiros que publicam seus desenvolvimentos com JQuery.

Particularmente acho o código em Dojo mais limpo e enxuto do que JQuery, parece que você escreve muito menos para ter os mesmos resultados. Interessante também que ambas as bibliotecas são pesadas em não devem ser usadas em excesso, pois acabam prejudicando a usabilidade dos usuários.

Tentando amenizar este problema Dojo incorporou um sistema de inclusão de módulos, possibilitando a utilização de apenas arquivos realmente necessários para as necessidades de determinada página de forma isolada. Isso é bastante importante visto que o arquivo para download desse ToolKit é de aproximadamente 19 Mb.

Dojo possui código aberto e permite desenvolver suas próprias bibliotecas, personalizar CSS de alguns componentes ou adicionar funcionalidades, existem também uma gama de componentes pré-definidos que podem ser utilizados facilmente em suas aplicações.

É divido em três módulos principais:
  1. Dojo: núcleo das bibliotecas, onde encontra-se várias funcionalidades para código JavaScript, também utilizadas pelos demais componentes do Kit e alguns efeitos de animação;
  2. Dijit: conjunto de componentes para interface e arquivos CSS; e
  3. Dojox: alguns componentes que trazem uma iteratividade maior como manipulação de imagens, gráficos, manipulação 3D, tabelas, etc.
Existem algumas formas de utilização, sendo uma online onde você não precisa baixar pacotes para sua máquina ou servidor utilizando um repositório como exemplo da Google, e uma outra forma mais tradicional realizando o download (existe uma versão em tar.gz para linux: link) dos arquivos para seu servidor web e utiliza-los localmente.

O site oficial é http://dojotoolkit.org/ (em inglês), e você pode encontrar vários exemplos de utilização no site http://demos.dojotoolkit.org/demos/. Qualquer dúvida ou sugestão postem seus comentários.

quarta-feira, 19 de janeiro de 2011

Novo 3DS Confirmado

Nintendo 3DS é confirmado para o dia 27 de março nos EUA.

O preço sendo discutido para o novo portátil da Nintendo é de US$ 240,00 a US$ 250,00 segundo uma pesquisa entre outros sites, esperamos que aqui no Brasil a discrepância não seja tão grande visto que impostos sobre games e consoles são muito altos no país.

Nintendo 3DS Aqua Blue: Foto de www.nintendo.com/3ds
Voltando o assunto para as características do novo brinquedinho, o 3DS terá jogos visualizados em três dimensões sem auxilio de óculos especiais, uma tela Wide de 800x240 pixel de resolução, alocando 400 pixels para cada olho afim de proporcionar o efeito 3D e uma tela sensível à toque de 300x240, incluindo um controlador analógico e sensor de movimento com giroscópio podendo reagir a movimentos dos jogadores.

Creio também que um ponto chave será o compartilhamento de informação entres jogadores, com os recursos de StreetPass onde dados são compartilhados entro consoles ao se aproximarem, e SpotPass onde o 3DS procura acesso a redes wireless para coletar informações.

Será distribuído inicialmente em duas cores Aqua Blue e Cosmo Black.

Alguns jogos 3D
  • Pilotwings Resort
  • Super Street Fighter IV 3D Edition
  • Lego Star Wars III: The Clone Wars
  • The Legend of Zelda: Ocarina of Time 3D
  • Star Fox 64 3D
Lista mais detalhada de games: http://www.nintendo.com/3ds/games/