jieba库
汉语自然语言处理的第一项核心技术就是中文词汇的自动切分。词的概念迄今为止尚未有一个权威的解释,英文分词根据词之间的空格可以很容的区分,而中文没有空格,因此分词问题比较复杂。汉语的分词方法有很多,总结归纳为“规则分词“、“统计分词”和“混合分词”这三个流派。
jieba是Python中一个重要的第三方中国分词词库,支持精确模式、全模式(不能解决歧义,有冗余)、搜索引擎模式(适合用于搜索引擎)三种。
分词函数
默认是精确模式,
jieba.cut,
jieba.lcut:返回一个列表
jieba.cout_for_search
jieba.lcut_for_search:
jieba.add_word:添加词汇
高频词的提取
高频词指的是文档中出现频率较高且不是无用或无关的词语,其在一定程度上代表了文档的焦点所在;
在自然语言处理中高频词的提取还要去除一些干扰,主要包括标点符号和停用词。所谓的停用词就是指像”的”、”是”、”了”等任何无意义的词汇。
应用案例-高频词提取
import jieba
with open("words.txt", 'r') as f:
txt = f.read() # 读取文本
words = jieba.lcut(txt) # 对文本进行分词
counts = {}
stop_words=['成为', '使用'] # 加入停用词
for word in words: # 统计词频
if len(word) != 1 and word not in stop_words: # 去掉长度为1的字符
counts[word] = counts.get(word, 0) + 1
items = sorted(counts.items(),key=lambda x:x[1],reverse=True) # 降序排列,sorted返回一个列表
for i in range(10):
word,count = items[i]
print(f"{word} : {count}")