Imagine two languages that have only these words:

Man = 1,
deer = 2, 
eat = 3,
grass = 4 

And you would form all sentences possible from these words:

Man eats deer.
Deer eats grass.
Man eats.
Deer eats.


Mensch = 5,
Gras = 6, 
isst = 7, 
Hirsch = 8

Possible german sentences:

Mensch isst Hirsch.
Hirsch isst Gras.
Mensch isst.
Hirsch isst.

How would you write a program that would figure out which words have same meaning in english and german?

It is possible.

All words get their meaning from the information in which sentences they can be used. Connection with other words define their meaning.

We need to write a program that would recognize that a word is connected to other words in the same way in both language. Then it would know those two words must have the same meaning.

If we take word "deer" (2) it has this structure in english


In german (8):


We get the same structure (pattern) in both languages: both 8 and 2 lie in first and last position, and middle word is the same in both languages, the other word is different in both languages. So we can conclude that 8=2 because both elements are connected with other elements the same way.

Maybe we just need to write a very good program for recognizing analogies and we will be on the right track to creating AI?

  • 1
    $\begingroup$ This is similar to the way that example-based machine translation systems are designed. $\endgroup$ – Anderson Green Jan 25 '18 at 8:23
  • 1
    $\begingroup$ These are advanced levels of NLP and a lot of research is going on this matter...No researcher has able to come up with a flawless theory which describe how humans develop language among themselves....So writing such programs still remain a distant dream.... According to me all the nlp programs are kind of superficial in nature $\endgroup$ – DuttaA Jan 25 '18 at 11:14
  • 1
    $\begingroup$ Welcome to AI! My sense is that language development is partly creative, so it may require algorithms that can think abstractly in a general semantic context. Combinatorially speaking, I think you'd also need to include ["grass eats", "grass eats deer", "deer eats man"] and give a distinct value to "eats" as a verb, to distinguish from nouns (possibly this could be approached logarithmically.) You'll also have to contend with poetic constructions "Deer, man eats", etc., nonsense such as "deer eats man", and abstractions "grass eats man" (in the sense of "dust to dust", as fertilizer.) $\endgroup$ – DukeZhou Jan 25 '18 at 18:33
  • $\begingroup$ Yes, we can add all those metaphorical sentences. Basically every sentence that is syntatically correct and not total nonsense. But for the sake of simplicity I left them out. Program would work that way anyway that it would count frequency of sentences used in large amounts of texts. Your examples would have very small frequency and so connections between those words wouldn't have that much meaning for the definition of word as would frequent sentences. $\endgroup$ – Tone Škoda Jan 27 '18 at 21:56

Isn't this what already Word2Vec and other word-embedding techniques already use. You know your word by the company it keeps is an idea that has been around for some time now.

  • $\begingroup$ Never heard of it. I'll read about it. $\endgroup$ – Tone Škoda Jan 27 '18 at 22:07

For this example the function below will do: TSAI.Analogies.FindAnalogy(List ex1, List ex2, List ex3, out List ex4) ex1 is to ex2 as ex3 is to ex4. Figure out ex4.

Fill ex4 with values from ex2. For every value in ex3: find out to which positions in ex4 we have to copy this value, based on value in ex1 at the same position that was repeated in ex2.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.