jieba库对中文文本进行切割 python

匿名 (未验证) 提交于 2019-12-02 22:51:30

jieba是中文文本用于分词的库,有3种模式:精确模式、全模式(所有可能的分割)、搜索引擎模式(在精确模式基础上再进行分割)

具体参考PYPI

# coding=utf-8 import  jieba  #txt = open(u"D:\data\ebook\红楼梦.txt","r").read() #,encoding='utf-8' txt = open("D:\\data\\ebook\\1.txt","r",encoding='utf-8').read() words = jieba.lcut_for_search(txt)     # 使用搜索引擎模式对文本进行分词 counts = {}     # 通过键值对的形式存储词语及其出现的次数  for word in words:     print(word)     if  len(word) == 1:    # 长度为1的词语不计算在内         continue     else:         counts[word] = counts.get(word, 0) + 1    # 遍历所有词语,每出现一次其对应的值加 1          items = list(counts.items())#将键值对转换成列表 items.sort(key=lambda x: x[1], reverse=True)    # 根据词语出现的次数进行从大到小排序  for i in range(5):     word, count = items[i]     print("{0:<5}{1:>5}".format(word, count)) 

  注:1.txt

  王西风在吃大枣,林黛玉在看书,宝玉发呆呢。。。。。 王西风吃完大枣后被宝玉叫住问:”大枣好不好吃?“,西风苦涩地说:”不好吃,涩得很,你想吃吗?“ 宝玉说,”不好吃的话我就不吃了,算了。“,接着他去黛玉那里看了看黛玉正在看的书,觉得都是写伤感的东西,很不感兴趣。 

  得到的分词结果,统计次数的前5个答案如下,可以看出,这个中文文本分割只是简单分割,有一定的缺点:不能根据语义进行分割,文本的意思是大枣不好吃,它分割成了好吃,林黛玉和黛玉是一个人,它分割成了两个分词。

('西风', 3),
('大枣', 3),
('宝玉', 3),
('好吃', 2),
('林黛玉', 1)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!