输入数据框 我的极地 |熊猫数据框看起来像这样
x 列 | y 列 |
---|---|
1 | [迈克,金] |
2 | [ken,nate,lara] |
**问:通过遍历每一行中的名称列表来创建词向量; **
来自 polars 的预期输出数据帧
x 列 | y 列 | z 列 |
---|---|---|
1 | [迈克,金] | [[0.0001,0.0008],[0.0001,0.0008]] |
2 | [ken,nate,lara] | [[0.0001,0.0008],[0.0001,0.0008] |
在这里,我尝试遍历输入数据帧中每一行的名称,如果名称存在于 model_vocab_list 中,则获取该名称的词向量,否则创建一个空向量,
我希望下面的表达式能做到这一点,但它出错了——“Expr”对象不可迭代,在让表达式工作方面有挑战,知道如何让它工作以获得上面的输出
expression=
pl.when(pl.element().is_in(model_vocab_list )).then(name_model.wv[pl.element()]).otherwise(np.zeros(name_model.wv.vector_size, dtype="float32"))
pl_df = df_pl.with_columns(
pl.col('y')
).select([
pl.col('*'),
pl.col("y").arr.eval(expression, parallel=True).alias("z")
])
pandas 中的工作代码以获得上述输出
ddf['z'] = ddf['y'].apply(lambda x: [model.wv[word] if word in model_vocab_list else np.zeros(model.wv.vector_size, dtype="float32") for word in x])