ticki / eudex Goto Github PK
View Code? Open in Web Editor NEWA blazingly fast phonetic reduction/hashing algorithm.
License: MIT License
A blazingly fast phonetic reduction/hashing algorithm.
License: MIT License
Do I just module table length as usually? Or there is something else to be done?
did you mean pronounciation or pronunciation in the README.md?
How does eudex handle sounds such as ch
, sh
, th
and ng
in english?
Or y
in front as a consonant vs in the middle as a vowel?
Or c
having a k
sound or a s
sound in certain situations?
FWIW I ported Eudex to Java at https://github.com/jprante/elasticsearch-analysis-phonetic-eudex/blob/master/src/main/java/org/xbib/elasticsearch/index/analysis/phonetic/Eudex.java with tests at https://github.com/jprante/elasticsearch-analysis-phonetic-eudex/blob/master/src/test/java/org/xbib/elasticsearch/index/analysis/phonetic/EudexTests.java and wrapped an Elasticsearch analysis plugin around it for experimenting.
Hi! This looks really cool -- I'm curious if there is already a C or C++ implementation available? Thanks!
line 250 let mut n = 1u8;
Are you sure this must be u8? Because I suspect it prevents words longer than 16 characters to hash properly.
I am having a hard time trying to convert Eudex to JavaScript, because there is no such thing as 64 bit integer. You can sort of "emulate" it with two numbers, which I am currently trying to do, but I am just curious, why 64 bit? Can this be adapted to 32 bit? In hash tables you normally do not need this huge amount of bits anyway.
As there has been confusion on reddit regarding the interpretation of the hash value it might be a good idea to newtype the u64 the hasher returns right now.
The newtype could have methods like distance()
and weighted_distance()
(or however you'd like to call them) and of course a From
/Into
impl for conversions to u64.
Edit: and of course similar()
if entry <= b'z' {
I am new to Rust so I may get it wrong, but it feels like you are comparing against ordinal('z'), is this the right thing to do? Because you already entry = (string[b] | 32).wrapping_sub(b'a')
I do not know what wrapping_sub
does, I refer to Java port, so it feels you need to compare to 26 instead.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.