Jump to content
  • Advertisement
Sign in to follow this  
chadjohnson

Suggestions on better contextual lookup algorithm?

This topic is 3088 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I know this is not entirely related to gaming, but since you all are familiar with neural networks, I thought it would be useful to ask here... I am developing an application that provides contextual knowledge lookup. The application is in its design phase. I need to know whether a simple graph structure and a traversal algorithm would be sufficient or whether I should go with a neural network. I want to go with the most long-term solution. I am thinking of representing individual concepts with simple nodes. Suppose I want to lookup John's hair color (which is black). I think I need four concept nodes: John, hair, color, and black. Here are two algorithms--which one is best suited for my task? Traversal lookup algorithm See this diagram for reference: 1. Input (something like this), in order: 1. person 2. john 3. hair 4. color 2. Find the graph node corresponding to 'person'. 3. Look at all nodes adjacent to the 'person' node, and find the 'john' node. 4. Look at all nodes adjacent to the 'john' node, and find a node that has links to both the 'hair' node and the 'color' node. Another option would be to represent 'hair color' as its own concept node, making it so 'blond hair' is a 'hair color' concept. Then step (4) would become Look at all nodes adjacent to the 'john' node, and find a node that is a 'hair color' concept. Neural network algorithm 1. Input, in no particular order: 1. person 2. john 3. hair 4. color 2. Train the network to map these particular inputs to the concept 'blond hair'. Any feedback would be appreciated. Thanks! [Edited by - chadjohnson on December 2, 2009 3:59:04 PM]

Share this post


Link to post
Share on other sites
Advertisement
You can use HTML image tags in posts here; I'd do this for your graphic.

I don't understand the motivation for the problem you've presented so I can't give much advice besides to say that in my opinion there are very few problems for which ANNs are actually a better solution than more transparent methods.

Maybe you could describe the application for your "contextual knowledge lookup" to us? And explain why more traditional OO-style approaches (i.e., John.hair.color==blond) aren't a good fit?

Share this post


Link to post
Share on other sites
A milestone goal would be the ability to answer the question, "What color is John's hair?"

So, I want to be able to store the concept of 'person,' concepts of different people, the concept of hair, the concept of color, concepts of multiple different colors, and then I want to link different people to different hair colors.

Once this knowledge and their associations are in place, I'd like to be able to look up a given person's hair color, given (inputs) a reference to a person, the concept of hair, and the concept of color.

That is where my question comes into play: traversal vs. a neural network.

In case it changes the way you answer, future milestones would be:

  • the computer learning a language's grammar from scratch

  • a computer to answer questions using its knowledge of a language's grammar

  • a computer to translate sentences from one language to another, correctly, based on context and existing knowledge. In its most simple form, it would store a concept, associate a word for a given language with the concept, and associate another word for another language with that same concept. To translate, the word for the target language associated with the concept would be found and returned (see diagram below).





Quote:
Original post by Emergent
Maybe you could describe the application for your "contextual knowledge lookup" to us? And explain why more traditional OO-style approaches (i.e., John.hair.color==blond) aren't a good fit?


I don't think it would work, for example, for the sentence, "The red fox jumped over the brown dog" when asking the question, "What did the fox jump over?" I'll keep an open mind, though.

I suppose I could do this:

fox
fox.jumped
fox.jumped.over
fox.jumped.over.dog

but I think that is too simple a mechanism for achieving the milestones described.

[Edited by - chadjohnson on December 2, 2009 5:29:39 PM]

Share this post


Link to post
Share on other sites


There are many relationships that are triples (and other tuple multiples)


EX- Action upon an object (target) by an object (doer)using an object (tool)


Suddenly 2D graphs not so easy to present those more complicated relationships

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!