adrianoferreira / document-distance
这是一个简单的库,通过余弦相似度算法计算两个文档之间的距离。
dev-master
2020-01-24 15:47 UTC
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-25 03:09:35 UTC
README
文档距离/相似度是根据文档内容重叠度进行度量的。
解决此特定问题最常用的算法之一是余弦相似度——一种基于向量的相似度度量。这正是本库的功能所在。
两个文档的余弦距离由它们特征向量之间的角度定义,在我们的情况下,是词频向量。文档的词频分布是词到其频率计数的映射。
安装
建议使用Composer安装此库。
$ composer require adrianoferreira/document-distance:dev-master
用法
计算两个远程文件之间的相似度百分比
echo ( new \AdrianoFerreira\DD\File( 'http://test.com/test.txt', 'http://test.com/test2.txt' ) )->getPercent();
计算两个本地文件之间的弧度大小
echo ( new \AdrianoFerreira\DD\File( __DIR__ . 'test.txt', __DIR__ . 'test2.txt' ) )->getArcSize();
计算两个任意字符串之间的相似度百分比
echo ( new \AdrianoFerreira\DD\Text( 'test 123 456', 'test 678 000' ) )->getPercent();
计算任意字符串之间的弧度大小
echo ( new \AdrianoFerreira\DD\Text( 'test 123 456', 'test 678 000' ) )->getArcSize();
参考资料
此实现基于一份MIT文档:https://courses.csail.mit.edu/6.006/fall11/rec/rec02.pdf