【发布时间】:2012-06-07 02:02:57
【问题描述】:
我正在使用一个 API,将我的 GTIN/EAN 查询映射到产品数据。
由于返回的数据来自商家产品 Feed,因此几乎普遍存在以下情况:
- 每个 GTIN 有多个结果
- 产品的标题几乎是非结构化的
- 产品标题被“污染”
- SEO 相关的东西,
- 关于所含数量的信息,
- “买二送一”优惠,
- 等
我正在寻找一种编程方式
- 选择可用的“最干净”/最规范的版本
- 或生成一个新的表示“最小公分母”。
考虑以下单个 EAN 查询的示例结果:
- Nivea Deo 男士干爽滚珠
- NIVEA DEO Roll on Dry/blau
- Nivea Deo Roll-On Dry Impact for Men,50 毫升,3 件装(3 x 50 毫升)
- Nivea Deo Roll on Dry/blau 50 毫升
- Nivea Deoroller 50 毫升干男士 blau Mindestabnahme:6 Stück (1 VE)
- NIVEA Deoroller,男士干爽效果
- NIVEA DEO 滚干/blau_50 毫升
我的自制方法如下所示:
- 基本清理:
- 小写标题,
- 去除过多的空白,
- 去掉明显的停用词,例如“购买”和“点击”
- 为
word => global occurence构建一个数组"Nivea" => 7"Deo" => 5"Deoroller" => 2…"VE" => 1
- 计算每个标题的“累积词值”
"Nivea Deo" => 12"Nivea Deoroller VE" => 10
- 将累积值除以标题长度,得到一个分数
"Nivea Deo" => 6"Nivea Deoroller VE" => 3.34
显然,我的方法非常基本,容易出错,并且偏向于使用常用词的短句——产生或多或少令人满意的结果。
- 您会选择其他方法吗?
- 有什么 NLP 神奇的方法可以解决我不知道的问题吗?
【问题讨论】:
-
为什么“购买”和“点击”这两个词不会在您的规范表单中显示为统计上常见的条目?
-
@IraBaxter 更新了问题;)
-
+1 因为你将需要你能获得的所有声誉。
-
您没有指明结果的预期用途:是显示项目的一般性质(以简洁的形式),在这种情况下“Nivea Deo”是可以的,还是显示具体产品如何区分它和其他可能类似的产品? (在后一种情况下,“Nivea Deo”很糟糕,因为 Nivea 生产了 50 或 100 件可以这样描述的产品。)
-
您是要独立处理每个 GTIN,还是要检索所有 GTIN 的所有描述,处理所有数据,然后形成所有 GTIN 的结果?您想要一个简洁的结果是否正确,例如货架标签描述(看起来,因为您的所有输入似乎都是这种形式)?
标签: php text-mining information-extraction nlp