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

2024-05-13 01:23:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

品牌名称+产品名称

http://www.thehut.com/jeans-clothing/men/clothing/brave-soul-men-s-cardiff-jeans-denim/10741907.html

在上述网站中,产品名称是

^{pr2}$

品牌名称是

Brave Soul

所以我只想要

Brave Soul

亚马逊网络链接

http://www.amazon.in/gp/product/B00L8WT2UI

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

Apple iPhone 5c (White, 8GB)

品牌名称是

Apple

所以我想要输出

Brave Soul
Apple

Tags: 数据名称comhttpapple网站www品牌
2条回答

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

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

如果你取两个字符串,这两个字符串都可能有任意数量的空格,然后用一个空格将它们连接在一起,就再也无法清楚地分辨出是哪个空间连接了这两个字符串,以及哪些空格是字符串的一部分。在

所以,你有几个选择:

首先,每个产品中的空间并不多,所以您可以尝试所有的可能性:品牌Brave和产品{},然后是品牌Brave Soul和产品{},然后是品牌Brave Soul Men's和产品{},等等,其他3种可能性都可以。在

第二,如果你可以从其他地方获取所有品牌名称的列表,并将它们存储在set(或数据库表或其他任何东西)中,那么可以在对Amazon的相对较慢的web请求中尝试所有这些可能性之前对其进行预过滤。例如,如果你有一个所有品牌的列表,只需检查BraveBrave SoulBrave Soul Men'sBrave Soul Men's Swansea等中的哪个是真正的品牌,并且只测试这些品牌。在

同时,这仍然不是完美的,因为几乎可以肯定的是,有些案例是模棱两可的。那么,当你把一个品牌分开的时候,你又会怎样呢?你有两个有效的可能性,而不是一个。您所能做的就是设计您的代码以某种方式处理这些问题(并验证您是否正确地进行了单元测试)。在

相关问题 更多 >