我正在尝试计算网站上的正面评价数量。请考虑以下字符串:
$str_1 = "This is great";
$str_2 = "This is not great after all";
$str_3 = "That isn't good and I will not return to this store.";
他们的意思相反。在自动分类中,大多数分类器(简单地计算句子中正数词的数量)将$ str_2和3计为正数。我希望通过将“not”与“great”,“is not”与“good”而不是“return”链接来规避此错误,如下所示:
$str_1 = "This is great";
$str_2 = "This is not_great after all";
$str_3 = "That isn't_good and I will not_return to this store.";
我开始通过对字符串进行标记:
$tokens = explode("", $str_3);
但我不知道该怎么办。如何将“否定”(“不”,“不是”)后面的单词与下一个单词相关联?这不是更好用的正则表达式吗?
答案 0 :(得分:2)
我不确定这个答案会非常有用,我担心......如果你真的想在论坛上对帖子的情绪进行分类,这是一个非常难的问题。你提出的建议会让你有一些方法,但是英语(和其他语言)的复杂程度要高得多,而这并没有考虑到。例如:
等。换句话说,在一些简单的情况下寻找一个带有否定的正面词会起作用,但在许多其他情况下则不行。我想你会想要一个更复杂的方法。如果您有大量的训练数据(即手动分类的评论),您可以使用神经网络或分类器,如SVM或朴素的贝叶斯分类器。
我怀疑如果你继续使用正则表达式方法,你会发现你会永远添加例外和特殊情况,它最终会变得非常复杂,只会在50%的情况下起作用。对不起,我不能更积极!
答案 1 :(得分:0)
“模式”系统也可能有助于情绪分析:
比利时选举,2010年6月13日 - Twitter意见挖掘http://www.clips.ua.ac.be/pages/pattern-examples-elections
答案 2 :(得分:0)
这可能是您需求的开始。