adrianoferreira/document-distance

这是一个简单的库,通过余弦相似度算法计算两个文档之间的距离。

dev-master 2020-01-24 15:47 UTC

This package is auto-updated.

Last update: 2024-09-25 03:09:35 UTC


README

Build Status Build Status Total Downloads License

文档距离/相似度是根据文档内容重叠度进行度量的。

解决此特定问题最常用的算法之一是余弦相似度——一种基于向量的相似度度量。这正是本库的功能所在。

两个文档的余弦距离由它们特征向量之间的角度定义,在我们的情况下,是词频向量。文档的词频分布是词到其频率计数的映射。

Cosine Similarity

安装

建议使用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