Hello hello!
How do I match words that rhyme, like end rhymes, last syllable
rhymes, double rhymes, beginning rhymes and first syllable rhymes?
Like rhymer.com. I'm looking to improve my freestyle skills
Much obliged, and thanks!
Hello hello!
How do I match words that rhyme, like end rhymes, last syllable
rhymes, double rhymes, beginning rhymes and first syllable rhymes?
Like rhymer.com. I'm looking to improve my freestyle skills
Much obliged, and thanks!
These links may be of some use (nothing Ruby specific though):
http://www.bradleybuda.com/rhymes/
HTH,
Michael Guterl
On Sat, Aug 30, 2008 at 1:33 PM, Redd Vinylene <reddvinylene@gmail.com> wrote:
Hello hello!
How do I match words that rhyme, like end rhymes, last syllable
rhymes, double rhymes, beginning rhymes and first syllable rhymes?Like rhymer.com. I'm looking to improve my freestyle skills
http://www.youtube.com/watch?v=SmqXKbxDoJ0
Much obliged, and thanks!
-------- Original-Nachricht --------
Datum: Sun, 31 Aug 2008 02:33:34 +0900
Von: "Redd Vinylene" <reddvinylene@gmail.com>
An: ruby-talk@ruby-lang.org, freebsd-ruby@freebsd.org
Betreff: How to match words that rhyme?
Hello hello!
How do I match words that rhyme, like end rhymes, last syllable
rhymes, double rhymes, beginning rhymes and first syllable rhymes?Like rhymer.com. I'm looking to improve my freestyle skills
http://www.youtube.com/watch?v=SmqXKbxDoJ0
Much obliged, and thanks!
Dear Redd,
assuming that you are talking about written text, you might modify the
diff/lcs algorithm
http://raa.ruby-lang.org/project/diff-lcs/
assigning weights to the changes to sort out those pairs of words which have long substrings at the beginning or at the end in common.
If you want to search for English rhymes, a problem might be that English spelling is not
very phonetic in many cases.
For this, there's the soundex algorithm (you'll find several Ruby implementations on the web).
Best regards,
Axel
--
GMX Kostenlose Spiele: Einfach online spielen und Spaß haben mit Pastry Passion!
Redd Vinylene wrote:
Hello hello!
How do I match words that rhyme, like end rhymes, last syllable
rhymes, double rhymes, beginning rhymes and first syllable rhymes?Like rhymer.com. I'm looking to improve my freestyle skills
http://www.youtube.com/watch?v=SmqXKbxDoJ0
Much obliged, and thanks!
English is extremely inconsistent. Good doesn't rhyme with food which doesn't rhyme with flood. You're going to need something that describes the phonetics of each word, like an open dictionary. With that, you should be able to identify which words rhyme.
Rhyme is a subjective term as well. Some words "rhyme" even though they don't meet any formal definition of "rhyme," they just sound right together. But this is a lesser concern.
--
Michael Morin
Guide to Ruby
Become an About.com Guide: beaguide.about.com
About.com is part of the New York Times Company
-------- Original-Nachricht --------
Datum: Sun, 31 Aug 2008 03:24:05 +0900
If you want to search for English rhymes, a problem might be that English
spelling is not
very phonetic in many cases.
For this, there's the soundex algorithm (you'll find several Ruby
implementations on the web).
or even metaphone (http://raa.ruby-lang.org/project/metaphone/\)
look also here : Implement Phonetic ("Sounds-like") Name Searches with Double Metaphone Part VI: Other Methods & Additional Resources - CodeProject
Best regards,
Axel
--
GMX Kostenlose Spiele: Einfach online spielen und Spaß haben mit Pastry
Passion!
Aktuelle Nachrichten aus Politik, Wirtschaft & Panorama | GMX
--
GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
Jetzt dabei sein: http://www.shortview.de/wasistshortview.php?mc=sv_ext_mf@gmx
Michael Morin wrote:
English is extremely inconsistent. Good doesn't rhyme with food which
doesn't rhyme with flood. You're going to need something that describes
the phonetics of each word, like an open dictionary. With that, you
should be able to identify which words rhyme.Rhyme is a subjective term as well. Some words "rhyme" even though they
don't meet any formal definition of "rhyme," they just sound right
together. But this is a lesser concern.
Maybe I'm missing something subtle, but isn't this what soundex is for?
It's definitely not perfect; my experience has been it generally works
better to catch misspellings in proper nouns than anything else, but it
could be potentially useful in the first part of a multi-step filtering
process.
At the worst, soundex is found damn near everywhere (even in some SQL
Database implementations.. I'd be surprised if there wasn't a ruby one)
and it should be easy to test (and rule out, if necessary) with a
wordlist.
-Erik
--
Posted via http://www.ruby-forum.com/\.
-------- Original-Nachricht --------
Datum: Mon, 1 Sep 2008 12:09:01 +0900
Von: Erik Hollensbe <erik@hollensbe.org>
An: ruby-talk@ruby-lang.org
Betreff: Re: How to match words that rhyme?
Michael Morin wrote:
> English is extremely inconsistent. Good doesn't rhyme with food which
> doesn't rhyme with flood. You're going to need something that describes
> the phonetics of each word, like an open dictionary. With that, you
> should be able to identify which words rhyme.
>
> Rhyme is a subjective term as well. Some words "rhyme" even though they
> don't meet any formal definition of "rhyme," they just sound right
> together. But this is a lesser concern.Maybe I'm missing something subtle, but isn't this what soundex is for?
.. which is why I had proposed it in a previous post.
But Michael is right with his examples ... a great number of often-occurring
words that are classified as similar won't sound similar.
So, a good dictionary with phonetic information seems the best idea to go for,
Maybe Wiktionary ? I also liked the American Heritage Dictionary (but I think if you
want to use it as often as you'd need to generate a dictionary of sound-alike words,
you'd have to buy the installed version, and I don't know if it runs under anything
else than Windows...)
Best regards,
Axel
It's definitely not perfect; my experience has been it generally works
better to catch misspellings in proper nouns than anything else, but it
could be potentially useful in the first part of a multi-step filtering
process.At the worst, soundex is found damn near everywhere (even in some SQL
Database implementations.. I'd be surprised if there wasn't a ruby one)
and it should be easy to test (and rule out, if necessary) with a
wordlist.-Erik
--
Posted via http://www.ruby-forum.com/\.
--
Psssst! Schon das coole Video vom GMX MultiMessenger gesehen?
Der Eine für Alle: GMX Produkte Übersicht: Apps, Browser, MailCheck und Co.
Axel Etzold wrote:
-------- Original-Nachricht --------
Datum: Mon, 1 Sep 2008 12:09:01 +0900
Von: Erik Hollensbe <erik@hollensbe.org>
An: ruby-talk@ruby-lang.org
Betreff: Re: How to match words that rhyme?Maybe I'm missing something subtle, but isn't this what soundex is for?
.. which is why I had proposed it in a previous post.
But Michael is right with his examples ... a great number of
often-occurring
words that are classified as similar won't sound similar.
Missed that, sorry.
However, soundex would be good (and fast) to greatly reduce a base
wordlist, it may still catch words that don't sound alike, but the
likelihood of it omitting words that sound alike is so low it's probably
worth it, and at that point you can apply a more expensive algorithm to
the smaller set.
Of course, I am under the assumption he wants to scan a ton of unrelated
words (say, a whole dictionary) to match against his word.
-Erik
--
Posted via http://www.ruby-forum.com/\.
Erik Hollensbe wrote:
However, soundex would be good (and fast) to greatly reduce a base
wordlist, it may still catch words that don't sound alike, but the
likelihood of it omitting words that sound alike is so low it's probably
worth it, and at that point you can apply a more expensive algorithm to
the smaller set.
BTW, this would make a great Ruby Quiz.
-Erik
--
Posted via http://www.ruby-forum.com/\.
Hehe, I thought so too
On Mon, Sep 1, 2008 at 12:49 PM, Erik Hollensbe <erik@hollensbe.org> wrote:
BTW, this would make a great Ruby Quiz.
Here is a crude start based on an old version I wrote in Pascal. It
should give you a place to start. (Please do not be TOO brutal in
critique. I am new with writing Ruby algorithms. Elegance will come.)
class Soundex
def soundsAlike word1, word2
soundex(word1) == soundex(word2)
end
def soundex w
w.upcase!
temp1 = w[0,1]
1.upto(w.length - 1) { |i|
case w[i, 1]
when 'B','F','P','V'
temp1 += '1'
when 'C','G','J','K','Q','S','X','Z'
temp1 += '2'
when 'D','T'
temp1 += '3'
when 'L'
temp1 += '4'
when 'M', 'N'
temp1 += '5'
when 'R'
temp1 += '6'
end
}
i = 1
while i < temp1.length - 1 do
if temp1[i] == temp1[i + 1]
temp1[i] = ''
else
i += 1
end
end
temp1
end
end
s = Soundex.new
p s.soundsAlike('their', 'there') # returns true
--
Posted via http://www.ruby-forum.com/.
-------- Original-Nachricht --------
Datum: Wed, 3 Sep 2008 23:09:05 +0900
Von: Lloyd Linklater <lloyd@2live4.com>
An: ruby-talk@ruby-lang.org
Betreff: Re: How to match words that rhyme?
Here is a crude start based on an old version I wrote in Pascal. It
should give you a place to start. (Please do not be TOO brutal in
critique. I am new with writing Ruby algorithms. Elegance will come.)class Soundex
def soundsAlike word1, word2
soundex(word1) == soundex(word2)
enddef soundex w
w.upcase!
temp1 = w[0,1]
1.upto(w.length - 1) { |i|
case w[i, 1]
when 'B','F','P','V'
temp1 += '1'
when 'C','G','J','K','Q','S','X','Z'
temp1 += '2'
when 'D','T'
temp1 += '3'
when 'L'
temp1 += '4'
when 'M', 'N'
temp1 += '5'
when 'R'
temp1 += '6'
end
}
i = 1
while i < temp1.length - 1 do
if temp1[i] == temp1[i + 1]
temp1[i] = ''
else
i += 1
end
end
temp1
end
ends = Soundex.new
p s.soundsAlike('their', 'there') # returns true
--
Posted via http://www.ruby-forum.com/\.
Another solution, which could help the problem of non-phonetic writing in English is to use
the external text-to-speech program espeak:
http://espeak.sourceforge.net/
It can produce a kind of phonetic writing for English like so:
axel@alecrim:~$ espeak -v mb-en1 'dough' > res
axel@alecrim:~$ cat res
d 65
@U 294 0 103 80 77 100 77
_ 263
_ 1
axel@alecrim:~$ espeak -v mb-en1 'tough' > res2
axel@alecrim:~$ cat res2
t 100
V 129 0 103 80 77 100 77
f 142
_ 263
_ 1
axel@alecrim:~$ espeak -v mb-en1 'bow' > res3
axel@alecrim:~$ cat res3
b 65
@U 294 0 103 80 77 100 77
_ 263
_ 1
... this works also in other languages for which the correspondence between pronounciation and
spelling isn't one-to-one, e.g., French:
axel@alecrim:~$ espeak -v mb-fr1 'eaux' > res4
axel@alecrim:~$ cat res4
o 202 0 103 80 77 100 77
_ 263
_ 1
axel@alecrim:~$ espeak -v mb-fr1 'o' > res5
axel@alecrim:~$ cat res5
o 202 0 103 80 77 100 77
_ 263
_ 1
espeak has many "voices" for different languages. For the above to work, you'll need to choose Mbrola
voices, because the text-to-speech system Mbrola (http://tcts.fpms.ac.be/synthesis/mbrola.html\) needs
this phonetic text as input.
Best regards,
Axel
--
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
Browser-Versionen downloaden: GMX Browser - verwenden Sie immer einen aktuellen Browser. Kostenloser Download.