Giter VIP home page Giter VIP logo

nheengatu's Introduction

nheengatu

This repository contains tools and resources for the computational processing of Nheengatu, also called Modern Tupi and Língua Geral Amazônica. Organizer and major contributor to the repository is Leonel Figueiredo de Alencar, head of the Research Group on Computation and Natural Language (CompLin) at the Humanities Center of the Federal University of Ceará. Additional contributors include his students Juliana Lopes Gurgel and Dominick Maia Alexandre.

Unless otherwise stated, the Nheengatu data and text materials derive from the following sources:

AVILA, Marcel Twardowsky. Proposta de dicionário nheengatu-português. 2021. Tese (Doutorado em Estudos da Tradução) - Faculdade de Filosofia, Letras e Ciências Humanas, Universidade de São Paulo, São Paulo, 2021. doi:10.11606/T.8.2021.tde-10012022-201925.

NAVARRO, Eduardo de Almeida. Curso de Língua Geral (nheengatu ou tupi moderno): a língua das origens da civilização amazônica. 2. ed. São Paulo: Centro Angel Rama da Faculdade de Filosofia, Letras e Ciências Humanas da Universidade de São Paulo, 2016.

Therefore, both data and texts may be subject to the copyrights of the authors of these works.

A previous version of the repository material was based on the first edition of the mentioned book:

NAVARRO, E. A. Curso de Língua Geral (nheengatu ou tupi moderno): a língua das origens da civilização amazônica. São Bernardo do Campo: Paym, 2011.

If use any of the tools and resources of this repository, please cite the following paper:

ACM reference format:

Leonel de Alencar. 2023. Yauti: A Tool for Morphosyntactic Analysis of Nheengatu within the Universal Dependencies Framework. In Anais do XIV Simpósio Brasileiro de Tecnologia da Informação e da Linguagem Humana, setembro 25, 2023, Belo Horizonte/MG, Brasil. SBC, Porto Alegre, Brasil, 135-145. DOI: https://doi.org/10.5753/stil.2023.234131.

APA reference format:

de Alencar, L. (2023). Yauti: A Tool for Morphosyntactic Analysis of Nheengatu within the Universal Dependencies Framework. In Anais do XIV Simpósio Brasileiro de Tecnologia da Informação e da Linguagem Humana, (pp. 135-145). Porto Alegre: SBC. doi:10.5753/stil.2023.234131

ABNT reference format:

DE ALENCAR, Leonel Figueiredo. Yauti: A Tool for Morphosyntactic Analysis of Nheengatu within the Universal Dependencies Framework. In: SIMPÓSIO BRASILEIRO DE TECNOLOGIA DA INFORMAÇÃO E DA LINGUAGEM HUMANA (STIL), 14. , 2023, Belo Horizonte/MG. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 135-145. DOI: https://doi.org/10.5753/stil.2023.234131.

BibTex reference format:

