文字分词 隐马尔可夫模型-JavaScript

2021-04-01 06:26

阅读:608

标签:for   lob   例子   ons   add   状态   rip   存在   马尔科夫   

/**
 文字分词 隐马尔可夫模型
 共4种状态S B M E
 AMap 为状态转移概率矩阵 4*4,表示从{S B M E}到{S B M E}的概率
 BMap 为当前字属于某种状态{S B M E}的概率
 * */
//有限状态
const S=[‘S‘,‘B‘,‘M‘,‘E‘]
const startB=[‘S‘,‘B‘]
const endB=[‘S‘,‘E‘]

const AMap={
  SS:0.5,
  SB:0.5,
  SM:0,
  SE:0,

  BS:0,
  BB:0,
  BM:0.5,
  BE:0.5,

  MS:0,
  MB:0,
  MM:0.5,
  ME:0.5,

  ES:0.5,
  EB:0.5,
  EM:0,
  EE:0,
}
const BMap={};

const mekf={
  add(text){
    if(text.length>1){
      if(text.length===2){
        this.push(text[0],‘B‘)
        this.push(text[1],‘E‘)
        this.pushState(‘BE‘)
      }else{
        for(let i=1;imaxglArr[0]){
                maxArr=[nlink]
                maxglArr=[cgl]
              }else if(cgl===maxglArr[0]){
                maxArr.push(nlink)
                maxglArr.push(cgl)
              }
            }
          }
        }

        if(maxArr.length>0){
          for(let m=0;mmaxGL){
        maxGL=lglArr[i]
        maxLink=linkArr[i]
      }
    }
    console.log(linkArr)
    console.log(lglArr)
    return maxLink
  }
}

mekf.add(‘太平洋保险‘)
mekf.add(‘保险‘)
mekf.add(‘一个‘)
mekf.add(‘例子‘)
mekf.add(‘隐马尔科夫链‘)
mekf.add(‘科夫‘)

console.log(AMap)
console.log(BMap)
const link=mekf.solve(‘太平保险‘)
console.log(link)

  

文字分词 隐马尔可夫模型-JavaScript

标签:for   lob   例子   ons   add   状态   rip   存在   马尔科夫   

原文地址:https://www.cnblogs.com/caoke/p/13542854.html


评论


亲,登录后才可以留言!