Skip to content

xiongshufeng/pinyin2hanzi-2

 
 

Repository files navigation

pinyin2hanzi

这是一个可以将输入的拼音转为汉字的程序。在拼音转汉字的过程中使用了隐马尔科夫模型和维特比算法。

程序是如何分音的?

当连续输入几个字的拼音时,程序会对每相邻的两个拼音连续出现的概率做计算。对于出现概率很少的拼音认为这里是两个字的拼音分割处。

这样分音会将类似西安这样的词语的分音错误分割。所以,这里还会对每一个已经完成分音的拼音从后向前扫描。如果发现一个拼音内部出现了另一个拼音,则将这个拼音分为两个独立的拼音。

程序运行说明

  1. python init.py 生成start.txt, trans.txt, emission.txt
  2. 在mysql中创建数据库和数据表。
  3. 使用load_data_to_db.md中的方法将生成的start.txt, trans.txt, emission.txt 导入到mysql中。
  4. python main.py 输入拼音,可以查看到对于的候选汉字列表

因为mysql包含有方便的将txt导入到mysql中的方法,所以不需要现将.txt转换为.sql在执行了。也就是gen_sql.py文件其实已经没用了。

文件说明

  1. pinyin_prob.txt 里记录了每两个字母连续出现的概率
  2. pinyin_word.txt 记录了每个拼音对应的汉字出现的概率
  3. dic 文件夹里面是训练用的词典和文章
  4. dic/news/all_info.txt 是2008年搜狐新闻的打包文件,里面包含了几乎所以2008年的搜狐新闻内容。用来训练词典

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%