0

我正在做我的最后一个项目。

我正在尝试创建 Twitter 消息的情绪分析。

我正在使用贝叶斯算法和词袋。

你有PHP中词袋算法的例子吗?

我找不到任何东西,可能是正面和负面词的列表或其他东西

4

2 回答 2

3

“词袋”不是算法

这只是意味着您将文本视为无序的多组(“袋”)单词以进行分析;你不像在 NLP 中那样注意词序。例如,带有字数的稀疏向量。

于 2012-01-28T14:51:40.063 回答
0

我还没有在 PHP 中实现 Bag of Words,但我已经在 java 中实现了。实现它的一种简单方法是获取训练数据并对其进行标记(例如 Stanford Tokenizer)。一旦你标记了所有的训练数据,你就可以从中提取 1-grams。我使用这个http://homepages.inf.ed.ac.uk/lzhang10/ngram.html来提取克,然后从输出中删除字数并只使用这些字。这将成为您的词袋语料库,可在训练和分类期间使用。确保在训练和测试或分类期间使用相同的标记器,并且在训练模型时也使用相同的语料库。

现在实现它非常容易,只需获取一串数据并使用用于创建词袋语料库的相同标记器对其进行标记。现在获取每个标记,然后查找该标记在您的语料库中是否可用以及在什么位置。例如,您有一个语料库,其单词如下:-

一种

姓名

你好

世界

,

你有一个字符串“你好,我的名字是 Jas”。对其进行标记将给出以下标记 {hello,,,my,name,is,Jas} 并且当您尝试将这些标记与语料库匹配时,您的结果将是:-

2:1 4:1 6:1

这意味着,出现在语料库中位置 2、4 和 6 中的单词 name、hello 和 comma 出现在传入的测试字符串中。

于 2012-02-06T06:42:22.880 回答