@inproceedings{stil,
 author = {Leonel de Alencar},
 title = {Yauti: A Tool for Morphosyntactic Analysis of Nheengatu within the Universal Dependencies Framework},
 booktitle = {Anais do XIV Simpósio Brasileiro de Tecnologia da Informação e da Linguagem Humana},
 location = {Belo Horizonte/MG},
 year = {2023},
 keywords = {},
 issn = {0000-0000},
 pages = {135--145},
 publisher = {SBC},
 address = {Porto Alegre, RS, Brasil},
 doi = {10.5753/stil.2023.234131},
 url = {https://sol.sbc.org.br/index.php/stil/article/view/25445}
}

nheengatu's People

Contributors

dominickmaia avatar juliana-gurgel avatar leoalenc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

pfs-db

nheengatu's Issues

organização dos arquivos

@juliana-gurgel, estou pensando numa organização mais simples e mais transparente dos arquivos, talvez não precisemos de tantas pastas e subpastas. Podemos conversar sobre isso na quinta-feira.

uniformização da indicação da valência verbal

uniformizar indicação da valência verbal (ver Nr. 15, #11)

aikwé (v. impess.) - há, existe(m)
mupaka (v. tr.) - acordar; fazer acordar

kwema 2 (se) (v. 2ª cl. - só se conjuga na 3ª pess.: i kwema) - amanhecer

mupaka (v. tr.) - acordar; fazer acordar
mupawa (v.) - fazer acabar, acabar (tr.)

construir léxico de formas plenas de substantivos

O objetivo é construir um léxico de formas plenas de substantivos a partir do glossário de Navarro (2016). Esse léxico deverá constituir a base para diversas ferramentas, como, por ex., o etiquetador, permitindo também a lematização.

etiquetagem de elementos como "masuí"

@juliana-gurgel, masuí (e creio que, também, os demais elementos análogos) está como INTRR. No entanto, ocorre também em orações afirmativas:

Uieréu, umaã iuí kiti masuí úri iuaté kiti.
Virou, olhou para a terra donde veio para cima.
(NAVARRO, 2011, p. 72)

Talvez a classificação desse tipo de elemento deva ser repensada.

entradas de "rikwé" e "sikwé"

No glossário de Navarro (2016) constam estas entradas:

rikwé (sikwé) (se) (adj. 2ª cl.) - vivo; vivente
sikwé (rikwé, sikwé) (adj.) - vivo, vivente

A segunda entrada gerou o seguinte erro no léxico:

grep -Pv "\t" lexicon.txt

('rikwé', 'sikwé+A+CONT')
('sikwé', 'sikwé+A+NCONT')

Essa entrada do glossário está correta?

distinção entre sentença e fragmento

@dominickmaia, precisamos distinguir, nos exemplos, entre entre sentenças ou enunciados completos, por um lado, e fragmentos de sentença, por outro. Veja, por exemplo, em e-yrl-01.txt:

Kurumĩ puranga.
# O menino é bonito.

Puranga ara!
# Bom dia!

Kurumĩ puranga.
# Menino bonito.

ara puranga.
# dia bonito.

Os dois primeiros exemplos são enunciados completos. Terminam, portanto, num sinal de pontuação indicativo disso, no caso, ponto final. Os dois últimos, porém, são fragmentos, no caso, sintagmas nominais. Desse modo, deveríamos reformulá-los deste modo:

kurumĩ puranga
# menino bonito

ara puranga
# dia bonito

Pode fazer essas alterações nos exemplos análogos dos arquivos de exemplos?

problemas com palavras hifenizadas

Temos atualmente:

rimirikú-putawa - v. simirikú-putawa
simirikú (rimirikú, simirikú) (s.) - esposa
simirikú-putawa (r, s) (s.) - noiva

Erros gerados:

r simirikú-putawa+N+CONT+SG
r-itá simirikú-putawa+N+CONT+PL
s simirikú-putawa+N+NCONT+SG
s-itá simirikú-putawa+N+NCONT+PL
simirikú-putawa simirikú-putawa+N+ABS+SG
simirikú-putawa-itá simirikú-putawa+N+ABS+PL

melhorar função de etiquetagem de sentença

No momento, a função de etiquetagem de sentença imprime a sentença etiquetada como string. Programas externos, contudo, podem necessitar de um resultado sob a forma de uma estrutura de dados, por exemplo, uma lista de pares (w,t), onde w é a palavra e t, a etiqueta. Por outro lado, toda palavra desconhecida é etiquetada como PROPN. Isso dificulta a identificação de palavras desconhecidas. O objetivo desta issue é melhorar a função nesses aspectos.

algoritmo do etiquetador gera perda de informações

@dominickmaia e @juliana-gurgel, vejam como se comporta o algoritmo do nheentiquetador-2.0:

>>> import pandas as pd
>>> yrl_glossary = "/home/leonel/yrl/pibic-2020-2021/nheentiquetador/nheentiquetador-2.0/sn-yrl-dict.txt"
>>> df = pd.read_csv(yrl_glossary, sep='\t', header=None, index_col=0)
>>> glossary = df.to_dict()[1]
>>> glossary.get("aé")
'PRON1'
>>> glossary.get("se")
>>> glossary.get("ne maã")
>>> glossary.get("iepé")
>>> glossary.get("iepé iepé")
>>> glossary.get("suri")
>>> glossary.get("puranga")
>>> glossary.get("pura")
>>> glossary.get("puku")
>>> len(glossary)
902
>>> glossary.get("pixuna")
>>> glossary.get("akaiú")
'N'
>>> glossary.get("ne")

Diversas palavras desapareceram que constam no arquivo sn-yrl-dict.txt. Por outro lado, ocorre a forma nan nestes exemplos:

>>> for w,t in list(glossary.items())[20:40]:
	print(w,t)

	
amaniú N
amu INDF
amũ-itá N-PL
amũ N
anama-itá N-PL
anama N
anga-itá N-PL
anga N
apara A2
apekatu A1 nan
apigaua A1 nan
apigaua-itá N-PL nan
apigaua N nan
apuã A2 nan
ara-itá N-PL nan
ara N nan
arara-itá N-PL nan
arara N nan
ararapeua-itá N-PL nan
ararapeua N nan

O algoritmo não leva em conta o fato de haver três colunas:

>>> glossary.get('apekatu')
>>> glossary.get('apekatu A1')
nan
>>> 

ausência de PRON2 em adjetivo predicativo

Parece que falta o PRON2 neste exemplo do corpus, uma vez que iumasi, na terminologia de Cruz (2011), constitui verbo estativo flexionável, exigindo PRON2 em função predicativa (Navarro, 2011, p. 14):

Apigaua puxiuera iumasi.
O homem feio (é) faminto.

O correto parece que seria:

Apigaua puxiuera i iumasi.

Haveria outros casos desse tipo? Talvez se deva revisar o corpus focando essa questão.

tokens repetidos na tabela de formas

@juliana-gurgel, no momento, alguns tokens estão repetidos na tabela do arquivo sn-yrl-dict.txt:

iepé iepé NUM
iepé iepé QUANT
iepé INDF
iepé NUM

pu N
pu pu NUM

Não entendi a duplicação de categorias NUM e QUANT: não seria a mesma coisa usando terminologia diferente? Por outro lado, existe mesmo pu pu como numeral?

"-ntu" como "advérbio enclítico"

Corrigir classificação de Navarro (2016, p. 106) de -ntu como "advérbio enclítico" para sufixo, seguindo Avila (2021)?
Advérbio seria uma categoria de palavra sintática e não de morfema preso que constitui parte de palavra sintática.

tratamento de formas alternantes

Agora temos, por exemplo:

-i (suf. de diminutivo) - -inho(-a)
-ĩ - v. -i
mupuranga (v.) - embelezar
mpuranga (v.) - embelezar

Poderíamos ter tratado o segundo caso desta forma:

mupuranga (v.) - embelezar
mpuranga - v. mupuranga

Mas isso complicaria a elaboração da tabela de formas e etiquetas do etiquetador (afixos não entram nessa tabela). No futuro, unificar as duas abordagens de tratamento de alternantes.

Originally posted by @leoalenc in #16 (comment)

unificar o formato das entradas de advérbios interrogativos

No momento, temos no glossário, seguindo Navarro (2016):

masuí (adv.) - 1. (interr.) de onde? 2. (afirm.) de onde; donde
mayé 1 (adv. interr.) - como?

Com base na primeira entrada, masuí é classificado pelo etiquetador apenas como adv., quando deveria ter classificação comoadv. interr., tal como mayé.
Outra questão é a classe de palavra em exemplos como este (NAVARRO, 2016, p. 17):

Nti akwáu masuí Pedro usika. - Não sei donde Pedro chegou.

incluir compostos

Ver #11:

  1. Compostos e derivados do verbete:

yawara (s.) - cão ● yawara-kunhã - cadela

simplificação da notação de adjetivos, pronomes e verbos da segunda classe

Simplificar e uniformizar notação de adjetivos, pronomes e verbos da segunda classe:

kweré (se) (adj. 2ª cl.) - cansado
ne (pron. 2ª classe) - 1. tu; você; 2. teu(-s, -a, -as);
pe (pron. 2ª cl.) - 1. vós, vocês; 2. vosso (-a, -os, -as); de vocês; seu (-a, -s, -as)
resarái (sesarái) (v. 2ª cl.) - esquecer-se

extração das entradas do glossário de Navarro (2016)

Estrutura das entradas do glossário de Navarro (2016)

  1. Estrutura típica:

amaniú (s.) - algodão
ambira (s. / adj.) - finado, falecido
amú (pron. indef.) - outro, -a

  1. Variantes com classes diferentes numa mesma entrada:

apekatú (adv.) longe; (adj.) - distante
apigawa (s.) - homem; (adj.) - macho

  1. Adjetivos de segunda classe (verbos estativos flexionáveis):

apara (se) (adj. 2ª cl.) - 1. torto; 2. camboto, de pernas tortas

  1. Substantivos com prefixos relacionais:
  • formas plenas

tendawa (rendawa, sendawa) (s.) - 1. comunidade; 2. sítio, fazenda; 3. lugar
sekuyara (rekuyara, sekuyara) (s.) - 1. pagamento; 2. dinheiro

  • formas abreviadas

sekuyaramirĩ (r, s) (s.) - troco

  1. Posposições e adjetivos com prefixos relacionais:

ruakí (suakí) (posp.) - perto de, próximo de
ruakiwara (suakiwara) (adj.) - próximo, vizinho

  1. Adjetivos de segunda classe (verbos estativos flexionáveis) com prefixos relacionais:

rurí (surí) (se) (adj. 2ª cl.) - alegre, feliz

  1. Formas de palavras com prefixos relacionais:

rupiá - v. supiá

  1. Formas alternantes (alomorfes ou sinonímicas) numa mesma entrada:

yúri / uri (v.) - vir
mukũipú (ou pu pu) (num.) - dez

  1. Entradas homonímicas (com índice sobrescrito):
  • Classes de palavras diferentes

yuíri 1 (adv.) - 1. também; 2. de novo, novamente
yuíri 2 (conj.) - e
yuíri 3 (v.) - voltar

  • Mesma classe de palavra

yumbué 1 (v.) - aprender
yumbué 2 (v.) - rezar

  1. Morfemas presos:

a- morf. núm.-pess. de 1ª pess. sing.

-usú - suf. de aumentativo: -ão, -ona; grande

  1. Alomorfes de palavras com entrada própria:

ã - v. ana

  1. Compostos e derivados do verbete:

yawara (s.) - cão ● yawara-kunhã - cadela

  1. Indicação de registro desusado (desus.)
  • na glosa

yepé 2 (conj.) - embora, apesar de (desus.)
yepé 3 (num.) - um(a); yepé yepé - um por um, um a um

  • junto com a classe de palavra

yepé 4 (part. desus.) - expressa o pret. imperfeito

  1. Indicação da valência verbal

aikwé (v. impess.) - há, existe(m)
mupaka (v. tr.) - acordar; fazer acordar

lema do verbo "sú"

No glossário de Navarro (2016, 2020), o lema do verbo 'ir' está sem acento, ou seja, su, contrariamente a Avila (2021). Na primeira obra, quando conjugado, o verbo é acentuado na última sílaba: asú, resú etc.

construir adivinhador morfológico de classe de palavra

O objetivo é construir um código em Python que "adivinhe" a classe de uma palavra inexistente no léxico a partir dos seus prefixos ou sufixos, determinando, também, o lema e as propriedades morfossintáticas da palavra. Ver, por exemplo, #5.

construir léxico de formas plenas

Construir dicionário de formas plenas a partir do glossário, conforme #29. Esta issue objetiva contemplar todas as classes de palavras, diferentemente de #18, que focou os substantivos.

inclusão dos dados da tese de Avila (2021)

No longo prazo, incluir dados da tese de Avila (2021):

ABNT

AVILA, Marcel Twardowsky. Proposta de dicionário nheengatu-português. 2021. Tese (Doutorado em Estudos da Tradução) - Faculdade de Filosofia, Letras e Ciências Humanas, Universidade de São Paulo, São Paulo, 2021. doi:10.11606/T.8.2021.tde-10012022-201925. Acesso em: 2022-05-16.

APA

Avila, M. T. (2021). Proposta de dicionário nheengatu-português. Tese de Doutorado, Faculdade de Filosofia, Letras e Ciências Humanas, Universidade de São Paulo, São Paulo. doi:10.11606/T.8.2021.tde-10012022-201925. Recuperado em 2022-05-16, de www.teses.usp.br

A tese pode ser reproduzida total ou parcialmente segundo o autor. Esses dados ficam para ser incluídos numa futura versão do etiquetador, depois de concluída este ano a nova versão com base apenas no glossário de Navarro (2016) e publicados os resultados num novo artigo, como planejado com @juliana-gurgel e @dominickmaia.

formas com sufixo ")" indevido

Corrigir léxico e programa gerador para evitar estes erros:

sendawa) tendawa+N+NCONT+SG
sendawa)-itá tendawa+N+NCONT+PL

