如何使用机器学习从文本中提取特征?

数据挖掘 机器学习 Python 深度学习 机器学习模型
2022-01-21 22:21:53

我想开发某种模型/算法,允许我提取给定产品名称的特征(比方说品牌、型号和颜色)。

我正在寻找与MonkeyLearn及其模型Laptop Feature Extract提供的解决方案类似的解决方案。

例如:

给定项目“Apple iPhone 6s, 64GB Silver”,它应该计算:

{
  brand: "iPhone",
  model: "6s",
  capacity: "64Gb",
  color: "Silver"
}

任何建议将不胜感激。谢谢你。

1个回答

您需要寻找的是“命名实体识别”。来自维基百科

命名实体识别 (NER)(也称为实体识别、实体分块和实体提取)是信息提取的子任务,旨在将非结构化文本中提及的命名实体定位和分类为预定义的类别,例如人名、组织,地点,医疗代码,时间表达,数量,货币价值,百分比等。

已经有为此训练过的模型,但其中大多数是通用的。例如在 Python 中

import spacy

nlp = spacy.load('en_core_web_sm')
doc = nlp('European authorities fined Google a record $5.1 billion on Wednesday for abusing its power in the mobile phone market and ordered the company to alter its practices')
print([(X.text, X.label_) for X in doc.ents])

输出是

[('European', 'NORP'), 
('Google', 'ORG'), 
('$5.1 billion', 'MONEY'), 
('Wednesday', 'DATE')]

代码来源:TowardsDataScience

在您的情况下,您必须自己训练 NER 以了解电话规格,或者找到公开可用的 NER。