gpt4 book ai didi

php - PHP 中的奇异值分解 (SVD)

转载 作者:可可西里 更新时间:2023-10-31 23:05:26 25 4
gpt4 key购买 nike

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

我已经自己编写了 SVD 的某些部分。 Here's the code我在其中对操作过程发表了评论。这段代码的某些部分并不完全正确。

如果你能帮助我,那就太好了。非常感谢您!

最佳答案

SVD-python是一个非常清晰、简约的 SVD 实现。它实际上是伪代码,应该很容易理解并比较/借鉴您的 php 实现,即使您不太了解 python。

SVD-python

就是说,正如其他人所提到的,我不希望能够使用 php 实现执行非常繁重的 LSA,这听起来像是一个非常有限的网络主机。

干杯

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

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

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

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

此处“w”包含您的奇异值列表。
当然,这只会让您了解潜在语义分析及其相关部分。您通常希望减少奇异值的数量,然后使用一些适当的距离metric 来衡量你的文档,或单词,或文档和单词等之间的相似性。结果向量之间夹角的余弦值很受欢迎。

Latent Semantic Mapping (pdf)

是迄今为止我读过的关于剩余步骤的最清晰、最简明和信息量最大的论文需要按照 SVD 进行计算。

Edit2:另请注意,如果您正在使用非常大的术语文档矩阵(我假设这个是你在做什么)执行分解几乎肯定会更有效率在离线模式下,然后响应请求仅以实时方式执行比较。虽然 svd-python 非常适合学习,但 svdlibc 更适合您想要的如此繁重的东西计算。

最后如上面的 bellegarda 论文所述,请记住您不必重新计算每当您收到新文档或请求时,svd。取决于你想做什么,你可以可能每周左右执行一次 svd,在离线模式下,在本地机器上,然后上传结果(尽管存在大小/带宽问题)。

祝你好运!

关于php - PHP 中的奇异值分解 (SVD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com