I am learning about NLP, with an eye to starting some practical NLP projects. I see that many of the algorithms for relation extraction and named entity recognition require you to identify linguistic features like "word comes before a period" or "word is the last word in a verb phrase." This seems like it takes a lot of manual work. You have to look at instances in the text and parse out features.
I also know that in distant supervised relation extraction they generate tons of features from tons of examples -- so it seems like there are ways to extract features automatically. Are there any ways of doing this? For instance, are there ways to grep for known names and then automatically detect the features around those names? Can anyone list the names of some methods that exist for doing this?