Skip to content

0xnu/nysiis

Repository files navigation

nysiis

Release Go Report Card Go Reference PyPI version npm version LuaRocks License

The nysiis package provides a Golang implementation of the New York State Identification and Intelligence System (NYSIIS) phonetic encoding algorithm. NYSIIS encodes names based on pronunciation, which is helpful in name-matching and searching applications.

Installation

go install github.com/0xnu/nysiis

Usage

package main

import (
	"fmt"

	"github.com/0xnu/nysiis"
)

func main() {
	// Create a new instance of the NYSIIS encoder
	encoder := nysiis.NewNysiis()

	// Example names to encode
	names := []string{
		"Watkins",
		"Robert Johnson",
		"Samantha Williams",
		"Olanrewaju Akinyele", // Yoruba
		"Obinwanne Obiora", // Igbo
		"Abdussalamu Abubakar", // Hausa
		"Virat Kohli", // Hindi
		"Usman Shah", // Urdu
	}

	// Encode each name using NYSIIS
	for _, name := range names {
		encodedName := encoder.Encode(name)
		fmt.Printf("Encoded name for %q: %s\n", name, encodedName)
	}
}

Test

To test nysiis, ensure that you have Go installed on your system. Then, follow these steps:

go test ./...

Reference

@inproceedings{Rajkovic2007,
  author    = {Petar Rajkovic and Dragan Jankovic},
  title     = {Adaptation and Application of Daitch-Mokotoff Soundex Algorithm on Serbian Names},
  booktitle = {XVII Conference on Applied Mathematics},
  editors   = {D. Herceg and H. Zarin},
  pages     = {193--204},
  year      = {2007},
  publisher = {Department of Mathematics and Informatics, Novi Sad},
  url       = {https://jmp.sh/hukNujCG}
}

Additional References

License

This project is licensed under the MIT License.

Copyright

(c) 2024 Finbarrs Oketunji.