首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从产品名称中提取品牌

如何从产品名称中提取品牌
EN

Stack Overflow用户
提问于 2015-05-05 08:14:49
回答 2查看 3.1K关注 0票数 3

我有两个网站,我手上有数据,现在我想用这些数据进行分析。

我有两个产品名称(品牌+产品名称),我只想提取品牌名称

代码语言:javascript
复制
http://www.thehut.com/jeans-clothing/men/clothing/brave-soul-men-s-cardiff-jeans-denim/10741907.html

在上面的网站中,产品名称是

代码语言:javascript
复制
Brave Soul Men's Swansea Jeans - Denim

品牌名称是

代码语言:javascript
复制
Brave Soul

所以我只想

代码语言:javascript
复制
Brave Soul

亚马逊网络链接

代码语言:javascript
复制
http://www.amazon.in/gp/product/B00L8WT2UI

类似地,在上面的网站中,产品名称是

代码语言:javascript
复制
Apple iPhone 5c (White, 8GB)

品牌名称是

代码语言:javascript
复制
Apple

所以我想要输出

代码语言:javascript
复制
Brave Soul
Apple
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-05 08:21:03

你想要得到的信息其实并不存在。

如果您使用两个字符串,这两个字符串都可能有任意数量的空格,并将它们与一个空格连接在一起,那么就不可能清楚地知道哪个空间正在连接这两个字符串,以及哪个空间是字符串的一部分。

所以,你有几个选择:

首先,每个产品中没有太多的空间,所以您可以尝试所有的可能性:品牌Brave和ProductSoul Men's Swansea Jeans - Denim,然后是Brave Soul和ProductMen's Swansea Jeans - Denim,然后是品牌Brave Soul Men's和ProductSwansea Jeans - Denim,等等。

其次,如果你能从其他地方抓取所有品牌名称的列表,并将它们存储在set (或数据库表或其他任何东西)中,你可以预先筛选这些可能性,然后再在相对缓慢的网络请求中尝试所有这些可能性。例如,如果您有所有品牌的列表,只需检查BraveBrave SoulBrave Soul Men'sBrave Soul Men's Swansea等中哪些是实际的品牌,并只测试这些品牌。

同时,这仍然不是完美的,因为几乎可以肯定有一些情况是模棱两可的。例如,有一个品牌Apple,也有一个品牌Apple Records,那么当您试图拆分Apple Records Master Collection时会发生什么呢?你有两种有效的可能性,不仅仅是一种。您所能做的就是设计您的代码,以某种方式处理它(以及您正确地进行的单元测试)。

票数 3
EN

Stack Overflow用户

发布于 2015-05-07 21:55:30

我不打算在这里提出具体的算法,但我只想指出,即使在一个没有监督的情况下,拥有足够大的这样的字符串数据库,也可以发现某些模式(即实际存在的信息)。首先,品牌名称将在多个字符串中重复,并且始终是字符串的前缀。这一假设将为分离的位置提供一个强有力的先验条件。其次,模糊案例(苹果记录)可以通过学习潜在品牌假设与产品名称之间的关联来攻击(例如,只要苹果不产生记录,而且有一个强有力的假设,即苹果记录是一个品牌,因为它多次重复,这种模糊性就可以成功地解决)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30047569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档