如何将从现有列得出的句子嵌入到新列中?
我有一个具有四个nw_data = ['qn_id','qn_context',qns','anwsers'的数据框。这就是我想在该数据集中添加第五列的样子
Qn_id | Qn_context | Qns | Anwsers
01 | In 1962, Uk gave... | what year....| the year 1962 was.....
02 | Major kanuti raised..| Who raised...| Kanuti akorimo rasied.
,该数据集由列['answers']的句子嵌入组成。
我正在使用sente_transformers生成句子嵌入。
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
我尝试使用一种方法:
#Created a var for the column
sent = nw_data['Answers']
然后
#Passed the variable sent into the model and created the embeddings
embeddings = model.encode(sent)
得到
#Tried passing the embeddings into a new column named Embeddings
nw_data['Embeddings'] = embeddings
一个错误:
KeyError: 'Embeddings'
The above exception was the direct cause of the following exception:
KeyError Traceback (most recent call last)
KeyError: 'Embeddings'
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/pandas/core/internals/blocks.py in check_ndim(values, placement, ndim)
1978 if len(placement) != len(values):
1979 raise ValueError(
-> 1980 f"Wrong number of items passed {len(values)}, "
1981 f"placement implies {len(placement)}"
1982 )
ValueError: Wrong number of items passed 384, placement implies 1
如何创建这些嵌入并将它们添加到相同的数据框架NW_DATA中的新列中!
无论如何,是否有可能,建议尝试使用 .apply()方法或 lambda函数,但是问题不确定如何使用它们。
I have a dataframe that has four nw_data=['Qn_id', 'Qn_context', 'Qns', 'Anwsers']. This is how it looks like
Qn_id | Qn_context | Qns | Anwsers
01 | In 1962, Uk gave... | what year....| the year 1962 was.....
02 | Major kanuti raised..| Who raised...| Kanuti akorimo rasied.
I want to add a fifth column to that dataset that consists of the sentence embeddings of the column['Answers'].
Am using the sentence_transformers to generate the sentence embeddings.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
I tried using an approach where:
#Created a var for the column
sent = nw_data['Answers']
and
#Passed the variable sent into the model and created the embeddings
embeddings = model.encode(sent)
then
#Tried passing the embeddings into a new column named Embeddings
nw_data['Embeddings'] = embeddings
I get an error:
KeyError: 'Embeddings'
The above exception was the direct cause of the following exception:
KeyError Traceback (most recent call last)
KeyError: 'Embeddings'
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
/usr/local/lib/python3.7/dist-packages/pandas/core/internals/blocks.py in check_ndim(values, placement, ndim)
1978 if len(placement) != len(values):
1979 raise ValueError(
-> 1980 f"Wrong number of items passed {len(values)}, "
1981 f"placement implies {len(placement)}"
1982 )
ValueError: Wrong number of items passed 384, placement implies 1
How can i create these embeddings and add them to a new column in the same dataframe nw_data!!
Is it possible anyway, was advised try using the .apply() method or lambda functions but the issues is am not sure on how or when to use them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我正确理解,您想将列表(嵌入)插入单元格中。
尝试使用:
如果您有多个句子,只需通过列表:
If I understand correctly, you'd like to insert a list (embedding) into a cell.
Try using
at
:If you have multiple sentences, just pass the list:
我找到了另一种方法,请告诉我它是否有效:
I found another way to do this, pls tell me if it works: