PHP中的奇异值分解(SVD)

我想在 PHP中实现奇异值分解(SVD).我知道有几个外部图书馆可以为我做这个.但是我有两个关于PHP的问题:
1)你认为用PHP编写SVD是可能和/或合理的?
2)如果(1)是是的:你能帮我编码PHP吗?

我已经自己编写了SVD的一些部分. Here’s the code我对这个行动进行了评论.这段代码的一些部分并不完全正确.

如果你能帮助我,这将是巨大的.提前非常感谢!

SVD-Python
一个非常清晰,简约的SVD实现.
它几乎是psuedocode,应该是相当容易理解
并比较/绘制您的PHP实现,即使你不知道很多python.

SVD-python

也就是说,正如其他人所说,我不会期望能够使用PHP实现来做非常重的LSA,这听起来像一个非常有限的网络主机.

干杯

编辑:
上面的模块本身不做任何事情,但是包含了一个例子
打开评论.假设你下载了python模块,并且它是可访问的(例如在同一个文件夹中),你
可以实现一个微不足道的例子,

#!/usr/bin/python
import svd
import math

a = [[22.,10.,2.,3.,7.],[14.,7.,0.,8.],[-1.,13.,-1.,-11.,3.],[-3.,-2.,4.],[ 9.,8.,1.,-7.,5.,-1.],[ 2.,-6.,6.,1.],[ 4.,2.]]

u,w,vt = svd.svd(a)
print w

这里’w’包含您的奇异值列表.
当然,这只会让你成为潜在语义分析及其亲属的一部分.
你通常要减少奇异值的数量,然后使用一些适当的距离
衡量您的文档或单词,文档和单词等之间的相似性的度量
你的合成矢量之间的角度的余弦相当受欢迎.

Latent Semantic Mapping (pdf)

是我读过的最清晰,最简洁和翔实的文章
需要按照SVD进行工作.

Edit2:还要注意,如果你正在使用非常大的术语文档矩阵(我假设这个
是你在做什么)几乎肯定会更有效地进行分解
在离线模式下,然后仅响应请求,以实时方式执行比较.
而svd-python是伟大的学习,svdlibc是更多的你想要这样沉重
计算.

最后在上面的bellegarda论文中提到,记住你不必重新计算
svd每一次你得到一个新的文件或请求.取决于你正在努力做什么
可能每个星期左右执行svd一次,在离线模式,本地机器,
然后上传结果(尽管有大小/带宽问题).

反正祝你好运!

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...