在对亚马逊精品食品数据集进行采样到100k数据点后,使用TFIDF Word2Vec在审查亚马逊精品食品数据集时给出NaN值,我在句子向量中获得了NaN值...我尝试了几乎所有的代码,但没有得到真正的价值。
在打印句子数组之后,这是我得到的输出-
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan].....代码如下:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
tfidf = TfidfVectorizer(ngram_range=(1,2), analyzer='word')
final_tfidf = tfidf.fit_transform(final_data['CleanedText'].values)
tfidf_feat = tfidf.get_feature_names()
tf_sent_vectors = []
row = 0
for sent in list_of_sent:
sent_vec = np.zeros(50) #initializiing the sent_vec
weighted_sum = 0 #initializing the weightedsum
for word in sent:
try:
vec = w2v_modelk.wv[word]
tf_idf = final_tfidf[row, tfidf_feat.index(word)]
sent_vec += (vec * tf_idf)
weighted_sum += tf_idf
except:
pass
sent_vec /= weighted_sum
print(sent_vec)
row += 1任何形式的帮助都将不胜感激!
发布于 2020-04-20 01:14:14
根据您的代码,tf-idf功能可能类似于{'hi','jik','this by‘等}。
因为这里有uni gram和bi grams.so,所以没问题。
但关键部分是
“对于句子中的单词:”
假设sentence=是“This is good”
所以tf-idf特征是{ 'This ','is','good',‘This is','is good'}
现在在代码中添加一行
对于句子中的单词:
我们得到的输出是{‘T’,'h','i','s',所以no }我们得到单个字符
因此,由于这些单个字符可能不在tf-idf中,也可能不在w2vec模型中
也就是说,更正应该是针对sentence.split中的word (“"):
https://stackoverflow.com/questions/51564639
复制相似问题