Implementación de Lemmatizer para Procesamiento de Texto en Ruby

Estructura del Repositorio

La organización interna del proyecto Lemmatizer se distribuye de la siguiente manera:

lemmatizer/
├── lib/
│   ├── dict/
│   │   ├── index.adj
│   │   ├── index.adv
│   │   ├── index.noun
│   │   └── index.verb
│   └── lemmatizer.rb
├── spec/
│   └── lemmatizer_spec.rb
├── .gitignore
├── Gemfile
├── LICENSE.txt
├── README.md
├── Rakefile
└── lemmatizer.gemspec

Los elementos clave de esta arquitectura incluyen:

  • lib/: Alberga el código fuente principle. lemmatizer.rb contiene la lógica central, mientras que dict/ guarda los índices léxicos necesarios para la lematización (adjetivos, adverbios, sustantivos y verbos).
  • spec/: Directorio de pruebas unitarias para validar el comportamiento de la gema.
  • lemmatizer.gemspec y Gemfile: Archivos destinados a la gestión de dependencias y empaquetado del proyecto.
  • Rakefile: Definición de tareas de automatización para construcción y pruebas.

Punto de Entrada y Ejecución

El núcleo funcional reside en lib/lemmatizer.rb, donde se define la clase encargada de procesar las palabras y reducirlas a sus lemas utilizando los archivos del directorio dict/.

require 'yaml'

class Lemmatizer
  # Implementación de la clase
  # Lógica de búsqueda en diccionarios y reducción morfológica
end

Para utilizar esta herramienta en tu aplicación, primero debes instanciar la clase y luego invocar el método de lematización especificando la categoría gramatical:

require 'lemmatizer'

text_analyzer = Lemmatizer.new
puts text_analyzer.lemma("running", :verb)  # Salida: "run"
puts text_analyzer.lemma("mice", :noun)     # Salida: "mouse"

Configuración de Dependencias

El comportamiento del proyecto y sus dependencias se controlan a través de lemmatizer.gemspec y Gemfile.

El archivo .gemspec define los metadatos necesarios para distribuir la gema, estableciendo su versión y los archivos a incluir:

Gem::Specification.new do |spec|
  spec.name        = 'lemmatizer'
  spec.version     = '0.2.0'
  spec.summary     = "Herramienta de lematización para texto en inglés"
  spec.description = "Adaptación en Ruby del lector de corpus WordNet morphy de NLTK (Python)"
  spec.files       = Dir['lib/**/*']
  spec.license     = 'MIT'
end

Por su parte, el Gemfile facilita la instalación de la biblioteca en entornos de desarrrollo vinculando la fuente de RubyGems:

source 'https://rubygems.org'

gem 'lemmatizer', '0.2.0'

Etiquetas: Ruby lemmatizer nlp GEM WordNet

Publicado el 9-12 12:51