我想在
PHP中实现奇异值分解(SVD).我知道有几个外部图书馆可以为我做这个.但是我有两个关于PHP的问题:
1)你认为用PHP编写SVD是可能和/或合理的?
2)如果(1)是是的:你能帮我编码PHP吗?
1)你认为用PHP编写SVD是可能和/或合理的?
2)如果(1)是是的:你能帮我编码PHP吗?
我已经自己编写了SVD的一些部分. Here’s the code我对这个行动进行了评论.这段代码的一些部分并不完全正确.
如果你能帮助我,这将是巨大的.提前非常感谢!
SVD-Python
是一个非常清晰,简约的SVD实现.
它几乎是psuedocode,应该是相当容易理解
并比较/绘制您的PHP实现,即使你不知道很多python.
是一个非常清晰,简约的SVD实现.
它几乎是psuedocode,应该是相当容易理解
并比较/绘制您的PHP实现,即使你不知道很多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’包含您的奇异值列表.
当然,这只会让你成为潜在语义分析及其亲属的一部分.
你通常要减少奇异值的数量,然后使用一些适当的距离
衡量您的文档或单词,文档和单词等之间的相似性的度量
你的合成矢量之间的角度的余弦相当受欢迎.
是我读过的最清晰,最简洁和翔实的文章
需要按照SVD进行工作.
Edit2:还要注意,如果你正在使用非常大的术语文档矩阵(我假设这个
是你在做什么)几乎肯定会更有效地进行分解
在离线模式下,然后仅响应请求,以实时方式执行比较.
而svd-python是伟大的学习,svdlibc是更多的你想要这样沉重
计算.
最后在上面的bellegarda论文中提到,记住你不必重新计算
svd每一次你得到一个新的文件或请求.取决于你正在努力做什么
可能每个星期左右执行svd一次,在离线模式,本地机器,
然后上传结果(尽管有大小/带宽问题).
反正祝你好运!