jieba库

汉语自然语言处理的第一项核心技术就是中文词汇的自动切分。词的概念迄今为止尚未有一个权威的解释,英文分词根据词之间的空格可以很容的区分,而中文没有空格,因此分词问题比较复杂。汉语的分词方法有很多,总结归纳为“规则分词“、“统计分词”和“混合分词”这三个流派。
jieba是Python中一个重要的第三方中国分词词库,支持精确模式、全模式(不能解决歧义,有冗余)、搜索引擎模式(适合用于搜索引擎)三种。

分词函数

  1. 默认是精确模式,
  2. jieba.cut,
  3. jieba.lcut:返回一个列表
  4. jieba.cout_for_search
  5. jieba.lcut_for_search:
  6. jieba.add_word:添加词汇

image.png

高频词的提取

高频词指的是文档中出现频率较高且不是无用或无关的词语,其在一定程度上代表了文档的焦点所在;
在自然语言处理中高频词的提取还要去除一些干扰,主要包括标点符号和停用词。所谓的停用词就是指像”的”、”是”、”了”等任何无意义的词汇。

应用案例-高频词提取

  1. import jieba
  2. with open("words.txt", 'r') as f:
  3. txt = f.read() # 读取文本
  4. words = jieba.lcut(txt) # 对文本进行分词
  5. counts = {}
  6. stop_words=['成为', '使用'] # 加入停用词
  7. for word in words: # 统计词频
  8. if len(word) != 1 and word not in stop_words: # 去掉长度为1的字符
  9. counts[word] = counts.get(word, 0) + 1
  10. items = sorted(counts.items(),key=lambda x:x[1],reverse=True) # 降序排列,sorted返回一个列表
  11. for i in range(10):
  12. word,count = items[i]
  13. print(f"{word} : {count}")