impedir geração de duplicatas no léxico

No momento, temos:

awk '$2 ~ /^ara\+/' lexicon.txt

ara ara+N+SG
ara-itá ara+N+PL
ara ara+N+SG
ara-itá ara+N+PL
ara ara+N+SG
ara-itá ara+N+PL

O objetivo é consertar o código que constrói o léxico para impedir a geração de duplicatas.

categoria lexical de derivados em "-wera"

@juliana-gurgel e @dominickmaia, em Navarro (2011, p. 97-98), temos:

Maria convidou pessoas que costumam pescar perto de sua comunidade para virem a sua casa.

Vêm homens cantadores para alegrar a festa.

Maria usenuĩ ana mira-itá upinaitikauera sendaua ruaki úri arama suka kiti.

Úri apigaua-itá unheengariuera umusuri arama murasi.

No primeiro exemplo, o derivado em -uera é traduzido como oração relativa, no segundo, como adjetivo.
Devemos decidir por uma análise unificada para todos esses derivados de verbos, levando em conta a estrutura da LGA e não apenas a tradução para o português.

forma "yúri"

A forma yúri parece constituir erro de grafia, uma vez que a primeira sílaba, que é a tônica, é um ditongo crescente. Palavras paroxítonas não são acentuadas. Exemplos do glossário de Navarro (2016):

