LR-POR / PorGram

A Portuguese HPSG Grammar
Other
2 stars 1 forks source link

implement a lexicon manager #60

Open leoalenc opened 2 years ago

leoalenc commented 2 years ago

@arademaker , para evitar o tipo de problema descrito em #59, sugiro implementar uma classe Lexicon em Python que armazene todo o léxico da PorGram numa estrutura de dicionário e permita também atualizar o léxico:

>>> mylexicon = Lexicon('*.tdl') 
>>> mylexicon.get('convencer')
[convencer_1 , convencer_2]
>>> convencer_1.type
'a-que-ditrans-second-arg-control-verb-lex' 
>>> convencer_2.type
'a-inf-ditrans-second-arg-control-verb-lex' 
>>> Lexicon.update('convencer','some-other-type')
>>> mylexicon.get("convencer")
[convencer_1 , convencer_2,convencer_3]
>>> convencer_3.type
'some-other-type'
>>> Lexicon.print('new-entries.tdl')
New entries saved to file: new-entries.tdl

O construtor da classe Lexicon poderia admitir também uma lista de arquivos em TDL ou um arquivo de script de carregamento do LKB em LISP, onde se listam os arquivos do léxico. Essa classe seria útil para criar novas entradas a partir dos dados do Bosque, utilizando a biblioteca Valence. Um desafio é como lidar com os dados criados por meio do questionário. Por exemplo, verbos criados por essa via com uma única variante não possuem o sufixo _1. O interessante seria uma função que editasse o arquivo choices, inserindo esse índice.

leoalenc commented 2 years ago

Relevante também para #19.

arademaker commented 2 years ago

A ideia de um gerenciador de entradas lexicais já foi proposta. Existe https://github.com/delph-in/docs/wiki/LexDbInitialize e podemos obter mais informações de como usar.

arademaker commented 2 years ago

Também gostaria de sugerir começarmos a investir em uma biblioteca integrada em haskell e não em manter dos códigos em haskell e Python.