11

我希望将诸如“Canon D1000 4MP Camera 2X Zoom LCD”之类的非结构化产品标题解析为结构化数据,例如{brand: canon, model number: d1000, lens: 4MP zoom: 2X, display type: LCD}.

到目前为止,我有:

  1. 删除停用词并清理(删除字符,如- ; : /
  2. 将长字符串标记为单词。

任何技术/库/方法/算法将不胜感激!

编辑:产品标题没有启发式。卖家可以输入任何内容作为标题。例如:“Canon D1000”可以只是标题。此外,此练习不仅适用于相机数据集,标题可以是任何产品。

4

5 回答 5

6

由于您有很多训练数据(我假设您有很多对标题 + 结构化 json 规范),我会尝试训练命名实体识别器。

例如,您可以训练斯坦福 NER。请参阅此常见问题解答条目,说明如何执行此操作。显然,您将不得不摆弄参数,因为产品标题并不完全是句子。

您将需要准备训练数据,但这并不难。您需要两列,单词和答案,您可以添加标签列(但我不确定标准 POS 标记器的准确性是多少,因为它是相当非典型的文本)。我会简单地从相关的 json 规范中提取答案列的值,会有一些歧义,但我认为它会很罕见,所以你可以忽略它。

于 2013-08-30T07:45:05.303 回答
4

开发了这种商业分析仪后,我可以告诉你,这个问题没有简单的解决方案。但是有多种捷径,特别是如果您的领域仅限于相机/电子产品。

首先,您应该查看更多网站。许多人在页面中注释了产品品牌(正确的 html 注释、粗体字体、名称开头的所有大写字母)。有些网站的整个页面都带有品牌选择器,用于搜索目的。通过这种方式,您可以创建一个非常好的品牌名称入门词典。与产品线名称相同,甚至与模型相同。字母数字模型可以通过正则表达式批量提取并快速过滤。

还有很多其他技巧,但我会尽量简短。这里只是一条建议:手动工作和算法之间总是需要权衡取舍。永远记住,这两种方法可以混合使用,并且都有投资时间回报曲线,人们往往会忘记这一点。如果您的目标不是创建一个自动算法来提取产品品牌和型号,那么这个问题在您的计划中应该有有限的时间预算。您实际上可以在一天内创建一个包含 1000 个品牌的字典,并且为了在已知的电子商品数据源(我们这里不是在谈论亚马逊,或者我们是不是?)上表现出色,您的工作可能只需要包含 4000 个品牌的字典。因此,在您投入数周时间研究最新的名为实体识别器的神经网络之前,请先进行数学计算。

于 2014-12-02T22:16:47.510 回答
3

我同意没有 100% 成功的方法。一种可能的方法是使用一些手动注释的数据训练自定义 NER(命名实体识别)。标签将是:品牌/型号/类型。过滤模型名称/品牌的一种常用方法是使用字典。品牌/型号通常是非字典词。

于 2013-08-29T09:12:37.347 回答
1

如果您只获得标题(如亚马逊产品),那么您可以将其视为一个句子并考虑顺序标签。

根据属性是给定的还是未知的(属性如品牌、型号等),这里有几个问题:

1:如果这是给定的,那么问题是“简单的”,您可以使用任何“顺序标记”方法来解决。方法包括 CRF(条件随机场)和马尔可夫模型(HMM、MEMM 等)

2:如果不是,那么需要和解析(依赖解析,全解析)一样的方式提取(属性,值)对。但我想知道这是否可行,因为事先对属性知之甚少。另一种可能性是,给定大量外部信息(评论和产品描述),您可能可以找出这些属性,然后从标题中提取对。前任。您在评论中发现“品牌”和“佳能”有很多相关性,然后在某处用相机从标题中发现“佳能”一词,您知道这是“品牌”的价值。

于 2013-08-28T20:23:25.750 回答
0

使用神经网络解析此类自由文本可能会更成功,但仅解析纯文本会失败,因为许多单词需要您没有的上下文。

但是,根据您想要达到的精度水平,您可以提出部分解决方案(然后需要人工后处理)。或者至少在输入上强制使用最小结构(例如产品名称始终必须遵循某种模式)。这样你就有了一个更好的开始,因为你可以更好地识别应该给你足够的上下文信息来理解剩余输入的产品。

我猜肯定没有 100% 的解决方案(即使是神经网络)。

于 2013-08-29T07:20:56.177 回答