uri - forma irregular de 3ª pess. de yuri - v.
yúri / uri (v.) - vir

Em Avila (2021, p. 916), temos yuri.
Ver #17.

desdobramento de formas alternantes

O objetivo desta issue é fazer o desdobramento de formas alternantes como estas, listadas em #11:

8. Formas alternantes (alomorfes ou sinonímicas) numa mesma entrada:

yúri / uri (v.) - vir
mukũipú (ou pu pu) (num.) - dez

Deveremos ter, por exemplo:

mukũipú (num.) - dez
pu pu (num.) - dez

entradas de "sakurana" e "rakú"

As entradas de sakurana e rakú apresentam problemas:

rakú, sakú (se) (adj. 2ª cl.) - quente
rurí (surí) (se) (adj. 2ª cl.) - alegre, feliz
-rana (suf.) - mau, pouco, mais ou menos, falso, fraco, não verdadeiro, adulterado
sakurana - v. rakú e rana

A entrada de rakú foge da formatação padrão para palavras com prefixos relacionais, ver rurí. A entrada de sakurana carece de classe de palavra e glosa.

tratamento de prefixos no glossário e no léxico

No glossário de Navarro (2016), os prefixos, diferentemente da maioria dos sufixos, não estão assinalados como tais por meio de uma abreviatura entre parêntese logo após a forma do prefixo:

