中文分词组件

来源:互联网 发布:虎贲计算机二级软件 编辑:程序博客网 时间:2024/06/05 06:32

1.下载mecab-chinesedic-binary,放在MeCab bin目录下,具体参考:详细详细可参考《用MeCab打造一套实用的中文分词系统》

cmd运行命令:mecab -d mecab-chinesedic-binary wakati wiki.zh.text.jian -o wiki.zh.text.jian.seg -b 10000000 

其中,wiki.zh.text.jian是一个中文数据集,wiki.zh.text.jian.seg为分割后文本。

2.使用中文分词工具jieBa

  1. #encoding=utf-8  
  2. import jieba  
  3.   
  4. #全模式  
  5. text = "我来到北京清华大学"  
  6. seg_list = jieba.cut(text, cut_all=True)  
  7. print u"[全模式]: ""/ ".join(seg_list)   
  8.   
  9. #精确模式  
  10. seg_list = jieba.cut(text, cut_all=False)  
  11. print u"[精确模式]: ""/ ".join(seg_list)  
  12.   
  13. #默认是精确模式  
  14. seg_list = jieba.cut(text)  
  15. print u"[默认模式]: ""/ ".join(seg_list)   
  16.   
  17. #新词识别 “杭研”并没有在词典中,但是也被Viterbi算法识别出来了  
  18. seg_list = jieba.cut("他来到了网易杭研大厦")   
  19. print u"[新词识别]: ""/ ".join(seg_list)  
  20.   
  21. #搜索引擎模式  
  22. seg_list = jieba.cut_for_search(text)   
  23. print u"[搜索引擎模式]: ""/ ".join(seg_list)  
#当然也可以用自己定义的词典
如:
  1. #导入自定义词典  
  2. jieba.load_userdict("dict.txt")  

#读取文件并保存
从BaiduSpider文件中读取0001.txt~0204.txt文件,分别进行分词处理再保存。
[python] view plain copy
  1. #encoding=utf-8  
  2. import sys  
  3. import re  
  4. import codecs  
  5. import os  
  6. import shutil  
  7. import jieba  
  8. import jieba.analyse  
  9.   
  10. #导入自定义词典  
  11. jieba.load_userdict("dict_baidu.txt")  
  12.   
  13. #Read file and cut  
  14. def read_file_cut():  
  15.     #create path  
  16.     path = "BaiduSpider\\"  
  17.     respath = "BaiduSpider_Result\\"  
  18.     if os.path.isdir(respath):  
  19.         shutil.rmtree(respath, True)  
  20.     os.makedirs(respath)  
  21.   
  22.     num = 1  
  23.     while num<=204:  
  24.         name = "%04d" % num   
  25.         fileName = path + str(name) + ".txt"  
  26.         resName = respath + str(name) + ".txt"  
  27.         source = open(fileName, 'r')  
  28.         if os.path.exists(resName):  
  29.             os.remove(resName)  
  30.         result = codecs.open(resName, 'w''utf-8')  
  31.         line = source.readline()  
  32.         line = line.rstrip('\n')  
  33.           
  34.         while line!="":  
  35.             line = unicode(line, "utf-8")  
  36.             seglist = jieba.cut(line,cut_all=False)  #精确模式  
  37.             output = ' '.join(list(seglist))         #空格拼接  
  38.             print output  
  39.             result.write(output + '\r\n')  
  40.             line = source.readline()  
  41.         else:  
  42.             print 'End file: ' + str(num)  
  43.             source.close()  
  44.             result.close()  
  45.         num = num + 1  
  46.     else:  
  47.         print 'End All'  
  48.   
  49. #Run function  
  50. if __name__ == '__main__':  
  51.     read_file_cut()  
原创粉丝点击