I have just very recently started to develop an interest in machine learning, and I have a particular problem in mind that I would like to start to explore.
I would like to train a system to automatically classify various attributes of an item, based on what's in a string.
Let's say I have a long list of various mutual funds, like:
Ticker Fund Name
------ ---------
ABNAX ABC Bond Fund, Inc: Bond Inflation Strategy
ALYSX ABC Bond Fund, Inc: Credit Long/Short Portfolio; Advisor Class
AGRXX DEF Bond Fund, Inc: Government Reserves Portfolio; Class 1 Shares
HIYYX FGH Bond Fund, Inc: High Yield Portfolio; Advisor Class Shares
HIYAX FGH Bond Fund, Inc: High Yield Portfolio; Class A Shares
...
… And so on.
I have a large data set that contains "complete" classifications, which have Fund Names similar to the ones above, and – in addition – a human has already given the training set items certain attributes. For example:
AIISX Allianz Funds Multi-Strategy Trust: AllianzGI International Small-Cap Fund; Class R6 Shares
Which will have the associated attributes:
Strategy: Multi-Strategy
Geography: International
Capitalization: Small-Cap
Share class: R6
The challenge for the machine learning system will be to assign the right value to an attribute, when there are values "competing" on the same attribute. Let's say that a certain fund can have Strategy: Long-Short
and Strategy: High Yield
at the same time – and both terms are present in the Fund name. The system should select the right one, based on exposure to historical bias present in the training data set.
Question
I am interested in getting a grasp of which machine learning methods and algorithms that would be able to "learn" how to classify an item, based on a large set of examples with human-classified attributes, as indicated above.
I am a complete beginner to machine learning, except for some basic knowledge of statistics, so I would just like to be pointed in a general direction.
Can/should this be accomplished with something like multiple regression, or are we looking at something else? Is some sort of natural language processing needed – or is basic keyword pattern recognition enough?
Lastly, which terminology or labeled area of expertise would summarize this problem description?