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

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

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

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

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

Brave Soul Men's Swansea Jeans - Denim

品牌名称是

Brave Soul

所以我只想要

Brave Soul

Amazon网址

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

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

Apple iPhone 5c (White, 8GB)

品牌名称是

Apple

所以我想要的输出像这样

Brave SoulApple

回答:

你试图获取的信息实际上并不存在。

如果你拿两个字符串,这两个字符串可能包含任意数量的空格,然后用一个空格将它们连接起来,就无法明确区分哪个空格是用来连接两个字符串的,哪些空格是字符串本身的一部分。

因此,你有几种选择:

首先,每个产品中的空格数量并不多,所以你可以尝试所有可能的情况:品牌Brave和产品Soul Men's Swansea Jeans - Denim,然后是品牌Brave Soul和产品Men's Swansea Jeans - Denim,接着是品牌Brave Soul Men's和产品Swansea Jeans - Denim,依此类推,另外还有3种可能的情况。

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

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注