产品描述凌乱文本数据分类的最佳方法
Posted
技术标签:
【中文标题】产品描述凌乱文本数据分类的最佳方法【英文标题】:Best way to classify Messy Text Data of Product Description 【发布时间】:2020-05-09 10:28:09 【问题描述】:Word Embeddings + Feature Extraction + Classifier 的管道经常用于文本分类(例如服饰、玩具、食物等类别),但 这假设数据中的很多东西都是结构良好的。 对充满印刷错误(例如“RUBBER DUCK TYS”)、缺少空格(例如“PINKPOLYESTERDRESSES”)、一堆插入的随机单词的文本数据进行分类的技术呢? (例如“INTEL CHIP 220mg 1104 OLD TOWN ST.)等?
我知道 n-gram 方法 + 可以在这里使用分类器,但是
-
使用 n-gram 可能在计算上很昂贵(想象一下
由 1 亿个类似的产品条目组成的数据集
不可能在 n-gram 中使用嵌入(DRESS VS SHIRT 使用
三元组)
您认为有哪些方法适用于此?
【问题讨论】:
【参考方案1】: 基于n-gram 的方法要求输入文本的结构更好。通常,您将输入表示为一袋 n-gram,因此请依赖训练数据和测试数据中出现的完全相同的 n-gram。另一方面,在使用预训练嵌入时,相似的词以相似的方式表示,因此您不需要在训练和测试数据中看到完全相同的词。
还有一些学习 n-gram 嵌入的方法(例如,https://github.com/artetxem/phrase2vec),但只有当你拥有像数百万个句子这样的非常大的数据时,它们才会得到回报。
在这种情况下,我会说,您应该专注于清理数据。 (删除停用词、OOV 和一些规范化应该会有所帮助。)
【讨论】:
当您说使用预训练嵌入时,您是指 GloVe 吗? BERT 是否使用预训练嵌入?我的问题是使它们正常化。那么你对此有何建议?可能是某种 XLNET + 的东西 我的意思是非上下文嵌入,GloVe 或 FastText。上下文嵌入(BERT、XLNet、...)也值得尝试,具体取决于您的输入有多嘈杂。它们经过预训练但不使用预训练的嵌入,它们训练自己的令牌嵌入。规范化是指手工制作的规则,从文本中过滤掉奇怪的东西。以上是关于产品描述凌乱文本数据分类的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章