Working on a quick PoC, and it’s based on eBay data. Basically, someone puts in a search phrase and receives a number of listings. These listings have been classified (not by eBay, but by my colleague) as relevant or not to the search query.
There are potentially relevant listings that have been misclassified as not relevant.
Here is a small sample of what the data looks like:
|Sony PlayStation 5 DualSense Gaming Controller PS5 Wireless White Remote||PlayStation 5 DualSense Wireless Controller||1|
|PlayStation 5 DualSense Wireless Controller||PlayStation 5 DualSense Wireless Controller||1|
|PlayStation 5 DualSense Wireless Controller (PS5)||PlayStation 5 DualSense Wireless Controller||1|
|PlayStation 5 (PS5) White DualSense Wireless Controller (OPENED BOX BUT UNUSED)||PlayStation 5 DualSense Wireless Controller||1|
|PlayStation 5 DualSense Wireless Controller (PS5) Brand New & Sealed Free UK P&P||PlayStation 5 DualSense Wireless Controller||1|
|Playstation wireless controller Ps5 dualsense tracking pad + PCB & ribbon cable||PlayStation 5 DualSense Wireless Controller||0|
|PS5 Dualsense Controller (Read Description)||PlayStation 5 DualSense Wireless Controller||0|
|Sony PS5 DualSense Wireless Controller + High Speed Charging Cable||PlayStation 5 DualSense Wireless Controller||0|
|Sony DualSense Sharq Wireless Custom Controller for PlayStation 5 - White||PlayStation 5 DualSense Wireless Controller||0|
|Sony DualSense Wireless Controller for PlayStation 5 - White||PlayStation 5 DualSense Wireless Controller||0|
I wanted to attempt a pretty naive string-based approach to comparing the listings with the search using
stringsim from R’s
stringdist package to see if others could be considered but not sure this is the best way to go about it.
I am aware of libraries like
tm but would appreciate some guidance on what exactly I should be doing. I understand the task as: for each search term, consider which listings are the most “similar”, which might allow me to consider the current “relevant” listings, and suggest others.
Am I correct in thinking that using something like n-grams or bag-of-words would be best especially when the search phrases have multiple words, and in most cases the order of words have meaning (in the search phrase)? Of course the problem is not all listings will adhere to any specific ordering as they have likely been written up for getting as many hits as possible.
It is the relationship between search phrase and listing that determines relevance, so these features are clearly not independent. Is it worth using a classification algorithm?