Javascript分析内容的情感倾向
日期:2011-12-02 阅读:75 分类:Javascript
闲来无事,利用javascript写了一个分析网页内容情感倾向的功能,不一定很准确,但能体验出效果来,抛砖引玉,还请大家多多提意见,见如下代码:
var gc = [
['好', 1], ['美', 0.8], ['优', 0.8], ['精', 0.8], ['妙', 0.8], ['强', 0.8], ['灵', 0.8], ['俊', 0.8], ['明', 0.8],
['雅', 0.8], ['能', 0.8], ['健', 0.8], ['勤', 0.8], ['俏', 0.8], ['忠', 0.8], ['善', 0.8], ['良', 0.8], ['厚', 0.8],
['智', 0.8], ['富', 0.8], ['专', 0.8], ['乐', 0.8], ['佳', 0.8], ['柔', 0.8], ['娇', 0.8], ['贤', 0.8], ['多', 0.8],
['慧', 0.8], ['赏', 0.8], ['赞', 0.8], ['爽', 0.8], ['秀', 0.8], ['简', 0.8], ['稳', 0.8], ['超', 0.8], ['新', 0.8],
['准', 0.8], ['耐', 0.8], ['结', 0.8], ['真', 0.8], ['行', 0.8], ['欣', 0.8], ['支持', 0.8], ['顶', 0.8], ['细', 0.8],
['彩', 0.8], ['棒', 0.8], ['羡', 0.8], ['足', 0.8], ['鲜', 0.8], ['悦', 0.8], ['大', 0.8], ['高', 1], ['香', 0.8], ['快乐', 1],
['美观', 0.8], ['精良', 1], ['完美', 1], ['太好', 2], ['实惠', 0.8], ['动人', 0.8], ['不错', 1.5], ['非常好', 2], ['感动', 1],
['良好', 0.8], ['超赞', 1], ['出众', 1], ['很牛', 1], ['得力', 0.8], ['十足', 1], ['结实', 0.8], ['健壮', 1], ['优点', 1],
['绝佳', 2], ['优异', 1.5], ['顶尖', 1], ['合理', 1], ['有效', 0.8], ['足够', 1], ['扎实', 0.8], ['最佳', 1], ['热门', 1],
['出色', 1], ['实用', 1], ['优惠', 1], ['上乘', 1], ['著名', 0.8], ['完整', 1], ['杰出', 1], ['标准', 0.8], ['怪才', 0.8], ['喜欢', 1.5],
['办法', 1], ['集锦', 1]
];
var bc = [
['差', 1], ['丑', 0.8], ['弱', 0.8], ['粗', 0.8], ['旧', 0.8], ['强', 0.8], ['死', 0.8], ['恶', 0.8], ['老', 0.5],
['劣', 0.8], ['异', 0.8], ['破', 0.8], ['忍', 0.8], ['受', 0.8], ['障', 0.8], ['错', 0.8], ['低', 0.8], ['败', 0.8],
['小', 0.8], ['穷', 0.8], ['杂', 0.8], ['愁', 0.8], ['暴', 0.8], ['乱', 0.8], ['少', 0.8], ['薄', 0.8], ['减', 0.8],
['暗', 0.8], ['阴', 0.8], ['毒', 0.8], ['险', 0.8], ['紊', 0.8], ['欠', 0.8], ['怪', 0.8], ['寒', 0.8], ['坏', 1],
['酸', 0.8], ['冷', 0.8], ['假', 0.8], ['空', 0.8], ['陋', 0.8], ['脏', 0.8], ['笨', 0.8], ['苦', 0.8], ['没有', 1],
['不好', 0.8], ['假的', 0.8], ['太差', 1.8], ['最差', 2], ['缺点', 1], ['错误', 2], ['严重', 1.2], ['失望', 1],
['危险', 0.8], ['次品', 1], ['不良', 1], ['不好使', 1], ['费劲', 0.8], ['繁杂', 0.8], ['不满意', 1.5], ['不正常', 1],
['很差', 0.8], ['低等', 1], ['不行', 1], ['不力', 1], ['不值', 0.8], ['不厚道', 1], ['混乱', 0.8], ['薄弱', 1],
['弱小', 1], ['缩水', 1], ['低劣', 1], ['有害', 1], ['不稳定', 0.8], ['欺骗', 1], ['没用', 0.8], ['困难', 1], ['糟糕', 3.2],
['质量差', 1], ['不理想', 1], ['不足', 1], ['迟钝', 1], ['不合理', 0.8], ['残缺', 1], ['生气', 1], ['气愤', 1], ['讨厌', 1],
['问题', 1], ['烦躁', 0.8], ['遭遇', 2.4], ['麻烦', 1.2], ['郁闷', 2.2], ['质疑', 3.2], ['造假', 3.2], ['误解', 1.5]
];
var ge = [
['good', 1], ['fast', 0.8], ['quick', 0.8], ['quiet', 0.8], ['excellent', 1], ['great', 1], ['high', 0.8], ['better', 0.8], ['best', 1],
['hot', 0.8], ['fine', 0.8], ['ok', 0.8], ['well', 0.8], ['perfect', 1], ['love', 0.8], ['strong', 0.8], ['beautiful', 0.8], ['true', 0.8],
['performance', 0.8], ['new', 0.8], ['profession', 0.8], ['large', 0.8], ['stable', 0.8], ['like', 0.8], ['nice', 0.8], ['big', 0.8],
['compliment', 0.8], ['popular', 0.8], ['live', 0.8]
];
var be = [
['bad', 1], ['low', 0.8], ['slow', 0.8], ['less', 0.8], ['problem', 1], ['bug', 1], ['poor', 0.8], ['terrible', 0.8], ['short', 1],
['old', 0.8], ['hate', 0.8], ['small', 0.8], ['failur', 0.8], ['unsexy', 1], ['sadly', 0.8], ['fail', 0.8], ['missing', 0.8], ['lost', 0.8],
['error', 0.8], ['fuck', 0.8], ['guilt', 0.8], ['terrorism', 0.8], ['disorder', 0.8], ['contempt', 0.8], ['victim', 0.8], ['nonsense', 0.8],
['plight', 0.8], ['collapse', 0.8], ['crash', 0.8], ['die', 0.9]
];
function toDecimal(x, n)
{
var f = parseFloat(x);
if (isNaN(f)) {
0;
}
f = Math.round(x*100)/100;
var s = f.toString();
var r = s.indexOf('.');
if (r < 0) {
r = s.length;
s += '.';
}
while (s.length <= r + n) {
s += '0';
}
return parseFloat(s);
}
function getBodyText()
{
var article = document.getElementById('page');
if(!article)
{
return "";
}
var text = article.innerHTML.replace(/(<[^>]+>)|(\s)/ig, '');
if(text.length > 8192)
{
text = text.substring(0, 8192);
}
return text;
}
function computeText(dict, text)
{
var weight = 0;
for(var i=0;i<dict.length;i++)
{
var matched = text.match(new RegExp(dict[i][0], 'ig'));
if(!matched || matched.length == 0)
{
continue;
}
weight += matched.length*dict[i][1];
}
return weight;
}
function feeling()
{
var text = getBodyText();
var error = '本文情感倾向:中性,正向比例:0,负向比例:0。';
if(text == '')
{
return error;
}
var good = computeText(gc, text) + computeText(ge, text);
var bad = computeText(bc, text) + computeText(be, text);
if(good == 0 && bad == 0)
{
return error;
}
var total = good+bad;
good = toDecimal(good/total, 2);
bad = toDecimal(bad/total, 2);
var res = '中性';
if(good > bad)
{
res = '正向';
}
if(good < bad)
{
res = '负向';
}
return '本文情感倾向:'+ res +',正向比例:'+ good +',负向比例:'+ bad +'。';
}点击查看本页面的内容情感倾向。
本页链接: http://www.scriptlover.com/static/1266-javascript-内容-情感
标签: javascript 内容 情感
相关文章
- Javascript在chrome中辅助预订火车票的方法 2012-01-06
- 一款不错的日历控件 2008-07-31
- getElementsByClassName 2008-07-21
- Javascript常用函数归档 2008-12-01
- EasyWindow1.0 (更新版) 2008-06-25
- 获取dom元素文内容 2008-11-16
- 体验Kindle Fire内容消费 2011-12-08
- 谷歌宣布惩罚广告内容过多的网站 2012-01-23
- 微软发布儿童版IE9浏览器,内容过滤各国都需要 2012-02-08
- 感人广告:《把乐带回家》 2012-01-01
- The last day of 2011 2011-12-31