C***i 发帖数: 486 | 1 最近刚接的一个小任务,想和各位讨论下,看看想的方法是否正确。
客户给了9000多商品名字,要求找出相关的UPC。大概有两个步骤。
第一步:CLEAN DATA
商品名字估计是从某个database直接导出来的,产品名称大概看起来都是这个样子的:
-20°F Splash Windshield Washer Fluid
#W65068CS - Heart shape & rectangle compact lip gloss w/body crystal
****GLUE STICKS
10-00197 Polymer-Clear Nail Acrylic
估计用准备把单词都parse出来, 目前这步有点麻烦,产品名称 模式太多 太杂,不知
道有什么更好的方法去clean data. (regular expression?):
product_name_list=['Splash', 'Windshield', 'Washer', 'Fluid']
第二步:Search UPC
目前准备用python-amazon-product-api (in Python) 来处理 (如果各位知道更好的
方法,麻烦提供下信息)。基本就是你提供一个product name, amazon 返回相似的产
品的信息,然后从里面提取UPC或者EAN。
items=api.item_search('All', Keywords=product_name, ResponseGroup='Medium')
这里面有两个问题:
2.1: 有时候 product name 如果提供的太精确,amazon可能找不到产品,如果太笼统
,又返回太多。我初步的想法是,先直接用产品名称搜,如果找不到,就从product_
name_list排列组合产品名称。
2.2: 返回结果一般都不是单一的,这里面存在一个相似度比较,类似这个问题http://www.mitbbs.com/article_t/DataSciences/4337.html
我的想法是用 FuzzyWuzzy library 进行相似度打分,选出前三个。然后再人工鉴别下。
如果各位大牛有什么好的建议和方法,欢迎指导。 |
m******a 发帖数: 77 | 2 记得去年 Sears 那帮人找我的时候,也是问了这个问题,当时我就问他有没有更具挑
战性的问题需要解决。这个东西,说简单也简单,说难也难。最简单可能也有效的办法
就是用 Collaborative Filtering, 几行PIG 就够了, 1-gram 不行就 2-gram, 2-
gram 不行就 3-gram, 或把这几个放一起。 估计能找到百分之八九十,再想提高,就
变成力气活了,要多难有多难 - 我的估计
【在 C***i 的大作中提到】 : 最近刚接的一个小任务,想和各位讨论下,看看想的方法是否正确。 : 客户给了9000多商品名字,要求找出相关的UPC。大概有两个步骤。 : 第一步:CLEAN DATA : 商品名字估计是从某个database直接导出来的,产品名称大概看起来都是这个样子的: : -20°F Splash Windshield Washer Fluid : #W65068CS - Heart shape & rectangle compact lip gloss w/body crystal : ****GLUE STICKS : 10-00197 Polymer-Clear Nail Acrylic : 估计用准备把单词都parse出来, 目前这步有点麻烦,产品名称 模式太多 太杂,不知 : 道有什么更好的方法去clean data. (regular expression?):
|
C***i 发帖数: 486 | 3
谢谢您的建议。回头找一下collaborative filtering 的 library. 应该用不到PIG了
,毕竟就9000多个产品,还不算多
【在 m******a 的大作中提到】 : 记得去年 Sears 那帮人找我的时候,也是问了这个问题,当时我就问他有没有更具挑 : 战性的问题需要解决。这个东西,说简单也简单,说难也难。最简单可能也有效的办法 : 就是用 Collaborative Filtering, 几行PIG 就够了, 1-gram 不行就 2-gram, 2- : gram 不行就 3-gram, 或把这几个放一起。 估计能找到百分之八九十,再想提高,就 : 变成力气活了,要多难有多难 - 我的估计
|
w********m 发帖数: 1137 | 4 做的是一次性任务,还是以后也做类似的?
如果是持续的,可以考虑写个类库,加载字典, 打分。
一次性的话,也就9000个,那就随便写点script整好交差好了。 |
C***i 发帖数: 486 | 5
目前看来是一次的,不过我目前的方法,识别率不高。主要还是product name pre-
processing 和 最后的amazon product search match 结果不高
【在 w********m 的大作中提到】 : 做的是一次性任务,还是以后也做类似的? : 如果是持续的,可以考虑写个类库,加载字典, 打分。 : 一次性的话,也就9000个,那就随便写点script整好交差好了。
|
H****E 发帖数: 254 | 6 你这样错误率会非常的高。因为upc是很detail 产品分类。parse之后最好更具信息分
几类,如产品种类,形状,颜色,尺寸。再mapping.. |
C***i 发帖数: 486 | 7
谢谢你的建议。我现在也觉得错误率不小。有推荐的UPC API之类的么?
【在 H****E 的大作中提到】 : 你这样错误率会非常的高。因为upc是很detail 产品分类。parse之后最好更具信息分 : 几类,如产品种类,形状,颜色,尺寸。再mapping..
|
s**u 发帖数: 2429 | 8 google product name + upc. 选出现频率最高的upc。 |
c***z 发帖数: 6348 | |
c***z 发帖数: 6348 | 10 Sorry my post might be misleading.
majiaaaa大牛's idea is just to join the two tables, one for known items and
one for the unknown ones, each with two columns,
table_1 = (UPC, ngram)
table_2 = (name, ngram)
then group by name and pick the most popular UPC for each name.
It is related to Jaccard but should have better performance. |
l******n 发帖数: 9344 | 11 这个就是个match,和cf没关系。因为你不能造个upc出来
主要是关键词的选择,关键词和upc能够一一对应
【在 c***z 的大作中提到】 : Here is a link to collaborative filtering with Pig: : http://sujitpal.blogspot.com/2012/07/more-fun-with-hadoop-in-ac
|