Parsing 如何将产品标题(非结构化)解析为结构化数据?

Parsing 如何将产品标题(非结构化)解析为结构化数据?,parsing,machine-learning,e-commerce,nlp,artificial-intelligence,Parsing,Machine Learning,E Commerce,Nlp,Artificial Intelligence,我希望将非结构化产品名称(如“佳能D1000 4MP照相机2X变焦LCD”)解析为结构化数据,如{品牌:佳能,型号:D1000,镜头:4MP变焦:2X,显示类型:LCD} 到目前为止,我已经: 删除停止字并清除(删除字符,如-;:/) 将长字符串标记为单词 任何技术/库/方法/算法都将不胜感激 编辑:产品标题没有启发式。卖家可以输入任何内容作为标题。例如:“佳能D1000”可能只是标题。此外,此练习不仅适用于摄影机数据集,标题可以是任何产品的标题 如果您只获得标题(如亚马逊产品),那么您可以将其

我希望将非结构化产品名称(如“佳能D1000 4MP照相机2X变焦LCD”)解析为结构化数据,如
{品牌:佳能,型号:D1000,镜头:4MP变焦:2X,显示类型:LCD}

到目前为止,我已经:

  • 删除停止字并清除(删除字符,如
    -
    /
  • 将长字符串标记为单词
  • 任何技术/库/方法/算法都将不胜感激


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

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

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

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


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

    用神经网络解析这样的自由文本可能会更成功,但用纯文本解析会失败,因为很多单词需要一个你没有的上下文

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


    我想,绝对没有100%的解决方案(即使使用神经网络也不行)。

    我同意没有100%的成功方法。一种可能的方法是使用一些手动注释的数据来训练定制的NER(命名实体识别)。标签应为:品牌/型号/类型。
    另外,筛选型号名称/品牌的常用方法是使用字典。品牌/型号通常是非词典词汇。

    因为您有大量的培训数据(我假设您有很多对title+结构化json规范),所以我会尝试培训一个

    例如,您可以训练。请看下面的说明如何操作。显然,您将不得不修改参数,因为产品名称并不完全是句子


    你需要准备训练数据,但这不应该那么难。您需要两列,word和answer,您可以添加标记列(但我不确定标准POS标记的准确性,因为它是非常不典型的文本)。我只想从相关的json规范中提取答案列的值,这会有一些歧义,但我认为这将非常罕见,因此您可以忽略它。

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

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


    还有很多其他的技巧,但我会尽量简短。这里只有一条建议:在手工工作和算法之间总是有一个折衷。始终记住,这两种方法可以混合使用,并且都有投资时间曲线的回报,而人们往往会忘记这一点。如果您的目标不是创建自动算法来提取产品品牌和型号,那么这个问题在您的计划中应该有有限的时间预算。您可以在一天内创建一个包含1000个品牌的词典,并且为了在已知的电子产品数据源上获得良好的性能(我们这里不是指亚马逊,是吗?),您的工作可能只需要一个包含4000个品牌的词典。因此,在你花数周时间研究最新的名为entity Recognitor的神经网络之前,先做一下数学计算。

    我想我需要指出的是,产品名称没有启发式。在这种情况下,顺序标签将如何工作?没有什么能阻止卖方输入“D1000 4MP相机佳能2X LCD变焦”,那么这是一个更难的问题(见案例二)。利用评论/描述会有所帮助。否则,如果你只从事相机产品(数据并不稀疏),那么顺序标签无监督可能会有所帮助(嗯),但你可以知道只有“佳能”和“尼康”具有相同的属性,但仍然很难命名(“品牌”从何而来?)你有任何培训数据吗?比如说1000种产品的产品规格?我有很多培训数据。我需要对1亿件物品执行此操作,但现在我正在尝试用大约10000件与相机相关的产品构建一个原型。我正在尝试解决同样的问题。我有大约5万件产品