CompLin / nheengatu

Tools and resources for the computational processing of Nheengatu (Modern Tupi)
7 stars 1 forks source link

algoritmo do etiquetador gera perda de informações #9

Closed leoalenc closed 2 years ago

leoalenc commented 2 years ago

@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
>>> 
leoalenc commented 2 years ago

Neste commit, resolvi os problemas de etiquetagem apontados:


>>> Nheengatagger.tagWord('apekatu')
['A1']
>>> Nheengatagger.tagWord('ipé')
>>> Nheengatagger.tagWord('iepé')
['INDF']
>>> Nheengatagger.tagWord('iepé iepé')
['INDF']
>>> Nheengatagger.tagWord('suri')
['A2']
>>> Nheengatagger.tagWord('se')
['PRON2']
>>> Nheengatagger.tagWord('ne maã')
['INDF']

Lista de palavras ambíguas:


>>> for word,tags in Nheengatagger.DICTIONARY.items():
    if len(tags) > 1:
        print(word,tags)

('aintá',) ['PRON1', 'PRON2']
('akangaíua',) ['A1', 'N']
('amu',) ['INDF-PL', 'INDF']
('apigaua',) ['A1', 'N']
('arauara',) ['A1', 'N']
('auá',) ['INDF', 'INTRR']
('bũa',) ['A1', 'QUANT']
('ikeuara',) ['A1', 'N']
('irusanga',) ['A1', 'N']
('iuakapura',) ['A1', 'N']
('iuakauara',) ['A1', 'N']
('iuaté',) ['A1', 'N']
('kaapura',) ['A1', 'N']
('kaauara',) ['A1', 'N']
('kirimbaua',) ['A1', 'N']
('kuaíra',) ['A1', 'QUANT']
('kunhã',) ['A1', 'N']
('kunhãuara',) ['A1', 'N']
('kuximauara',) ['A1', 'N']
('maã',) ['INDF', 'INTRR', 'N']
('maãsiiara',) ['A1', 'N']
('marupiara',) ['A1', 'N']
('membeka',) ['A1', 'N']
('muíri',) ['INDF', 'INTRR']
('munhangara',) ['A1', 'N']
('pirasua',) ['A1', 'N']
('seẽ',) ['A1', 'N']
('ta',) ['PRON1', 'PRON2']
('tuiué',) ['A1', 'N']
('uaimĩ',) ['A1', 'N']
('ukauara',) ['A1', 'N']
leoalenc commented 2 years ago

Resolvida, ver, por exemplo, #39 e commits relacionados.