我有一个包含5000条字符串记录的列。这些记录是单个单词或短语(不是句子或段落)。这些记录大多是相似的或包含相似的元素。“办公室”、“办公室”、“底层办公室”)。另外,有人手动将这些记录中的300种分类为五类(即住宅、工业、办公、零售、其他),这意味着我可以使用它来开发一个受监督的机器学习模型。我在word2vec上做了一些研究,但它们似乎只针对文本,而不是单个的单词和短语。请告诉我如何进行分类。请注意,该栏中的记录数量正在增加,今后将添加新记录,因此解决方案必须能够对新记录进行分类。
示例输入和所需输出如下:
'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'发布于 2020-07-22 04:11:17
您有一个非常典型的文本分类任务。
您可以使用许多分类算法,但在您的任务中需要选择/改进的主要领域可能是:
最初,你应该尝试‘包字’和‘字符n-克’(单独或一起),作为将你的短文转化为特征向量的方法。仅凭这一点,只要有足够的培训数据,就可以处理你迄今所展示的大多数案例,因为它将帮助任何分类算法发现某些“扣篮”规则。
例如,这将有效地了解“商店”可能总是意味着“零售”,或“家”总是意味着“住宅”,或“办公室”意味着商业。使用字符n-gram还将提供模型线索,说明如何处理相同单词的其他排字或变体。
会有一些案子处理不好的。我猜你会想要“3卧室住宅”,单独居住,但在你的例子中,你把“零售单元与上面的3卧室住宅”绑定为“零售”。如果有足够多的期望行为的例子,分类器可能就能做到这一点,因为它要么将“零售”看作一个优先级更高的类别,要么将其他词(如“上面”)意味着通常应该以某种方式绑定的混合用途。
当你看那些处理不好的情况时,你就可以考虑更高级的方法,比如也许使用单词向量来表示不一定在你(小的)训练集中的单词,但是可以被认为是已知单词的近义词。(例如,处理训练集中未知的单词的一个可能策略是使用一些外部的、更大的word2vec模型,将任何未知单词替换为最近的已知单词。)
但是,您应该从最简单的特性方法开始,看看这些方法对您有多大帮助,从而为以后的改进设置一个基线。然后,考虑更高级的定制技术。
发布于 2020-07-22 05:25:11
这是一个典型的使用ML进行分类的例子,其中的特性是使用NLP构建的。该过程涉及多个步骤。
PS:这里的诀窍是识别和删除步骤2中正确的单词(比如' The ',' is '),这样模型就不会有偏见。
https://stackoverflow.com/questions/63025784
复制相似问题