I am thinking of implementing a POS tagger by myself. a POS tagger, extracts the syntax role of a word in a sentence.
According to my studies, word co-occurrence is a technique to analyze word occurrence which can be used to construct a graph where nodes are words and the weights between them is their co-occurrence weight.

I am wondering if there is a way to apply clustering algorithms on this graph to group words based on their syntax roles? i mean i want to do the same as a POS tagger does. the main idea is that after constructing the graph of co-occurrence, how can i apply a clustering or community detection algorithm on this graph to group nodes based on their roles in a sentence? for example, to group nodes which are verbs, or group nodes that are nouns. in clustering i don't need to know this is verb or not, i only want to group nodes which have a similar syntax in graph. then i will analyze them to find out they are weather a verb or noun or ... I would be so thankful if you give mind on starting this project.


1 Answer 1


First, you are right that word co-occurrence graphs have been used in various applications of NLP. More precisely in applications related to the meaning of the words, typically for topic modelling or word sense induction. These applications follow the linguistic principle that words which occur in similar contexts tend to have a similar meaning. This is the basis of distributional semantics.

However this principle is unlikely to help finding words which have a similar syntactic function, simply because the co-occurrences in a sentence don't correspond to their syntactic role: a sentence usually contains many distinct POS tags, it doesn't have a specific POS category. Basically, word co-occurrences are useful for semantics, not syntax.

If the goal is to implement a POS tagger, why not use state of the art methods known to work very well for POS tagging? There is a lot of training data available, for instance the Universal Dependencies corpora.

Note that POS tagging is normally a supervised task (based on annotated data), whereas your idea appears to be about finding groups of similar POS in an unsupervised way. This would be another story entirely, probably involving grammatical inference.

  • $\begingroup$ I am so thankful from you for your complete answers. thank you. I will study these topics you suggested in answers. $\endgroup$
    – Orca
    Jan 15, 2021 at 10:57
  • $\begingroup$ i aim to build a model that uses word co occurrences to build a graph and then use community detection or clustering algorithms to group words with same syntactic roles to same communities and then by analyzing groups i want to label communities as verb, or noun, etc. $\endgroup$
    – Orca
    Jan 15, 2021 at 11:03
  • $\begingroup$ @hamid you should try, but you will probably see that the groups of words that you obtain based on cooccurrences are not really related syntactically. $\endgroup$
    – Erwan
    Jan 15, 2021 at 22:57
  • $\begingroup$ i agree with you. i think this approach wont help me. maybe i confuse the concepts. i have read about collocation of words. Can Collocation concept be helpful for my problem? Among the techniques for word and sentence processing, can you please help me which one can be used to make a graph of words so that i can apply clustering on them to group words with similar syntax in one class or community? $\endgroup$
    – Orca
    Jan 17, 2021 at 9:55
  • $\begingroup$ @hamid in order to represent syntax the order of the words is very important, and simple co-occurrences don't take it into account. There might be a way to do what you want by grouping words based on which word they precede or follow. So instead of having an edge between words which just co-occur, you would have a directed edge between words which follow each other. That would get you closer to your goal, but I don't think it would work directly with clustering, it might need more work, maybe transforming this graph by connecting all the words which are before/after the same word? $\endgroup$
    – Erwan
    Jan 17, 2021 at 10:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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