thewildhorse / cronlp
用于从克罗地亚文本中提取元数据的软件包。
Requires (Dev)
- phpunit/phpunit: 5.4.*
This package is not auto-updated.
Last update: 2024-09-14 19:04:10 UTC
README
#CroNLP
CroNLP 是一个用于从克罗地亚文本中提取元数据的软件包。目前它支持使用 TF-IDF 算法实现的基本关键词提取和摘要。
🔵 此软件包是稳定的,但由于仍在开发阶段,算法可能产生低于平均的结果。如果您能改进软件包的任何部分,请随时提交合并请求。 :) 🔵
安装
安装是一个两步过程,它需要在您的侧进行一些实现,但并不复杂。
Composer
与其他 composer 软件包一样,安装可以通过运行以下命令完成:
composer require thewildhorse\cronlp
或者将软件包包含在您的 composer.json 文件中。
"require": {
...
"thewildhorse/cronlp": "dev-master"
}
数据集适配器
此软件包的关键部分是数据集,没有它脚本将无法运行。此数据集可在 vendor/thewildhorse/cronlp/data 中找到,以两个数据库导出文件的形式存在。这两个导出文件需要导入您选择的数据库(或者如果您需要极快性能,可以使用缓存引擎)。
该数据集包含两个表
- word_variations - 包含克罗地亚词汇及其词干的映射。(感谢 FFZG)
- word_frequency - 包含词干在文档中出现的次数的文档频率映射。对于提供的数据库,我们使用了706134篇克罗地亚在线新闻文章。此表是 TFIDF 算法中的文档频率表。
CroNLP 利用数据集适配器从数据集中获取信息,这是为了确保软件包的通用性。数据集适配器的唯一目的是提供对两个数据集表的接口。数据集适配器是一个实现了 IgorRinkovec\CroNLP\DatasetAdapters\AbstractDatasetAdapter 抽象类的类。如果您使用 Laravel 框架,则可以使用已实现的 IgorRinkovec\CroNLP\DatasetAdapters\EloquentDatasetAdapter。如果您使用 Doctrine 或任何其他自定义 ORM,请随时将其用作实现自己的适配器的参考。这是一个相当直接的过程。
如果您为流行的 ORM 实现了数据集适配器,请随时通过发送合并请求将其贡献给项目。
使用方法
在实现适配器后,使用方法很简单
$datasetAdapter = new EloquentDatasetAdapter(WordFrequency::class, WordVariation::class); $summarizer = new CroNLP($datasetAdapter); $summarizedText = $summarizer->summarize($content, $digestPercentage); $keywords = $summarizer->extractKeywords($content, $numOfKeywords);
首先,您需要使用对您的数据集适配器实现对象的引用来构造一个 IgorRinkovec\CroNLP\CroNLP 实例。CroNLP 类公开以下方法
- summarize($text, $percentageToCondense = 70) - 将提供的 $text 摘要为原始大小的 $percentageToCondense%。
- extractKeywords($text, $amount = 10) - 从提供的 $text 中提取 $amount 个排名最高的关键词。
未来
- 重构 TextProcessorService 以删除全局变量并将其拆分为几个较小的服务。
- 对代码库进行更多单元测试。
- 使用更大的文档数据库重新生成数据集,并尝试进一步清理结果。
- 实现 DoctrineDatasetAdapter。