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 opcionalst
.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 chaveoutput
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 � aXML
.As chaves
s_tag
,p_tag
et_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�os
,p
etext
.� poss�vel numerar as etiquetas, definindo as chaves
s_num
,p_num
out_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 os_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.