https://github.com/kometen/bloomfilter_spellchecker
Spellcheck using bloomfilter and crow webframework and json.
https://github.com/kometen/bloomfilter_spellchecker
bloomfilter cplusplus cpp11 crowwebframework
Last synced: 26 days ago
JSON representation
Spellcheck using bloomfilter and crow webframework and json.
- Host: GitHub
- URL: https://github.com/kometen/bloomfilter_spellchecker
- Owner: kometen
- Created: 2018-01-01T22:31:00.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-01-01T23:51:07.000Z (over 8 years ago)
- Last Synced: 2025-02-28T11:46:23.217Z (over 1 year ago)
- Topics: bloomfilter, cplusplus, cpp11, crowwebframework
- Language: C++
- Size: 1.04 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
I have put together some useful tools and have created a simple spellchecker.
It uses a wordlist I found here on github, a bloomfilter I found and tried
a while back.
The article about the bloomfilter can be found at https://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/.
The idea is to send a json-formatted list in an array with words which is
parsed using the bloomfilter and can say whether the words exists or not.
It loops the array and add it to a std::map which is then converted to a
json format and returned.
I use the crow webframework and nlohmann json framework. And boost.
To compile on macos use
`clang++ -std=c++11 -L/usr/local/lib -lboost_system -o begin begin.cpp BloomFilter.cpp MurmurHash3.cpp`
and on FreeBSD
`clang++ -lthr -std=c++11 -I/usr/local/include -L/usr/local/lib -lboost_system -o begin begin.cpp BloomFilter.cpp MurmurHash3.cpp`
and run it. It then parses the text file and add it to the bloomfilter and then wait for an input.
Send a curl-request like this
`curl -H "Content-Type: application/json" -X POST -d '{"words": ["jeg æder","carmen","basis"]}' trening.gnome.no:18080/bloom_json`
The response may look like
`{"basis":true,"carmen":true,"jeg æder":false,"tarsometatarsal":true}`
The service is running on trening.gnome.no:18080. Currently only an english wordlist is running but if I can get
wordlists in other languages pls. send me a message. One usage can be for wordgames like wordfeud where you just
want to know whether a word is present or not.