python中文语音识别后-结巴分词以及停用词过滤时遇到的转码问题
2016-06-01 16:39
676 查看
首先自己建立了一个停用词表,表中有各种符号,没有查询意义的中文词,以及英文词,在语音识别系统运行过程中,始终都维护着一个停用词表,但是在对结巴分词后的词进行过滤的时候出现了编码不一致的情况导致无意义词不能得到有效过滤。后来参考该链接:http://san-yun.iteye.com/blog/1544123,以及使用python的chardet库的detect方法检测字符的字符集属性,然后使用对应的codecs模块的相关方法1、将停用词文本中的字符转化为utf-8类型,2、将结巴分词的结果(本是unicode类型)也转化为utf-8类型,最终的目的即是将两者的字符集保持一致,这样才会达到过滤的效果。
代码如下:可通过修改注释部分结合相关链接,从而了解代码逻辑。最后如期过滤掉了“逗号,于”等字符
代码如下:可通过修改注释部分结合相关链接,从而了解代码逻辑。最后如期过滤掉了“逗号,于”等字符
# -*- coding: utf-8 -*- import jieba import sys,time import urllib2 import nltk import os import codecs import chardet recognitionResult = "小明硕士毕业于中国科学院计算所,后在日本京都大学深造" look = codecs.lookup("gbk") look2 = codecs.lookup("utf-8") # print "jsu",chardet.detect(recognitionResult) def getStopWords(): # 返回停用词list global look buff = [] with codecs.open('stop.txt') as fp: for ln in fp: el = ln[:-2] # print "el1",type(el),el,[el],chardet.detect(el) buff.append(el) # break # el = look.decode(el) # el = look.encode(el[0]) # print "el2",type(el),el[0],el,chardet.detect(el[0]) # buff.append(ln[:-2]) print 'buff',buff return buff stopWords = getStopWords() def getKeyWords(recognitionResult): global look2 if len(recognitionResult)<3: # 识别结果无效 return segList = jieba.cut_for_search(recognitionResult) # 搜索引擎模式进行切割 # print "原来", ",".join(segList)# generator类型,只能用一次 keyWords = [] for el in segList: # 过滤掉无意义的词 # el = look.decode(el) # print 'el11', type(el), el, chardet.detect(el) # el11 <type 'unicode'> 小明 el = look2.encode(el)[0] # print 'el22',type(el),el,[el],chardet.detect(el) # keyWords.append(el) if el not in stopWords and len(el)>1: #关键词的长度默认大于1 # print 'el33', type(el), el, [el], chardet.detect(el) keyWords.append(el) print 'keyWords',keyWords return keyWords # getKeyWords(recognitionResult) for ell in getKeyWords(recognitionResult): print look2.decode(ell)[0]
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- Linux 与 Windows 对UNICODE 的处理方式
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例