NAME

Lingua::PT::PLNbase - Perl extension for NLP of the Portuguese

SYNOPSIS

use Lingua::PT::PLNbase;

my @atomos = atomiza($texto);   # tb chamada 'tokenize'

my $atomos_um_por_linha = tokeniza($texto);
my $atomos_separados_por_virgula = tokeniza({fs => ','}, $texto);


my @frases = frases($texto);

DESCRIPTION

Este m�dulo inclui fun��es b�sicas �teis ao processamento computacional da l�ngua, e em particular, da l�ngua portuguesa.

Atomizadores

Este m�dulo inclui um m�todo configur�vel para a atomiza��o de corpus na l�ngua portuguesa. No entanto, � poss�vel que possa ser usado para outras l�nguas (especialmente ingl�s e franc�s.

A forma simples de uso do atomizador � usando directamente a fun��o atomiza que retorna um texto em que cada linha cont�m um �tomo (ou o uso da fun��o tokeniza que cont�m outra vers�o de atomizador).

As fun��es dispon�veis:

atomos
atomiza
tokenize

Usa um algor�tmo desenvolvido no Projecto Natura.

Para que as aspas n�o sejam convertidas em abrir aspa e fechar aspa, usar a op��o de configura��o keep_quotes.

Retorna texto tokenizado, um por linha (a nao ser que o 'record separator' (rs) seja redefenido). Em ambiente lista, retorna a lista dos �tomos.

my @atomos = atomiza($texto);   # tb chamada 'tokenize'

my $atomos_um_por_linha = tokeniza($texto);
my $atomos_separados_por_virgula = tokeniza({fs => ','}, $texto);
tokeniza

Usa um algoritmo desenvolvido no P�lo de Oslo da Linguateca. Retorna um �tomo por linha em contexto escalar, e uma lista de �tomos em contexto de lista.

cqptokens

Um �tomo por linha de acordo com nota��o CWB. Pode ser alterado o separador de frases (ou de registo) usando a op��o 'irs':

cqptokens( { irs => "\n\n" }, "file" );

outras op��es:

cqptokens( { enc => ":utf8"}, "file" ); # enc => charset
                                        # outenc => charset

Segmentadores

Este m�dulo � uma extens�o Perl para a segmenta��o de textos em linguagem natural. O objectivo principal ser� a possibilidade de segmenta��o a v�rios n�veis, no entanto esta primeira vers�o permite apenas a separa��o em frases (frasea��o) usando uma de duas variantes:

frases
sentences
@frases = frases($texto);

Esta � a implementa��o do Projecto Natura, que retorna uma lista de frases.

separa_frases
$frases = separa_frases($texto);

Esta � a implementa��o da Linguateca, que retorna um texto com uma frase por linha.

xmlsentences

Utiliza o m�todo frases e aplica uma etiqueta XML a cada frase. Por omiss�o, as frases s�o ladeadas por '<s>' e '</s>'. O nome da etiqueta pode ser substitu�do usando o parametro opcional st.

xmlsentences({st=> "tag"}, text)

Segmenta��o a v�rios n�veis

fsentences

A fun��o fsentences permite segmentar um conjunto de ficheiros a v�rios n�veis: por ficheiro, por par�grafo ou por frase. O output pode ser realizado em v�rios formatos e obtendo, ou n�o, numera��o de segmentos.

Esta fun��o � invocada com uma refer�ncia para um hash de configura��o e uma lista de ficheiros a processar (no caso de a lista ser vazia, ir� usar o STDIN).

O resultado do processamento � enviado para o STDOUT a n�o ser que a chave output do hash de configura��o esteja definida. Nesse caso, o seu valor ser� usado como ficheiro de resultado.

A chave input_p_sep permite definir o separador de par�grafos. Por omiss�o, � usada uma linha em branco.

A chave o_format define as pol�ticas de etiqueta��o do resultado. De momento, a �nica pol�tica dispon�vel � a XML.

As chaves s_tag, p_tag e t_tag definem as etiquetas a usar, na pol�tica XML, para etiquetar frases, par�grafos e textos (ficheiros), respectivamente. Por omiss�o, as etiquetas usadas s�o s, p e text.

� poss�vel numerar as etiquetas, definindo as chaves s_num, p_num ou t_num da seguinte forma:

'0'

Nenhuma numera��o.

'f'

S� pode ser usado com o t_tag, e define que as etiquetas que delimitam ficheiros usar� o nome do ficheiro como identificador.

'1'

Numera��o a um n�vel. Cada etiqueta ter� um contador diferente.

'2'

S� pode ser usado com o p_tag ou o s_tag e obriga � numera��o a dois n�veis (N.N).

'3'

S� pode ser usado com o s_tag e obriga � numera��o a tr�s n�veis (N.N.N)

nomes das etiquetas (s => 's', p=>'p', t=>'text')

t: 0 - nenhuma
   1 - numeracao
   f - ficheiro [DEFAULT]

p: 0 - nenhuma
   1 - numeracao 1 nivel [DEFAULT]
   2 - numercao 2 niveis (N.N)

s: 0 - nenhuma
   1 - numera��o 1 n�vel [DEFAULT]
   2 - numera��o 2 n�veis (N.N)
   3 - numera��o 3 n�veis (N.N.N)

Acentua��o

remove_accents

Esta fun��o remove a acentua��o do texto passado como par�metro

has_accents

Esta fun��o verifica se o texto passado como par�metro tem caracteres acentuados

Fun��es auxiliares

recupera_ortografia_certa
tratar_pontuacao_interna

SEE ALSO

perl(1)

AUTHOR

Alberto Simoes (ambs@di.uminho.pt)

Diana Santos (diana.santos@sintef.no)

Jos� Jo�o Almeida (jj@di.uminho.pt)

Paulo Rocha (paulo.rocha@di.uminho.pt)

COPYRIGHT AND LICENSE

Copyright (C) 2003-2006 by its authors

(EN) This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.

(PT) Esta biblioteca � software de dom�nio p�blico; pode redistribuir e/ou modificar este m�dulo nos mesmos termos do pr�prio Perl, quer seja a vers�o 5.8.1 ou, na sua liberdade, qualquer outra vers�o do Perl 5 que tenha dispon�vel.