You have chosen to sponsor your bid up to a maximum amount of .
I need a piece of Java code which generally does three things:
(1) breaks some English text into smaller pieces,
(2) identifies the keyword (noun) within every piece and converts it into the subjective case, either single or plural,
(3) groups the keywords into categories.
(I'm not a programmer, so I am sorry for such a non-technical description)
(1) The size of the original piece of text is not supposed to be large, kind of 10-50 words or so. The 'smaller pieces' are separated with the following symbols: ",", ".", ";" from the both sides, except for the first 'piece' (separated from the right-hand side only) and the last one (from the left only, or from the both sides). The original text is designed in a way the 'pieces' do not contain more than one noun.
(2) As I said, the 'keyword' is always a noun. No names either. The algorithm have to check the words with a locally stored dictionary, one of the commonly used, i.e. within the OpenNLP project. If you get there some ready code as well - I am fine, just make sure you clean it up from the redundant stuff. Also note that the realization have to be 100% native, no internet connection assumed.
(3) The keywords have to be grouped into categories based on their parent vertical. That is, apples and kiwis are classified as fruits, while beer and cola are classified as beverages. For the sake of simplicity, we'll keep this food focus. The 'keyword-to-group' mapping have to be defined and stored separately (let it be delimited text format).
An accurate (annotated!) source code plus a simple html form for presentation & testing purposes: just a field to enter the original text and the the output - keywords grouped into categories.