Beispiel #1
0
	def __init__ (self, model):
		# portuguese tagger is Maximum Entropy Markov Model
		self._mxpost = carrega("AeliusMaxEntMM")
		self.parser = Parser(model)
		# self._mxpost = mxpost_home
		
		try:
			classpath = os.environ["CLASSPATH"]
			if not mxpost_home in classpath:
				classpath += ":" + mxpost_home + mxpost_jar
			os.environ["CLASSPATH"] = classpath
		except Exception:
			os.environ["CLASSPATH"] = mxpost_home + mxpost_jar
		try:
			path = os.environ["PATH"]
			if not mxpost_home in path:
				path += ":" + mxpost_home
			os.environ["PATH"] = path
		except Exception:
			os.environ["PATH"] = mxpost_home
		
		print("classpath is " + os.environ["CLASSPATH"])
		print("path is " + os.environ["PATH"])
Beispiel #2
0
	def etiqueta_sentenca(self, s):
		"""Aplica um dos etiquetadores do Aelius na etiquetagem da sentença dada como lista de tokens.
		"""
		etiquetador = carrega("AeliusHunPos")

		anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0]
		
		while (anotada[0][1] is None):
			time.sleep(random.choice(self.sleep_times))
			anotada = AnotaCorpus.anota_sentencas([s],etiquetador,"hunpos")[0]
		regex = re.compile('[%s]' % re.escape('\u2022''!"#&\'()*+,./:;<=>?@[\\]^_`{|}~'))
		tag_punctuation = [".",",","QT","("]

		anotada_corrigida = []

		for x in anotada:
			if x[1] not in tag_punctuation:
				if x[1] == "NUM":
					try:
						float(x[0].replace(',', '.'))
						anotada_corrigida.append(x)
						continue
					except:
						pass

				tupla = [regex.sub('',x[0]).lower(),x[1]]
				if tupla[0] != "": anotada_corrigida.append(tupla)
			else:
				if x[0] == ".":
					anotada_corrigida.append(["[ponto]".decode("utf-8"),"SPT"])
				elif x[0] == "?":
					anotada_corrigida.append(["[interrogação]".decode("utf-8"),"SPT"])
				elif x[0] == "!":
					anotada_corrigida.append(["[exclamação]".decode("utf-8"),"SPT"])

		return anotada_corrigida
Beispiel #3
0
# -*- coding: utf-8 -*-

# Aelius Brazilian Portuguese POS-Tagger and Corpus Annotation Tool
#
# Copyright (C) 2010-2013 Leonel F. de Alencar
# Author: Leonel F. de Alencar <*****@*****.**>
#
# URL: <http://sourceforge.net/projects/aelius/>
# For license information, see LICENSE.TXT
#
# $Id: SimplificaEtiquetas.py $
"""Este módulo contém funções para simplificar as etiquetas de um corpus anotado ou transformar um conjunto de etiquetas em outro."""

from Aelius.Extras import carrega

ARQUIVO = carrega("tag_mapping.txt")


def constroiDicionarioDeArquivo(arquivo=ARQUIVO):
    """Esta função transforma arquivo cujas linhas são pares do tipo

	etiqueta1 etiqueta

em um dicionário em que o valor de dic[etiqueta1] é etiqueta2.
	"""
    dic = {}
    f = open(arquivo, "rU")
    for linha in f:
        chave, valor = linha.strip().split()
        dic[chave] = valor
    return dic
Beispiel #4
0
EXEMPLO = "Os candidatos classificáveis dos cursos de Sistemas de Informação poderão ocupar as vagas remanescentes do Curso de Engenharia de Software.".decode(
    "utf-8"
)
# Extraído da seguinte fonte:

# UFC convoca os classificáveis do Vestibular 2010. Disponível em:
# <http://noticias.universia.com.br/destaque/noticia/2010/02/17/411825/
# fc-convoca-os-classificaveis-do-vestibular-2010.html>
# Acesso em: 17/05/2011.

# A seguinte variável permite expandir contrações para obter maior
# acurácia com o LXTagger:
EXPANDE_CONTRACOES = True

TAGGER = carrega("AeliusBRUBT.pkl")

# A seguinte variável global permite definir um
# infixo para arquivos anotados; caso essa variável
# permaneça com cadeia vazia como valor, o infixo é dado
# pela arquitetura do etiquetador:
INFIXO = ""

USUARIO = os.path.expanduser("~")

HUNPOS = carrega("AeliusHunPos")

DESTINO = "."


# O AeliusRUBT, usado como parte do procedimento
Beispiel #5
0
from Toqueniza import PUNKT,TOK_PORT
from MXPOST import MXPOSTTagger

EXEMPLO="Os candidatos classificáveis dos cursos de Sistemas de Informação poderão ocupar as vagas remanescentes do Curso de Engenharia de Software.".decode("utf-8")
# Extraído da seguinte fonte:

# UFC convoca os classificáveis do Vestibular 2010. Disponível em: 
# <http://noticias.universia.com.br/destaque/noticia/2010/02/17/411825/
# fc-convoca-os-classificaveis-do-vestibular-2010.html> 
# Acesso em: 17/05/2011.

# A seguinte variável permite expandir contrações para obter maior
# acurácia com o LXTagger:
EXPANDE_CONTRACOES=True

TAGGER=carrega("AeliusBRUBT.pkl")
    
# A seguinte variável global permite definir um
# infixo para arquivos anotados; caso essa variável
# permaneça com cadeia vazia como valor, o infixo é dado
# pela arquitetura do etiquetador:
INFIXO=""

USUARIO= os.path.expanduser("~")

HUNPOS=carrega("AeliusHunPos")

DESTINO="."


# O AeliusRUBT, usado como parte do procedimento
Beispiel #6
0
# Aelius Brazilian Portuguese POS-Tagger and Corpus Annotation Tool
#
# Copyright (C) 2010-2013 Leonel F. de Alencar
# Author: Leonel F. de Alencar <*****@*****.**>
#          
# URL: <http://sourceforge.net/projects/aelius/>
# For license information, see LICENSE.TXT
#
# $Id: SimplificaEtiquetas.py $

"""Este módulo contém funções para simplificar as etiquetas de um corpus anotado ou transformar um conjunto de etiquetas em outro."""

from Aelius.Extras import carrega

ARQUIVO=carrega("tag_mapping.txt")

def constroiDicionarioDeArquivo(arquivo=ARQUIVO):
	"""Esta função transforma arquivo cujas linhas são pares do tipo

	etiqueta1 etiqueta

em um dicionário em que o valor de dic[etiqueta1] é etiqueta2.
	"""
	dic={}
	f=open(arquivo,"rU")
	for linha in f:
		chave,valor=linha.strip().split()
		dic[chave]=valor
	return dic