在使用TFIDF Word2Vec将Amazon精美食品数据集采样到100k数据点后给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
任何帮助将不胜感激!
答案 0 :(得分:-2)
在这里,根据您的代码,tf-idf的功能可能类似于{'hi','jik','this by'等}。
因为用单克和双克,所以到这里都可以
但是关键部分是
“句子中的单词:”
假设句子= [“这很好”]
因此tf-idf的功能应为{'This','is','good','This is','is good'}
现在代码行
句子中的单词:
我们得到的输出为{'T','h','i','s,所以没有},我们得到的是单个字符
因此这些单个字符可能不在tf-idf中,也可能不在w2vec模型中
即更正将针对句子.split(“”)中的单词: