我有以下问题。
我有一个包含多行单词的大数据集。 那就是。
apple,door,wood
window,door,house
boot,pie,dessert
我想在所有这些单词中创建4个类别,然后将新的单词行匹配到4个类别中的一个。单行中的单词以某种方式连接,但我没有任何关于如何获得单词行的信息。
我可以使用scikit-learn或其他python包中的算法吗?
编辑:
我看到我提供的信息很少。
单词可以是示例中网页的关键字,然后我想根据这些关键字选择一个类别,以便我可以就下一篇文章的内容提出建议。
但是我不想创建很多类别,所以我想组合类别。因此,如果事实证明'狗'与'house'在同一行中很多次,那么如果de关键字中存在'dog',我可以建议'house'。
我不想预先设置类别,我想首先获取组,然后创建一个与最佳单词匹配的类别。
答案 0 :(得分:1)
您想生成单词表示吗?如果是这样,您可以使用gensims word2vec创建单词向量。您可以做的是将每一行用作句子并删除逗号,然后您将学习哪些单词组合在一起,具有相似上下文的单词将具有相似的单词嵌入。然后,您可以在单词向量本身上运行k-means,并根据表示获得更好的集群。
从你的问题来看,如果你知道特定的单词总是在一起并且想要创建一个步骤的类别,但在那一点上我认为你不需要使用k-means,除非当然不是这样的。你可以有任何单词组合,并想知道哪些组合是相似的,在这种情况下你可以将每个单词设置为整数id,因此apple
是1
,door
- > 2
,wood
- > 3
等等。然后像第一个例子那样的矢量看起来像[1,1,1,0,....0]
。这里的问题是K-means对这些向量的影响不大,如果你只是不知道一起出现的单词模式,那么你最好建立单词嵌入。