赞
踩
jieba库: 由于中文文本中的单词不是通过空格或者标点符号分割, 中文及类似语言存在一个重要的“分词”问题(类似于我们初中学的文言文时分词断意) 分词原理: 利用一个中文词库,将待分的内容与分词词库进行比对, 通过"图结构和动态规划方法"找到最大概率的词组。 除了分词,jieba还提供"增加自定义中文单词的功能" 三种分词模式 1.精确模式(最常用):将句子最精确地切开,适合文本分析; 2.全模式 :把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义 3.搜索引擎模式:在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词 精确模式: jieba.lcut(s)是最常用的中文分词函数,用于精确模式,即将字符串分割成等量的中文词组,返回结果是列表类型 import jieba print(jieba.lcut("由于中文文本中的单词不是通过空格或者标点符号分割")) 根据该词在生活中出现的"概率"分割的。 分割结果:['由于', '中文', '文本', '中', '的', '单词', '不是', '通过', '空格', '或者', '标点符号', '分割'] 用于全模式: jieba.lcut(s,cut_all=True) "用于全模式",即将字符串的"所有分词可能均列出来","返回结果是列表类型","冗余性最大" print(jieba.lcut("由于中文文本中的单词不是通过空格或者标点符号分割",cut_all=True )) 逐词递增组合分组 (但凡可以组词的全组在一起), 结果是:['由于', '中文', '文文', '文本', '中', '的', '单词', '不是', '通过', '空格', '或者', '标点', '标点符号', '符号', '分割'] 返回搜索引擎模式: jieba.lcut_for_search(s) 返回搜索引擎模式,该模式首先"执行精确模式",然后再对其中"长词"进一步切分获得最终结果 print(jieba.lcut_for_search("由于中文文本中的单词不是通过空格或者标点符号分割")) 结果是:['由于', '中文', '文本', '中', '的', '单词', '不是', '通过', '空格', '或者', '标点', '符号', '标点符号', '分割'] jieba还提供"增加自定义中文单词的功能" 顾名思义用来向jieba词库增加新的单词(帮助算法无法划分的词,手动划分) print(jieba.lcut("时科是你爸爸",cut_all=True) ) "时科"是一个词,但它无法判别。 结果是:['时', '科', '是', '你', '爸爸'], jieba.add_word("时科") 添加手动分词 print(jieba.lcut("时科是你爸爸",cut_all=True) ) 结果是:['时科', '是', '你', '爸爸'] 帮助手动划分之后。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。