从自由文本产品描述中提取产品类型

2024-10-01 09:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望从自由文本产品描述中提取产品类型,以便分组

背景是从老卡格尔竞赛(mercari价格建议挑战赛)中学习

Google/Stack Overflow提供了多个方向,但没有特定的开箱即用代码(我可以找到)

我能想出的最好办法(我是NLP新手)是通过spacy包,解析产品名称描述,并将根单词作为产品类型本身,请参见下面的代码

该解决方案有时似乎提供了公平的结果,请参见下面的结果示例,但我认为对于现成的代码应该有更好的实践

import spacy
nlp = spacy.load('en_core_web_sm')

z = train_data
z = z.assign(product_enitity=z['name'].apply(nlp))
z = z.assign(product_enitity_parse=[([(X, X.dep_) for X in Y]) for Y in z['product_enitity']])

def get_root_word(sent):
    return [tok[0] for tok in sent if (tok[1] == "ROOT") ]

z = z.assign(root_product_name=[get_root_word(sent) for sent in z['product_enitity_parse']])
^{tb1}$

Tags: 代码namein类型fornlpspacy产品
1条回答
网友
1楼 · 发布于 2024-10-01 09:25:15

确定产品类型是一项分类任务,而不是提取任务。如果产品名称为“任天堂开关红蓝新收件箱”,则类别可能为“视频游戏”

在您的数据集中,似乎有一个“category\u name”字段,这是您的标签。您应该看看在spaCy中使用textcat模型,请参见example projects

相关问题 更多 >