I need a program that will categorize keywords. The program should evaluate a very large list of keywords and categorize them based on the words within the keywords. The program counts the number of words and the times that they appear in each keyword and keeps a total number of times that the word appears within all keywords. It then moves each entire keyword into a category according to the number of times the keyword has appeared. For example, if the list was: car insurance car parts homes for sale buy car dental insurance mortgages travel insurance You can see that the word 'car' has appeared 3 times, therefore, it would become a category and all three keywords 'car insurance' 'car parts' 'buy car' would be placed in that category. You would end up with the following categories: - car - insurance - home - mortgages - travel - dental The priority is based on the number of times a word appears. So, if you have: car insurance car parts car rental home insurance Then the keyword 'car insurance' would be placed in the 'car' category since 'car' appears 3 times and 'insurance' only once. In the event of a tie, the program would place all ties into a category named 'tied'. The program needs to following functionality as well: 1 - Rule out certain words: There needs to be 2 parts to this: 1) a default section that words can be added to or subtracted from. It would contain words like 'for' 'a' etc. This would load each time the program was loaded. 2) a field where we could input words to be ignored - words that wouldn't be considered for categorization 2 - The letter 's'. Words that have a letter 's' at the end should be grouped with words that don't have the 's' but are the same, in fact. Such as 'car' and 'cars'. These would be the same category. 3 - You should also be able to require that a certain word have it's own category and all keywords from each category should be moved into that category, regardless of the count.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
windows