C..
C..

Reputation: 7547

Classification of relationships in words?

I'm not sure whats the best algorithm to use for the classification of relationships in words. For example in the case of a sentence such as "The yellow sun" there is a relationship between yellow and sun. THe machine learning techniques I have considered so far are Baynesian Statistics, Rough Sets, Fuzzy Logic, Hidden markov model and Artificial Neural Networks.

Any suggestions please?

thank you :)

Upvotes: 1

Views: 1479

Answers (4)

Tristan
Tristan

Reputation: 6906

The Stanford Parser does exactly what you want. There's even an online demo. Here's the results for your example.

Your sentence
The yellow sun.

Tagging
The/DT yellow/JJ sun/NN ./.

Parse
(ROOT
  (NP (DT The) (JJ yellow) (NN sun) (. .)))

Typed dependencies
det(sun-3, The-1)
amod(sun-3, yellow-2)

Typed dependencies, collapsed
det(sun-3, The-1)
amod(sun-3, yellow-2)

From your question it sounds like you're interested in the typed dependencies.

Upvotes: 2

hashable
hashable

Reputation: 3851

Like the user dmcer pointed out, dependency parsers will help you. There is tons of literature on dependency parsing you can read. This book and these lecture notes are good starting points to introduce the conventional methods.

The Link Grammar Parser which is sorta like dependency parsing uses Sleator and Temperley's Link Grammar syntax for producing word-word linkages. You can find more information on the original Link Grammar page and on the more recent Abiword page (Abiword maintains the implementation now).

For an unconventional approach to dependency parsing, you can read this paper that models word-word relationships analogous to subatomic particle interactions in chemistry/physics.

Upvotes: 2

dmcer
dmcer

Reputation: 8176

It kind of sounds like you're looking for a dependency parser. Such a parser will give you the relationship between any word in a sentence and its semantic or syntactic head.

The MSTParser uses an online max-margin technique known as MIRA to classify the relationships between words. The MaltParser package does the same but uses SVMs to make parsing decisions. Both systems are trainable and provide similar classification and attachment performance, see table 1 here.

Upvotes: 5

Peter Alexander
Peter Alexander

Reputation: 54300

Well, no one knows what the best algorithm for language processing is because it hasn't been solved. To be able to understand a human language is to create a full AI.

Hoever, there have, of course, been attempts to process natural languages, and these might be good starting points for this sort of thing:

X-Bar Theory

Phrase Structure Rules

Noam Chomsky did a lot of work on natural language processing, so I'd recommend looking up some of his work.

Upvotes: 1

Related Questions