当前位置:   article > 正文

NLP自然语言处理 之 jieba中文处理_nlp 自然语言处理 jieba

nlp 自然语言处理 jieba

教程参考来源视频:https://www.bilibili.com/video/av21452290/?p=1

jieba中文处理

与拉丁语系不同,亚洲语言不是以空格分隔词的。因此需要专门的工具将完整的文本分解成粒度更细的词。
jieba就是一个十分好用的中文工具。它以分词起家,但功能比分词强大很多。

1.基本分词函数与用法

jieba.cut及jieba.cut_for_search 返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode)
jieba.cut方法接受三个输入参数:

  • 需要分词的字符串
  • cut_all 参数用了控制是否采用全模式
  • HMM 参数用来控制是否使用HMM模型

jieba.cut_for_search方法接受两个参数

  • 需要分词的字符串
  • 是否使用HMM模型
    该方法适合用于搜索引擎构建倒序索引的分词,粒度比较细
#encoding=utf-8
import jieba

seg_list=jieba.cut("我在学习自然语言处理",cut_all=True)
print(seg_list)
print("Full Mode: "+"/".join(seg_list)) #全模式

seg_list=jieba.cut("我在学习自然语言处理",cut_all=False)
print("Default Mode: "+"/".join(seg_list)) #精确模式

seq_list=jieba.cut("他毕业于上海交通大学,在百度深度学习研究院进行研究") #默认是精确模式
print(",".join(seq_list))

seg_list=jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")  #搜索引擎模式
print(", ".join(seg_list))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/b3/hjtxm6356wx19tq8jhyw52400000gn/T/jieba.cache


<generator object Tokenizer.cut at 0x102bcfd00>


Loading model cost 0.703 seconds.
Prefix dict has been built succesfully.


Full Mode: 我/在/学习/自然/自然语言/语言/处理
Default Mode: 我/在/学习/自然语言/处理
他,毕业,于,上海交通大学,,,在,百度,深度,学习,研究院,进行,研究
小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, ,, 后, 在, 哈佛, 大学, 哈佛大学, 深造
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

jieba.lcutjieba.lcut_for_search直接返回list

result_lcut=jieba.lcut("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")
print(result_lcut)
print(" ".join(result_lcut))
print(" ".join(jieba.lcut_for_search("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")))
  • 1
  • 2
  • 3
  • 4
['小明', '硕士', '毕业', '于', '中国科学院', '计算所', ',', '后', '在', '哈佛大学', '深造']
小明 硕士 毕业 于 中国科学院 计算所 , 后 在 哈佛大学 深造
小明 硕士 毕业 于 中国 科学 学院 科学院 中国科学院 计算 计算所 , 后 在 哈佛 大学 哈佛大学 深造
  • 1
  • 2
  • 3

添加用户自定义词典

很多时候我们需要针对自己的场景进行分词,会有一些领域内的专有词汇

  • 1.可以使用jieba.load_userdict(file_name)加载用户字典

  • 2.少量的词汇可以自己用下面方法手动添加:

    用add_word(word,freq=None,tag=None)和del_word(word)在程序中动态修改词典

    用suggest_freq(segment,tune=True)可调节单个词语的词频,使其能(或不能)被分出来。

print('/'.join(jieba.cut('如果放到旧字典中将出错。',HMM=False)))
  • 1
如果/放到/旧/字典/中将/出错/。
  • 1
jieba.suggest_freq(('中','将'),True)
  • 1
494
  • 1
print('/'.join(jieba.cut(
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/344083
    推荐阅读
    相关标签
      

    闽ICP备14008679号