a- morf. núm.-pess. de 1ª pess. sing.
-íma (suf.) - sem, ausência de, falta de, não

O objetivo desta issue é identificar prefixos como (pref.) no glossário e incluí-los no léxico.

erros nas entradas de "rupitá" e "supitá"

Apenas a forma relativa é listada entre parênteses na terceira coluna abaixo, contrariamente às demais entradas de substantivos com prefixos relacionais, que contêm sempre duas formas:

supitá 1 (rupítá) (s.) - tronco
supitá 2 (rupítá) (s.) - parede

Cruz (2011, p. 157) e Stradelli (2014, p. 265 e p. 274) apresentam apenas a forma rupitá.

forma do dimunitivo

No glossário de Navarro (2016, 2020), o alomorfe não nasal do diminutivo está sem acento, ou seja, i-, mas, na seção IV da lição 4, está grafado í-, como em Avila (2021).

incluir palavras com múltiplos tokens

O objetivo é incluir em lexicon.txt palavras com múltiplos tokens do glossary.txt, como pu pu, pelo que se faz necessário modificar o código em Python do construtor de léxico.

lidando com comentários de múltiplas linhas

O objeto é fazer com que o etiquetador ignore comentários que se estendem por múltiplas linhas, assinalados por pares de ''':

'''início do comentário
linha 2
linha 3
linha n e fim do comentário'''
''
'início do comentário
linha 2
linha 3
linha n e fim do comentário
'''

glossário e léxico de formas plenas no formato JSON

Implementar função para armazenar o glossário glossary.txt e o léxico de formas plenas lexicon.txt no formato JSON. Modificar o etiquetador para permitir a leitura do arquivo no formato JSON. Fazer o mesmo com outras funções que atualmente utilizem o arquivo lexicon.txt.

substituir "author" por "producer"

Substituir "author" por "producer" no cabeçalho dos arquivos do corpus. O autor é Navarro, identificado por meio da referência. Vejam:

  1. Corpus identification
    Under this heading we group information that identifies the corpus, and specifies the agencies responsible for its creation and distribution.

name of corpus (<titleStmt/title>)
producer (<titleStmt/respStmt>). The agency (individuals, research group, "principle investigator", company, institution etc.) responsible for the intellectual content of the corpus should be specified. This may also include information about any funding body or sponsor involved in producing the corpus.

https://bond-lab.github.io/Corpus-Linguistics/dlc/chapter3.htm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.