Global Names Finder
Finds scientific names using dictionary and nlp approaches.
- Global Names Finder
- Multiplatform packages (Linux, Windows, Mac OS X).
- Self-contained, no external dependencies, only binary
gnfinder.exe(~15Mb) is needed.
- Takes UTF8-encoded text and returns back JSON-formatted output that contains detected scientific names.
- Automatically detects the language of the text, and adjusts Bayes algorithm. for the language. English and German languages are currently supported.
- Uses complementary heuristic and natural language processing algorithms.
- Does not use Bayes algorithm if language cannot be detected. There is an option that can override this rule.
- Optionally verifies found names against multiple biodiversity databases using gnindex service.
- The library can be used concurrently to significantly improve speed. On a server with 40threads it is able to detect names on 50 million pages in approximately 3 hours using both heuristic and Bayes algorithms. Check bhlindex project for an example.
Install as a command line app
Download the binary executable for your operating system from the latest release.
Linux or OS X
gnfinder executabe somewhere in your PATH
sudo mv path_to/gnfinder /usr/local/bin
One possible way would be to create a default folder for executables and place
combination and type "
cmd". In the appeared terminal window type:
mkdir C:\bin copy path_to\gnfinder.exe C:\bin
C:\bin directory to your
PATH environment variable.
go get github.com/gnames/gnfinder cd $GOPATH/src/github.com/gnames/gnfinder make install
Usage as a command line app
To see flags and usage:
gnfinder --help # or just gnfinder
To see the version of its binary:
Getting data from a pipe forcing English language and verification
echo "Pomatomus saltator and Parus major" | gnfinder find -c -l eng
Verifying data against
Encyclopedia of Life
echo "Pomatomus saltator and Parus major" | gnfinder find -c -l eng -s "4,12"
Getting data from a file and redirecting result to another file
gnfinder find file1.txt > file2.json
Usage as gRPC service
Start gnfinder as a gRPC server:
# using default 8778 port gnfinder grpc #using some other port gnfinder grpc -p 8901
Use a gRPC client for gnfinder. To learn how to make one, check a
Ruby implementation of a client.
Usage as a library
cd $GOPATH/srs/github.com/gnames/gnfinder make deps
import ( "github.com/gnames/gnfinder" "github.com/gnames/gnfinder/dict" ) bytesText := byte(utfText) jsonNames := FindNamesJSON(bytesText)
Usage as a docker container
docker pull gnames/gnfinder # run gnfinder server, and map it to port 8888 on the host machine docker run -d -p 8888:8778 --name gnfinder gnames/gnfinder
To install latest gnfinder
git get github.com/gnames/gnfinder cd $GOPATH/src/github.com/gnames/gnfinder make deps make gnfinder -h
Install [ginkgo], a [BDD] testing framefork for Go.
To run tests go to root directory of the project and run
ginkgo #or go test #or make test