python - 从自由文本产品描述中提取产品类型
问题描述
我正在寻找从自由文本产品描述中提取产品类型以进行分组。
上下文是从旧的 Kaggel 竞赛(mercari-price-suggestion-challenge)中学习的练习。
Google / Stack Overflow 提供多个方向,但没有特定的开箱即用代码(我可以找到)。
我能想到的最好的方法(我是 NLP 新手)是通过spacy包,解析产品名称描述,并将 ROOT 词作为产品类型本身,请参见下面的代码。
该解决方案有时似乎提供了公平的结果,请参阅下面的结果示例,但我认为对于现成的代码应该有更好的做法。
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']])
姓名 | product_enitity_parse | 根产品名称 |
Air Jordan 复古 6 运动蓝 | [(空气,复合),(乔丹,复合),(复古,ROOT),(6,nummod),(运动,复合),(蓝色,appos)] | [复古的] |
Salvatore Ferragamo 腰带免运费 | [(Salvatore, amod), (Ferragamo, Compound), (Belt, npadvmod), (FREE, amod), (SHIPPING, ROOT)] | [航运] |
Raspberry Cherokee Scrubs 上衣和裤子。 | [(覆盆子,复合),(切诺基,复合),(Scrubs,nsubj),(top,ROOT),(and,cc),(pants,c... | [最佳] |
7 号 Uggs | [(Uggs, 复合), (size, ROOT), (7, nummod)] | [尺寸] |
精油扩散器 | [(Essential, amod), (Oil, Compound), (Diffuser, ROOT)] | [扩散器] |
斯凯兰德斯 | [(天空之城,ROOT)] | [天行者] |
Sono 人发接发 20 英寸 | [(Sono, nmod), (human, amod), (hair, nsubj), (extensions, ROOT), (20, nummod), (inches, npadvmod)] | [扩展] |
全新带标签 LulaRoe 女童连衣裙 4 码 | [(NWT,复合),(LulaRoe,复合),(Girls,复合),(Mae,复合),(连衣裙,复合),(S ... | [尺寸] |
ES 文胸和内裤 4 件套 (36B) | [(ES, 复合), (Bra, nmod), (and, cc), (Panty, conj), (set, ROOT), (of, prep), (4, pobj), ((, ... | [放] |
免费送货骷髅儿童上衣 | [(免费,amod),(运输,复合),(骨架,复合),(儿童,复合),(顶部,ROOT)] | [最佳] |
解决方案
推荐阅读
- android - Android studio 设置,ctrl+alt+l 不能正常工作
- react-native - React-native 在创建新项目时给出'native'不被识别为内部或外部命令
- php - 如何使用 PHP 获取 YT 视频的观看次数?
- java - Gradle 项目同步失败。基本功能将无法正常工作。(安卓工作室)
- angular -
切换选项卡时如何在 nebular nb-tab 中调用用户定义的函数 - python - 递归深度和一个事实?
- c++ - yacc中多重和重新声明的简单语义分析器给出解析错误
- javascript - Java Script Game 让动作更流畅| JavaScript 画布
- java - 存根 @Async 方法作为同步运行
- linux - Linux - 将文件(不是子文件夹)从源复制到目标,同时覆盖/删除目标文件夹中的初始内容