博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贝叶斯分类器
阅读量:4707 次
发布时间:2019-06-10

本文共 3092 字,大约阅读时间需要 10 分钟。

app.js

//贝叶斯分类器//特征字典:一些词语数组(改成了特征函数),定义生产特征//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const fs=require('fs');function getText(filepath){    return fs.readFileSync(filepath).toString();}const makeFeatures=require('./makeFeatures')const {tagNames,getTagIndex,getAllP}=require('./config')const html=getText('./src/tag2/2.txt')const nfeature=makeFeatures({html});// console.log(getAllP(nfeature));const index=getTagIndex(nfeature);console.log(tagNames[index],index,tagNames);

  

特征函数 makeFeatures.js

//贝叶斯分类器//特征字典:一些词语数组//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const locals={};const funcArr=[    function ({html,locals}) {        if(html.indexOf('垃圾')>-1){            return '1'        }        return '0'    },    function ({html,locals}) {        if(html.indexOf('食品')>-1){            return '1'        }        return '0'    },    function ({html,locals}) {        if(html.indexOf('商品')>-1){            return '1'        }        return '0'    }];const crypto = require('crypto');const cryptoPassFunc = function(password) {    const md5 = crypto.createHash('md5');    return md5.update(password).digest('hex');};locals.md5Cache={}//生产特征function makeFeatures({html}) {    const md5=cryptoPassFunc(html)    if(!locals.md5Cache[md5]){        const req={            locals:locals,            html:html,        };        let s='';        for(let i=0;i

配置文件,定义了分类名称、训练集位置 config.js

//贝叶斯分类器//特征字典:一些词语数组//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const glob=require('glob');const Bayes=require('./utils/Bayes');function getMaxIndex(arr) {    let index=0;    for(let i=1;i

入口工具,存在了bayes公式相关运算 utils/Bayes.js

//贝叶斯分类器//特征字典:一些词语数组//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const getFeaPosRect=require('./getFeaPosRect');const execMathExpress=require('./execMathExpress');//特征n存在,属于类别m的概率function getPSW(n,m,rect) {    const PWS=rect[m][n];    const PWSArr=rect.map(function (arr) {        return arr[n];    })    const str=`${PWS}/(${PWSArr.join('+')})`;    return execMathExpress(str)}//联合SW1*SWnfunction getPE(feature,m,rect){    const arr=[]    for(let i =0;i

  

每个文件都有特征,将特征组合成矩阵

//贝叶斯分类器//特征字典:一些词语数组//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const fs=require('fs');function getText(filepath){    return fs.readFileSync(filepath).toString();}const makeFeatures=require('../makeFeatures');function makeFeatureRect(fileArr) {    const rect=[]    for(let i=0;i

 

单个特征存在的情况,属于类别的概率,getFeaPosInTag.js

//贝叶斯分类器//特征字典:一些词语数组//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const makeFeatureRect=require('./makeFeatureRect')//找出特征在类别中的概率function getFeaPosInTag(fileArr) {    const featureRect=makeFeatureRect(fileArr);    const arr=[];    for(let i=0;i

找出每个特征存在时,每个类别的概率,getFeaPosRect.js

//贝叶斯分类器//特征字典:一些词语数组//类别的训练集:找出特征在类别中的概率//->产出概率矩阵//特征组合全展开,找出特征相同,概率最大的列表//生产特征组合字典,做判断const getFeaPosInTag=require('./getFeaPosInTag')//找出特征在类别中的概率,多个类别function getFeaPosRect(tagArr) {    const rect=[]    for(let i=0;i

 

转载于:https://www.cnblogs.com/caoke/p/11066206.html

你可能感兴趣的文章
stl学习之测试stlen,cout等的运行速度
查看>>
魔戒三曲,黑暗散去;人皇加冕,光明归来
查看>>
Error和Exception
查看>>
Python和Singleton (单件)模式[转载]
查看>>
httpclient设置proxy与proxyselector
查看>>
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
gulpfile 压缩模板
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
MockObject
查看>>
BZOJ4516: [Sdoi2016]生成魔咒(后缀自动机)
查看>>
查看手机已经记住的WIFI密码
查看>>
最新版IntelliJ IDEA2019 破解教程(2019.08.07-情人节更新)
查看>>
C# 两个datatable中的数据快速比较返回交集或差集
查看>>
关于oracle样例数据库emp、dept、salgrade的mysql脚本复杂查询分析
查看>>