【发布时间】:2018-05-19 21:16:13
【问题描述】:
背景
我有带有一些样本数据的向量,每个向量都有一个类别名称(地点、颜色、名称)。
['john','jay','dan','nathan','bob'] -> 'Names'
['yellow', 'red','green'] -> 'Colors'
['tokyo','bejing','washington','mumbai'] -> 'Places'
我的目标是训练一个模型,该模型接受一个新的输入字符串并预测它属于哪个类别。例如,如果新输入是“紫色”,那么我应该能够将“颜色”预测为正确的类别。如果新输入是“Calgary”,它应该将“Places”预测为正确的类别。
方法
我做了一些研究,发现了Word2vec。该库具有我可以使用的“相似性”和“最相似性”功能。所以我想到的一种蛮力方法如下:
- 接受新的输入。
- 计算它与每个向量中每个词的相似度并取平均值。
例如,对于输入“pink”,我可以计算它与向量“names”中单词的相似度,取一个平均值,然后对其他 2 个向量也这样做。给我最高相似度平均值的向量将是输入所属的正确向量。
问题
鉴于我在 NLP 和机器学习方面的知识有限,我不确定这是否是最佳方法,因此我正在寻求帮助和建议以更好地解决我的问题。我愿意接受所有建议,也请指出我可能犯的任何错误,因为我是机器学习和 NLP 领域的新手。
【问题讨论】:
-
使用 spacy 的 ner,你也可以用你的数据训练 spacy 模型。
-
@AyodhyankitPaul 我现在就用谷歌搜索!感谢您的反馈,如果可能的话,如果您能提供小演示,会很高兴,很想看到这个
标签: python machine-learning nlp word2vec gensim