基于python的jieba分词

一.jieba分词基本用法

       1.一般都采用精确分词模式,直接jieba.cut(str1),

       2.识别新词默认开启。

      3.词性标注jieba.posseg,需要才用

  • 全分词
  • 精确分词
  • paddle模式
  • 搜索引擎模式分词

二.精确度调整

        1.字典调整

               (1)使用自定义词典:load_userdict()函数

#1.使用用户自定义词典
jieba.load_userdict('hello.txt')
seg_list=jieba.cut(str1)
print('使用自定义词典分词结果:','/'.join(seg_list))

               (2) 动态修改词典

  

#2.动态修改词典 add_word() del_word()
jieba.load_userdict('hello.txt')
jieba.add_word('我来到了')
jieba.del_word('发现这儿')
seg_list=jieba.cut(str1)
print('动态修改词典分词结果:','/'.join(seg_list))

2.调节词频

#调节词频 suggest_freq()函数
jieba.suggest_freq(('真','不错'),True)
jieba.suggest_freq('我来到了',True)
seg_list=jieba.cut(str1)
print('调节词频结果:','/'.join(seg_list))

 3.停用词过滤

with open('cn_stopwords.txt','r+',encoding='utf-8')as fp:
    stopwords=fp.read().split('\n')
word_list=[]
text='商务部4月23号发布的数据显示,一季度,全国农产品网络零售额达936.8亿元,增长31.0%;电商直播超过400万场。电商给农民带来了新的机遇。'
seg_list=jieba.cut(text)
for seg in seg_list:
    if seg not in stopwords:
        word_list.append(seg)  #list append方法
print(word_list)        
print('启用停用词过滤时的分词结果:\n','/'.join(word_list))   

四.关键词提取

TF-IDF和TextRank

# 1.基于TF-IDF算法的关键词提取 extract_tags()
from jieba import analyse
keywords=analyse.extract_tags(str1,topK=2,withWeight=True,allowPOS=('n','v'))
print(keywords)

#2.基于TextRank 算法的关键词提取:textrank()函数
#textrank()函数能基于TextRank算法提取关键字
keywords=analyse.textrank(str1,topK=2,withWeight=True,allowPOS=('n','v'))
print(keywords)

词语概率统计

五.词频统计 

text='蒸馍馍锅锅蒸馍馍,馍馍蒸了一锅锅,馍馍隔上桌桌,桌桌上面有馍馍。'
with open('cn_stopwords.txt','r+',encoding='utf-8')as fp:
    stopwords=fp.read().split('\n')

word_list={}
jieba.suggest_freq(('桌桌'),True)

seg_list=jieba.cut(text)

for seg in seg_list:
    if seg not in stopwords:
        if seg in word_list.keys():
            word_list[seg]+=1
        else:
            word_list[seg]=1
print(word_list)            

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HMM分词是汉语分词的一种基础方法,其核心算法是隐马尔可夫模型。Python作为一种高级编程语言,拥有丰富的自然语言处理库和工具。下面是基于HMM算法的Python分词代码实现。 首先,需要准备好语料库和词典库。语料库是用于训练模型和测试分词效果的文本集合,而词典库则是包含一些常见词语的列表或文件。 接着,需要定义HMM模型中的状态和观测值。在汉语分词中,状态通常为“B(开头)、M(中间)、E(结尾)和S(单个字)”,观测值则为每个汉字。通过预处理语料库和词典库,可以得到每个汉字出现在每个位置上的概率、每个位置上以某个字为结尾的概率和某个位置上以某个字为开头的概率。 然后,通过Viterbi算法来实现分词。Viterbi算法用于求解HMM模型中的最优路径,即最有可能的分词结果。需要对输入文本进行预处理,将输入文本中的汉字转换成相应的观测值,并计算每个位置上的概率值。接着,通过动态规划的方法求解每个位置上的最优状态,最后将最优状态转换成分词结果即可。 最后,需要对分词结果进行一些后处理,例如去除停用词、合并一些特殊的词语等等,以达到更好的分词效果。 综上所述,基于HMM算法的Python分词代码实现需要准备好语料库和词典库,定义HMM模型的状态和观测值,以及编写Viterbi算法来求解最优路径。最终通过后处理来优化分词结果。这样的代码实现可以很好地对汉语文本进行分词处理,是自然语言处理领域中不可或缺的一部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值