首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从消费品手册中提取品牌和产品类别

从消费品手册中提取品牌和产品类别
EN

Stack Overflow用户
提问于 2014-10-13 08:52:13
回答 2查看 1.4K关注 0票数 1

我有一个清单的消费品手册(约100,000个.pdf文件)从网上报废。现在,我想按制造商/品牌和它所属的类别对文件进行分类。

例如, :

三星->监控->文件列表 三星->手机->文件列表 等等..。

到目前为止我做了什么:

  • 建立了一个品牌/制造商的列表,以及一个类别列表。
  • 使用pyPdf从pdf文件中提取所有数据为文本
  • NLTK 标记文本数据中的单词
    • 它看起来像这样:... ('3Com', 'CD') ('Corporation', 'NNP') ('reserves', 'NNS') ('the', 'DT') ('right', 'NN') ('to', 'TO') ('revise', 'VB') ('this', 'DT') ('documentation', 'NN') ('and', 'CC') ('to', 'TO') ('make', 'VB') ('changes', 'NNS') ('in', 'IN') ('content', 'NN') ('from', 'IN') ...

我现在面临的问题:

如何将令牌与我的品牌/类别列表相匹配?

我以前从来没有机会和NLP合作过,我现在还在努力思考这个问题。

EN

回答 2

Stack Overflow用户

发布于 2014-10-13 09:07:04

我不确定这是NLP的问题。我会这样做:

代码语言:javascript
运行
复制
brand_names = ['Samsung', 'Lenovo', ...]
category_names = ['Monitors', 'Mobile Phones', ...]

pdf_string = read_my_pdf('theproduct.pdf')
pdf_string_lowered = pdf_string.lower()

brand_names_in_pdf = [brand.lower() in pdf_string_lowered for brand in brand_names] #Everything is lowered to account for case difference
category_names_in_pdf = [category.lower() in pdf_string_lowered for category in category_names]

import itertools
tags = itertools.product(brand_names_in_pdf, category_names_in_pdf)  #Get the tuples of brands and categories

这看起来非常简单,但我认为它比您使用的任何NLP工具都更有效(您如何知道某个特定的型号是移动电话的型号,或者一些与移动电话相关的单词将包含在PDF中有关其他内容)。我认为详尽的搜索是更有力的。

这种方法唯一真正的缺点是与你要寻找的单词的变化有关。我认为解决这个问题的方法是使用正则表达式而不是标记。例如,您可以接受“移动电话”或“移动电话”,并将其归类为“移动电话”。

票数 0
EN

Stack Overflow用户

发布于 2014-11-26 04:43:16

我建议一种混合的方法。使用POS标签查找NNP专有名词,然后在公司名称词典中查找它们。

这样可以避免查找限定符和其他不太可能出现的单词。这应该通过减少某些人可能使用公司名称作为动词(例如xerox,google)的假阳性来提高精确度。在不利方面,它可能会减少回忆,增加虚假的负面,当一个公司的名字被标记的时候,从没有在你的字典中查找。

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

https://stackoverflow.com/questions/26336106

复制
相关文章

相似问题

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