| FAQ last modified | Sat Jun 9 16:35:37 2007 GMT |
|---|---|
| Current time | Wed Jan 7 10:25:20 2009 GMT |
1.0. Word Morphing
1.1. Is the term "word morphing" officially recognized?
1.2. What is word morphing?
1.3. What does this page do?
2.0. Examples and Details
2.1. What is "extended" word morphing? (lawyer/ass example on main page)
2.2. Should I check "allow removing letters" and "allow adding letters" if both words are the same length? (venus/earth example on main page)
3.0. Errata
3.1. I did not check the box that said "Allow removing letters from a word to create morph", but the program removed some letters while morphing anyway. Why?
3.2. I did not check the box that said "Allow adding letters to a word to create morph", but the program added some letters while morphing anyway. Why?
3.3. What happens if I'm morphing between two words of equal length and set only one of "Allow adding letters to a word to create morph" or "Allow removing letters from a word to create morph"?
3.4. I found a way to morph two words that your program didn't. Is there a mistake in your program?
4.0. Miscellaneous
4.1. Do my source or target words have to be correctly spelled English words?
4.2. Is this program efficient?
4.3. What's the Unix dictionary and why do you use it?
4.4. What is (i)spell and why do you use it?
4.5. Why do you use a fixed width font when displaying results?
4.6. What are some spectacular examples of word morphing?
5.0. What These Pages Are Not About
I'm not sure. In all cases below, when I say "word morphing" means something, I'm referring only to its meaning on my pages. The phrase "word morphing" may have a different meaning universally and there may not be a name for what I'm doing these pages.
1.2. What is word morphing?
Word morphing means changing one word into another by changing one letter at a time where each change results in a valid word. As a simple example, "house" can be morphed to "mouse" by changing the first letter. "House" can also be morphed to "horse" by changing the third letter. Morphing doesn't stop after one step: for example, "mouse" can be morphed into "horse" by first changing the first letter from 'm' to 'h' (to give "house") and then the third letter from 'u' to 'r'.
1.3. What does this page do?
Given two words, it tries to find a way to morph from one word to the other, and then displays it.
Normally, word morphing only allows changing the letters of a word, which means the word remains the same length. With extended word morphing, it's acceptable to add a new letter to the word, or to remove an existing letter. For example, extended word morphing can turn "horse" into "hoarse" by adding an 'a' between the 'o' and the 'r'. The "lawyer" to "ass" example uses extended word morphing (since it would be otherwise impossible to convert a 6-letter word to a 3-letter word). And, as a final note on this subject, no, I don't have anything against lawyers-- I just thought this would make an amusing example.
2.2. Should I check "allow removing letters" and "allow adding letters" if both words are the same length? (venus/earth example on main page)
It may seem like if two words are the same length, there would be no need to check the "removing letters" and "adding letters" box. However, doing so can actually help find morphs. As an example, "Venus" cannot be morphed to "Earth" using only five letter words. However, if you click on "adding letters" and "removing letters", "Venus" can be morphed into "Earth"-- near the last step "heath" is morphed by adding the letter 'r' to create "hearth" and then "hearth" is morphed by dropping the letter 'h' to "earth". This morph would not be possible if the program weren't allowed to add or remove letters.
If you're trying to morph from a longer word to a shorter word, the program automatically turns on the "removing letters" feature even if you don't select it, since it would otherwise be impossible to morph from a longer word to a shorter word.
3.2. I did not check the box that said "Allow adding letters to a word to create morph", but the program added some letters while morphing anyway. Why?
If you're trying to morph from a shorter word to a longer word, the program automatically turns on the "adding letters" feature even if you don't select it, since it would otherwise be impossible to morph from a shorter word to a longer word.
3.3. What happens if I'm morphing between two words of equal length and set only one of "Allow adding letters to a word to create morph" or "Allow removing letters from a word to create morph"?
If you're morphing between words of equal length and click only on "adding letters", this won't help. For example, if you're morphing between 2 five-letter words, "adding letters" will let the program create six-letter words (and maybe even seven-letter words, eight-letter words, etc)-- however, since it can't remove letters, it can never get back to five letters and therefore it can never hit the target word. Similarly if you click only on "removing letters" (the morphs can get shorter, but can never again get long enough to hit the target word). The program recognizes this -- if you select only one of "adding letters" or "removing letters" when morphing between words of equal length, the program will ignore your selection and neither add nor subtract letters.
3.4. I found a way to morph two words that your program didn't. Is there a mistake in your program?
Well, sort of. The program should find all morphs that can be created from words in the Unix dictionary (or words recognized by (i)spell if the "Use only words found in the Unix dictionary" option is unchecked), but not other morphs. Despite best efforts, the Unix dictionary (and even (i)spell) weren't complete when they were created, and, of course, like all dictionatires, become more out-of-date as the English language evolves. If you find an example of a morph that doesn't work (ie, a morph the program can't find that you can find), please do let me know, but understand that the program has certain limitations.
No. Although all the intermediate words the program finds will be correctly spelled English words, your starting and ending words can be any collection of characters. A particularly satisfying example (for me) is that I can start with the word "Sarang" (my first name), and morph it into quite a few different things (partly because "Sarang" morphs into "sprang" and then sprang morphs into quite a few other things).
4.2. Is this program efficient?
Not particularly, but it is symmetrical. One approach would've been to start with the source word and generate all of its morphs one at a time, until either the target word was hit or there were no morphs left. This is not the approach I used. Instead, I morph both the source and target words (one step at a time each), and check to see if any of the morphs match. This is much faster, and also means that if you switch the source and target words, the results will be about as fast. As a specific example, consider morphing "unix" to "penguin" (which is actually not possible). The words "unix" has many morphs, while penguin has only one ("penguins"). If we started with "unix" and found all of its morphs that would take a long time. Starting with "penguin" gives us an answer (ie, that there is no such morph) almost immediately. By using a symmetrical approach, the answer is also obtained quickly.
4.3. What's the Unix dictionary and why do you use it?
The Unix dictionary is a collection of 45,402 words (including some proper names and acronyms). It was originally intended for use with a Unix spelling program and not as a standalone dictionary. The Unix dictionary does not contain all or even most of the words in the English language, nor does it claim to. Nonetheless, it does contain many words and it's frequently possible to morph two words using just the words in this dictionary.
4.4. What is (i)spell and why do you use it?
(i)spell is the Unix interactive spelling program, and provides a much more accurate "dictionary" than the Unix dictionary. It's still not 100% perfect, but comes much closer. For example, the word "refried" is not in the Unix dictionary. However, (i)spell still recognizes it as a correctly spelled word (reason: the word "refry" is in the Unix dictionary, and (i)spell recognized refried as the -ed form of this word!). If you uncheck the "Use only words found in the Unix dictionary" option on the main page, the program will use (i)spell to generate morphs. This is signifigantly slower, but provides more complete results. Pedantic note: there are actually two Unix programs, spell and ispell, but ispell has essentially replaced spell -- I'm using (i)spell to refer to both programs.
4.5. Why do you use a fixed width font when displaying results?
I think it looks a little better when doing word morphing, in particular since two words with the same number of letters display at the same size.
4.6. What are some spectacular examples of word morphing?
The one-letter word "a" and the nine-letter word "besotting" (meaning: infatuating ; making dull or stupid; muddling with drunkenness) can be morphed into each other and into 17,498 other words! Of course, all of these 17,500 words can be morphed into each other as well. As far as I can tell, this is the largest collection of words that can be morphed into each other, but I could be wrong.
Not from this program, no. Because of the way this program runs, it doesn't even calculate all of the morphs for a given word (that would take too long). I've written an offline program that generates all the morphs for a given word, but the generated result is both very slow and very large, so I probably won't be putting that online.
5.2. Does word morphing have anything to do with image morphing?
No. Although I'm interested in image morphing as well, word morphing is much simpler and unrelated to image morphing.
Featured links:
Please do not email this address: 26673f37-49648310@st.sitesuck.com
5.1. Can I get a list of all the morphs for a given word?
5.2. Does word morphing have anything to do with image morphing? 1. Word Morphing
2. Examples and Details
3. Errata
4. Miscellaneous
5. What These Pages Are Not About
Last modified stardate: 20070609.123537