gribanov/analyzer-text

v1.0.1 2019-11-07 13:51 UTC

This package is auto-updated.

Last update: 2024-09-08 00:47:14 UTC


README

Latest Stable Version PHP from Travis config Build Status Coverage Status Scrutinizer Code Quality StyleCI License

文本分析器

用于分析任意文本并从中提取最大信息的工具

文本

在应用中,文本表示为对象迭代器,相应地,迭代器的单元格是单词对象。

$text = '...'; // некоторый текст
$text_obj = new \AnalyzeText\Text($text);
// @var $word \AnalyzeText\Text\Word
$word = $text_obj->current();

获取到单词后,可以获取其原始形式以及用于分析的底层形式。

输入文本预期采用UTF-8编码

分析器

可以使用预安装的分析器进行文本分析,只需传递文本对象即可。

  • Frequency - 计算单词在文本中的出现频率及其与最常用单词出现频率的百分比。

过滤器

包含超过3000个单词的过滤器集合,用于清理文本。

  • Adverb - 副词
  • Interjection - 副词
  • Particle - 颗粒
  • Preposition - 介词
  • Pronoun - 代词
  • Union - 联合
  • Informative - 信息性词语(过滤上述所有内容)

使用方法

例如,实现自然文本分析以进行SEO优化的示例。

$frequency = new Frequency();
$frequency->setText(new Text($text));

// анализируем весь список слов
$graph = array_slice(array_merge_recursive($frequency->getFrequency(), $frequency->getPercent()), 0, 20);

// фильтруем и получаем только информационные слова
$frequency->applyFilters()->Informative();
$graph_filter = array_slice(array_merge_recursive($frequency->getFrequency(), $frequency->getPercent()), 0, 20);

性能

以下代码用于分析性能

$i = $ii = 1000;
$start = microtime(1);
while ($i--) {
    $frequency = new Frequency();
    $frequency->setText(new Text($text))->applyFilters()->Informative();
    $frequency->getFrequency();
    $frequency->getPercent();
}
echo (microtime(1) - $start) / $ii;

测试文本包含15190个字符,2707个单词。

结果:~0.29 c。

许可证

此包受MIT许可证约束。请参阅文件中的完整许可证:LICENSE