序列模型 word2vec

数据挖掘 机器学习 神经网络 nlp word2vec 顺序
2022-03-10 03:18:40

我正在处理一个包含超过 100,000 条记录的数据集。这是数据的样子:

email_id    cust_id campaign_name
123         4567     World of Zoro
123         4567     Boho XYz
123         4567     Guess ABC
234         5678     Anniversary X
234         5678     World of Zoro
234         5678     Fathers day
234         5678     Mothers day
345         7890     Clearance event
345         7890     Fathers day
345         7890     Mothers day
345         7890     Boho XYZ
345         7890     Guess ABC
345         7890     Sale

我正在尝试了解活动顺序并为客户寻找下一个可能的活动。

假设我已经处理了我的数据并将其存储在“camp”中。

使用 Word2Vec-

from gensim.models import Word2Vec

model = Word2Vec(sentences=camp, size=100, window=4, min_count=5, workers=4, sg=0)

这个模型的问题在于它接受标记并在寻找相似性时以概率返回文本标记。

Word2Vec 接受这种形式的输入-

['World','of','Zoro','Boho','XYZ','Guess','ABC','Anniversary','X'...]

并给出这种形式的输出——

model.wv.most_similar('Zoro')
[Guess,0.98],[XYZ,0.97]

由于我想预测与目标词结合更频繁发生的活动序列,我想知道是否有任何方法可以将以下输入提供给模型并在输出中获取活动名称

我的输入是 -

[['World of Zoro','Boho XYZ','Guess ABC'],['Anniversary X','World of 
Zoro','Fathers day','Mothers day'],['Clearance event','Fathers day','Mothers 
day','Boho XYZ','Guess ABC','Sale']]

输出 -

model.wv.most_similar('World of Zoro')
[Sale,0.98],[Mothers day,0.97]

我也不确定 Word2Vec 或任何类似算法中是否有任何功能可以帮助为个人用户找到下一个可能的活动。

1个回答
  1. Word2Vec 对单词进行操作,您想要比较“文本”(一系列不同长度的单词)。为此, doc2vec 可能更合适。

  2. 您有非常短的“文本”(活动名称),因此从它们(仅从它们)生成嵌入想要产生更大的效果。您可以从一些预训练的向量开始,但无论如何您可能想要获得更多。但问题是:

  3. 从您的示例和解释中不确定您想要找到最相似的广告系列名称的文本的性质是什么。一方面,您正在撰写关于查找给定单词最常见的单词 - 然后您可以创建单词和活动的统计信息。另一方面,在您的示例中,您传递了整个文本 - 然后上面提到的应用,使用文本向量查找最相似的文本。