Преобразовать u
в диагональную матрицу Σ
:
import numpy as np
from pyspark.mllib.linalg import DenseMatrix
Σ = DenseMatrix(len(s), len(s), np.diag(s).ravel("F"))
Транспонировать V
, преобразовать в основной столбец и затем преобразовать обратно в [ 1110]
V_ = DenseMatrix(V.numCols, V.numRows, V.toArray().transpose().ravel("F"))
Умножить :
mat_ = U.multiply(Σ).multiply(V_)
Проверить результаты:
for row in mat_.rows.take(3):
print(row.round(12))
[0. 1. 0. 7. 0.]
[2. 0. 3. 4. 5.]
[4. 0. 0. 6. 7.]
Проверить норму
np.linalg.norm(np.array(rows.collect()) - np.array(mat_.rows.collect())
1.2222842061189339e-14
Конечно, последние два шага используются только для тестирования и не будут осуществимы на реальных данных.
вот простая функция, которая может преобразовать Вашу строку в URL, просто необходимо передать заголовок или строку, это преобразует его в удобный для пользователя URL.
public static string GenerateUrl(string Url)
{
string UrlPeplaceSpecialWords = Regex.Replace(Url, @""|['"",&?%\.!()@$^_+=*:#/\\-]", " ").Trim();
string RemoveMutipleSpaces = Regex.Replace(UrlPeplaceSpecialWords, @"\s+", " ");
string ReplaceDashes = RemoveMutipleSpaces.Replace(" ", "-");
string DuplicateDashesRemove = ReplaceDashes.Replace("--", "-");
return DuplicateDashesRemove.ToLower();
}