我在解释Tfidf矢量化器的矩阵输出时遇到了麻烦.
特定
vectorizer = TfidfVectorizer(max_df=0.5, max_features=10000,
min_df=2, stop_words='english',
use_idf=True)
X_train_tfidf = vectorizer.fit_transform(X_train_raw)
Run Code Online (Sandbox Code Playgroud)
如果我要查看输出X_train_tfidf,我是否正在查看结构如下的矩阵:
第1列对应于文档1,其中元素是10000个特征的tfidf分数,第2列对应于文档2 ......依此类推?
假设我想采用以下三个[x,y,z]坐标:
[0.799319 -3.477045e-01 0.490093]
[0.852512 9.113778e-16 -0.522708]
[0.296422 9.376042e-01 0.181748]
并将它们绘制为矢量,其中矢量从原点[0,0,0]开始.我该怎么做呢?我一直在尝试使用matplotlib的箭袋,但我一直在设置以下值错误:
ValueError: need at least one array to concatenate
Run Code Online (Sandbox Code Playgroud)
这是我的代码(document_matrix_projections是上面表示为矩阵的三个坐标):
D1, D2, D3 = zip(*document_matrix_projections)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.quiver(D1)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我目前正在处理一个处理大量递归调用的副项目。我不是计算机科学家,所以我不确定如何优化我的代码。我知道递归函数的效率不是很高,而且我听说您经常可以用尾调用替换它,但我不确定如何去做。该函数接受三个数组:appendList、sequence 和 used。其他参数 base、length、index 和 last word 都是整数。
function Recursion(appendList, base, length, sequence, used, lastWord, index)
#Global variables:
global G_Seq_List
global G_Seq_Index
used = ones(UInt8, 1, base^length)
used[1] = 0
if index == base^length
check = zeros(UInt8, base^length, 1)
for i = 1 : base^length
index = 1
for j = 1 : length
k = mod(i+j-1,base^length)
index = index + base^(length - j)*sequence[k+1]
end
check[index] = check[index] + 1
if check[index] != 1
return
end
end
G_Seq_List[G_Seq_Index,:] = sequence[:] …Run Code Online (Sandbox Code Playgroud)