I have a dataset with annotations in the form: <Word/Phrase, Ontology Class>, where Ontology Class can be one of the following {Physical Object, Action, Quantity}. I have created this dataset manually for my particular ontology model from a large corpus of text.
Because this process was manual, I am sure that I may have missed some words/phrases from my corpus. If such is the case, I am looking at ways to automatically extract other words from the same corpus that have the “characteristics” as these words in the labeled dataset. Therefore, the first task is to define “characteristics” before I even go with the task of extracting other words.
Are there any standard techniques that I can use to achieve this?
EDIT: Sorry. I should have mentioned that these are domain-specific words not found in WordNet.
Take a look at chapter 6 of the NLTK book. From what you have described, it sounds like a supervised classification technique based on feature (“characteristic”) extraction might be a good choice. From the book:
You can use some of the data that you have manually encoded to train your classifier. It might look like this:
Next you can train your classifier on some of the data you have already tagged:
You should probably train on half of the data you already tagged. That way you can test the accuracy of the classifier with the other half. Keep working on the features until the accuracy of the classifier is as you desire.
You can check individual classifications as follows:
If you are not familiar with NLTK, then you can read the previous chapters as well.