音字转换实验、HMM+viterbi

RT,NLP实验二。音字转换,其中用到的思想比较基本、比较老。

1.首先统计unigram和bigram的频数

2.词作为状态集,音作为观测序列。

3.计算转移矩阵概率和发射矩阵概率,建立HMM模型

4.给定HMM模型和观测序列,采用viterbi算法动态规划解码。

viterbi.py

# -*- coding: cp936 -*-
"""
    viterbi.py
    author:messiandzcy
    date:2014.12.11
"""
import sys
#from numpy import *
#申请矩阵
def matrix(rows,cols):
    mat = [[0 for col in range(cols)]for row in range(rows)]
    return mat
#加载unigram
def LoadUnigram():
    print "Loading Unigram..."
    fp = open("unigramSorted.txt","r")
    uni={}
    iters=1 #控制读入行数
    for line in fp:
        w,freq = line.split()
        if len(w)==2 and int(freq)>=2700:#w in debug:   #状态集只包含频繁单字
            uni[w]=int(freq) 
            #iters += 1
        #uni[w]=int(freq)
        #if iters>=1300:break     #控制状态集的大小,有内存溢出问题
    fp.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值