A simple task really:
I need some C code that can take a sentence and produce all possible alternative phrasings of it.
For example:
The cat sat on the mat
The cat sat down on the mat
I like to woodle oranges
Woodling oranges is something I like
I like woodling oranges
You get the idea. First person to implement this and give me the code gets a free prize. I have a cunning plan for this.......
although i am very good at english, i have no clue what you are talking about... so i guess i don't get the prize!
You need to put some bounds on your problem, which is currently a bit large
Much of a sentence that makes it sounds like normal English is redundant. "Cat sat mat" imparts the same level of information as "The cat sat on the mat", but only by implication. It might be a start though, and thinking about it has also led onto thinking about classifying parts of the sentence (subject verb object) and determining sentence meaning by word order, which is more-or-less fixed for simple sentences. Producing other sentence forms from there is a matter of defining valid patterns in which the words can be re-arranged. English really isn't the easiest language to attempt it with :|
How about the passive sense ("The mat was sat on by the cat")?
Yeah, it sounds like you need a simpler language. Have you tried Chinese? And--more importantly

--what sort of "free prize" is this?
I don't speak chinese, and would like to be able to actually use this program myself in a useful way. The project i'm working on is a simple AI that uses boolean logic, but to do this it needs to understand that "the cat sat on the mat" == "the mat was sat on by the cat".
As for the free prize - the prize is your name on the credits and any fame and/or fortune that come along with that (or, more likely, nothing at all other than the satisfaction of knowing you done it).
I may have a look at german to do this now that i've thought more about it.
I don't speak chinese, and would like to be able to actually use this program myself in a useful way. The project i'm working on is a simple AI that uses boolean logic, but to do this it needs to understand that "the cat sat on the mat" == "the mat was sat on by the cat".
As for the free prize - the prize is your name on the credits and any fame and/or fortune that come along with that (or, more likely, nothing at all other than the satisfaction of knowing you done it).
I may have a look at german to do this now that i've thought more about it.
I get what you're saying and I'll have to see what I can do... (nvm, it won't let me do it =_=)
One way is by creating a database of rules and extracting the new sentences according to it.
The other way is by implementing each noun, verb,etc as a variable and simply create templates of possible outcomes.
You don't need boolean logic in order to create such a combination. Still in the case that you would like to extend it with boolean logic then you would still need a number of templates in order for the program to achieve a learning progress after a number of trials.
What about "On the mat the cat sat" or "On mat cat sat". ?
Here my guess...
The mat was sat by the cat.
Cat sat mat
Mat by cat
Doesn't this remind me about the MS-Dos game "Space Quest 2"? Where you type stupidly simple command? just a thought..
My sister knows a ton about language. She knows at least 4 foreign languages. If someone uses grammar incorrectly, for instance, if you say "I'm doing good," she will tell you to say "well," not "good." But she always uses cuss words herself, which isn't linguistically genius at all. If I could get you a linguistic expert, it would be her, though. But she's not much of a computer person.
A simple task really:
I need some C code that can take a sentence and produce all possible alternative phrasings of it.
For example:
The cat sat on the mat
The cat sat down on the mat
I like to woodle oranges
Woodling oranges is something I like
I like woodling oranges
You get the idea. First person to implement this and give me the code gets a free prize. I have a cunning plan for this.......
--------------------
It sounds to me that a Markov chain might fit the bill. Check out http://en.wikipedia.org/wiki/Markov_chain for more info.
Without getting too much into the math, what you would do is start by splitting up a sentence into units. Let's take the last sentence of your message:
> You get the idea. First person to implement this and give me the code gets a free prize. I have a cunning plan for this
So we get:
you get
get the
the idea
first person
person to
to implement
implement this
this and
and give
give me
me the
the code
code gets
gets a
a free
free prize
I have
have a
a cunning
cunning plan
plan for
for this
Then you build a tree. You can start anywhere, because it can loop back around if need be. Let's start at "have a":
"have a" --> "a free"
|
V
"a cunning"
The branches from "a cunning" would be "cunning plan"; from "a free" would be "free prize". This would be a sort of toy model, since you could only obtain "have a free plan" and "have a cunning model". A larger sample would yield more connections between words.
I might suggest developing this in Python or Lisp; I really don't think C is well suited for this sort of project.
The branches from "a cunning" would be "cunning plan"; from "a free" would be "free prize". This would be a sort of toy model, since you could only obtain "have a free plan" and "have a cunning model". A larger sample would yield more connections between words.
Whoops. I meant to have the outcomes be "have a free prize" and "have a cunning plan".
you could simplify this task by only allowing it to give grammatically correct sentences.
A simple task really:
I need some C code that can take a sentence and produce all possible alternative phrasings of it.
For example:
The cat sat on the mat
The cat sat down on the mat
I like to woodle oranges
Woodling oranges is something I like
I like woodling oranges
Hey Gareth, how's your project going? I guess you've probably realized by now that what appears simple often turns out to be really difficult when it comes to AI?
All natural languages (afaik) have lots of exceptions to the rules that you only learn by experience (or by programming in all the exceptions...), and English is particularly bad. German's not great either.
Anyway, you might enjoy reading some good books on AI... you're not the first person to ask a question like this. I've got a decent introductionary text but I can't think of the title at the moment. Personally I'm more interested in neural networks than this type of AI anyway... you might find them interesting too. 
you could simplify this task by only allowing it to give grammatically correct sentences.
That's what I assumed he wanted... either way, that makes it harder, not easier.