ProductPromotion
Logo

Go.Lang

made by https://0x3d.site

GitHub - jorelosorio/spellingcorrector: Spelling corrector for Spanish language
Spelling corrector for Spanish language . Contribute to jorelosorio/spellingcorrector development by creating an account on GitHub.
Visit Site

GitHub - jorelosorio/spellingcorrector: Spelling corrector for Spanish language

GitHub - jorelosorio/spellingcorrector: Spelling corrector for Spanish language

Spelling Corrector

Tests Coverage Status Go Reference Go Report Card

A spelling corrector for the Spanish language or create your own.

The solution for this project was based on the proposal made on the following website: http://norvig.com/spell-correct.html and some ideas from https://cxwangyi.wordpress.com/2012/02/15/peter-norvigs-spelling-corrector-in-go/ as well.

The built-in data was trained using the Spanish language.

Try it

Use it now with a Docker instance. It will open the 8080 port to access the service.

docker pull jorelosorio/spellingcorrector:latest

docker run --name spellingcorrector -d -p 8080:80 -t jorelosorio/spellingcorrector:latest

Try it using the following example:

http://localhost:8080/spelling?word=espanol

Tools

Development

This project contains a Dockerfile file with all required dependencies to run it using Visual Studio Code + Remote - Containers extension. However, if you want to make it run locally in your development machine, please follow the instructions below.

Install Go

Install it from https://go.dev/dl/

Build the Example/Service

Make sure the port 80 is currently free. Optionally could be changed in the code!

go build -o ./bin/ ./examples/service.go

Then run the service

./bin/service ./dictionaries/es.dic

Example of correction

Simple usage example of the Corrector function.

package main

import (
	"fmt"

	sc "github.com/jorelosorio/spellingcorrector"
)

func main() {
	spelling, _ := sc.NewSpelling("{YOUR_PATH_TO_DICTIONARY}")
	correctedWord := spelling.Correction("espanol")
	fmt.Println(correctedWord)
}

NewSpelling functions returns (Spelling, error), make sure to handle errors when creating a new object.

Training

Most of the training was made using free versions of books in Spanish. However, if you like to train for a new language you can use the following functions

package main

import (
    sc "github.com/jorelosorio/spellingcorrector"
)

func main() {
    dic, _ := sc.NewDictionary("{YOUR_PATH_TO_DICTIONARY}", sc.ESAlphabet) // Or ENAlphabet
    dic.TrainFromTextFile("{YOUR_INPUT_TEXT}")
}

Call TrainFromTextFile function as many times you wish with different inputs.

NewDictionary functions returns (Dictionary, error), make sure to handle errors when creating a new dictionary.

Build Docker

To build the docker image use .dockers/Dockerfile.deploy and the command

docker build -f Dockerfile.deploy -t jorelosorio/spellingcorrector:latest .

To run the docker image

docker run --name spellingcorrector -d -p 8080:80 -t jorelosorio/spellingcorrector:latest

Test the spelling corrector from the docker image

http://localhost:8080/spelling?word=espanol

Articles
to learn more about the golang concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

Queries
or most google FAQ's about GoLang.

mail [email protected] to add more queries here ๐Ÿ”.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory