基于AFINN的情感分析

1.0.1 2014-09-18 05:33 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:36:57 UTC


README

Build Status Coverage Status Software License Packagist Version Total Downloads

基于AFINN-111词汇表的PHP情感分析工具。

安装

composer require certifiedwebninja/caroline:1.0.1

简单示例

use CertifiedWebNinja\Caroline\Analysis;

$caroline = new Analysis;

$result = $caroline->analyze('Hey you worthless scumbag');

echo 'Score: '.$result->getScore().PHP_EOL;
echo 'Comparative: '.$result->getComparative().PHP_EOL;

数据集示例

默认情况下,如果没有传递数据集给构造函数,它将使用AFINN数据集。您可以创建自己的数据集,甚至修改默认数据集。

这里是如何使用另一个数据集的示例。

use CertifiedWebNinja\Caroline\Analysis;
use CertifiedWebNinja\Caroline\DataSets\AFINN;

$afinn = new AFINN;

$caroline = new Analysis($afinn);

$result = $caroline->analyze('Hey you worthless scumbag');

echo 'Score: '.$result->getScore().PHP_EOL;
echo 'Comparative: '.$result->getComparative().PHP_EOL;

这将返回与上面简单示例相同的结果,但这个示例的巧妙之处在于,在分析类实例化AFINN数据集之前,您可以替换和扩展数据集,因为AFINN扩展了AbstractDataSet,这为数据集提供了一些辅助方法。

替换数据集词汇

$afinn->replace(['love' => 5]);

$caroline = new Analysis($afinn);

$result = $caroline->analyze('I love my cat.');

echo $result->getScore(); // 5

扩展数据集

$afinn->extend(['cat' => 3]);

$caroline = new Analysis($afinn);

$result = $caroline->analyze('I love my cat.');

echo $result->getScore(); // 6 because "love" and "cat" both have a score of 3 each.

您还可以通过扩展AbstractDataSet创建自己的数据集以供使用。

<?php namespace Acme;

use CertifiedWebNinja\Caroline\DataSets\AbstractDataSet;

class DataSet extends AbstractDataSet
{
    protected $dataSet = [
        'anvil' => -4,
        'catch' => 3
    ];
}