繁体   English   中英

词/短语分类

[英]Word/Phrase classification

我有一列包含 5000 个字符串记录。 这些记录是单个单词或短语(不是句子或段落)。 这些记录中的大多数是相似的或包含相似的元素(例如“办公室”、“办公室”、“底层办公室”)。 此外,有人手动将这些记录中的 300 条分为五个类别(即住宅、工业、办公室、零售、其他),这意味着我可以使用它来开发监督机器学习 model。 我对 word2vec 进行了一些研究,但似乎它们适用于文本,而不是单个单词和短语。 请告诉我如何进行分类。 请注意,该列中的记录数量正在增长,并且将来会添加新记录,因此该解决方案必须能够对新记录进行分类。

示例输入和所需的 output 如下:

'industrial' -> 'Industrial'
'Warehouse' -> 'Industrial'
'Workshop' -> 'Industrial'
'rear warehouse' -> 'Industrial'
'office suite' -> 'office'
'office/warehouse' -> 'office'
'office(b1)' -> 'office'
'house' -> 'Residential'
'suite' -> 'Residential'
'restaurant' -> 'Retail'
'retail unit with 3 bedroom dwelling above' -> 'Retail'
'shoe shop' -> 'Retail'
'unit 56' -> 'Other'
'24 Hastings street' -> 'Other'

输入 & Output

你有一个非常典型的文本分类任务。

您可以使用许多分类算法,但您的任务中选择/改进的主要领域可能是:

  • 特征提取和特征工程:您如何将这些短文本转换为可以学习规则/阈值的数字数据?
  • 整体流程问题:对于任何无法从现有数据中学习的“棘手案例”,无论是最初还是随着时间的推移,如何将必要的修正反馈到改进的系统中

最初,您应该尝试将“词袋”和“字符 n-gram”(单独或一起)作为将短文本转换为特征向量的方法。 仅此一点,只要有足够的训练数据,就可以处理您迄今为止展示的大多数情况,因为它将帮助任何分类算法发现某些“灌篮”规则。

例如,这将有效地了解“商店”可能总是暗示“零售”,或“房子”总是暗示“住宅”,或“办公室”暗示商业。 并且使用字符 n-gram 还将为 model 提供有关如何处理相同单词的其他拼写错误或变体 forms 的线索。

会有处理不好的情况。 我猜你会希望单独的“三居室住宅”成为“住宅”——但在你的例子中,你将“上面有 3 居室住宅的零售单元”归类为“零售”。 有足够多的期望行为示例,分类器可能会正确,因为它要么将“零售”视为具有更高优先级的类别,要么将其他词(如“以上”)暗示通常应该以一种或另一种方式分类的混合用途.

当您查看处理不好的案例时,您将能够考虑更高级的方法,例如可能使用词向量来表示不一定在您的(小)训练集中的词,但可能是被认为是已知单词的近义词。 (例如,处理训练集未知的单词的一种可能策略是使用一些外部的、更大的 word2vec model 将任何未知单词替换为最接近的已知单词。)

但是,您应该真正从最简单的功能方法开始,看看这些方法能让您走多远,从而为以后的改进设置基线。 然后,考虑更高级和定制的技术。

这是使用 ML 进行分类的经典示例,其中使用 NLP 构建功能。 该过程涉及多个步骤。

  1. 特征工程:您需要决定是否需要单词、短语(由 1,2...n 个单词组成) - 使用来自 sklearn 的 countvectorizer,它使用 tf-idf 算法和 ngram。 您还可以定义要使用的最大功能数。
  2. Lemmatisation - 去除停用词(使用 nltk 语料库)
  3. Stemming - 转换成不变的词(使用 nltk 语料库)
  4. Using supervised learning built a classification model using 300 pre-defined records ( use train/test - 70/30 split ) - You can go with Bayesian Gaussian Classifier ( recommended for NLP mostly) or Random Forest or Neural Networks depending on how much accuracy you想要达到。
  5. 最后将此 model 应用于新记录集。

PS:这里的技巧是识别并删除第 2 步的正确单词(例如“The”、“is”),这样 model 就不会出现偏差。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM