1.jieba的使用
精确模式分词:试图将句子最精确的切开,适合文本分析
import jieba
content = '鸿蒙系统耗费了华为10年心血,投入了数千名研发人员。这一基于微内核的系统,是为万物互联时代而生的,可带来跨设备的无缝体验'
a = jieba.cut(content,cut_all=False) #cut_all默认为False
#将返回一个生成器对象
print(a)
#若需要返回列表内容,使用jieba.lcut
list = []
list = jieba.lcut(content,cut_all=False)
print(list)
输出结果:
<generator object Tokenizer.cut at 0x00000248AF037C48>
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\22843\AppData\Local\Temp\jieba.cache
Loading model cost 0.978 seconds.
Prefix dict has been built successfully.
['鸿蒙', '系统', '耗费', '了', '华为', '10', '年', '心血', ',', '投入', '了', '数千名', '研发', '人员', '。', '这一', '基于', '微内核', '的', '系统', ',', '是', '为', '万物', '互联', '时代', '而生', '的', ',', '可', '带来', '跨', '设备', '的', '无缝', '体验']
全模式分词:把句子中所有的可以成词的词语都扫描出来,但不能消除歧义
import jieba
content = '鸿蒙系统耗费了华为10年心血,投入了数千名研发人员。这一基于微内核的系统,是为万物互联时代而生的,可带来跨设备的无缝体验'
a = jieba.cut(content,cut_all=True) #cut_all默认为False
#将返回一个生成器对象
print(a)
#若需要返回列表内容,使用jieba.lcut
list = []
list = jieba.lcut(content,cut_all=True)
print(list)
输出结果:
<generator object Tokenizer.cut at 0x000002A14DD67C48>
Loading model cost 0.991 seconds.
Prefix dict has been built successfully.
['鸿蒙', '系统', '耗费', '了', '华为', '10', '年', '心血', ',', '投入', '了', '数千', '数千名', '千名', '研发', '发人', '人员', '。', '这', '一', '基于', '微内核', '内核', '的', '系统', ',', '是', '为', '万物', '互联', '时代', '而', '生', '的', ',', '可', '带来', '跨', '设备', '的', '无缝', '体验']
搜索引擎模式分词:在精确模式的基础上,对长词再次切分,提高召回率。
import jieba
content = '鸿蒙系统耗费了华为10年心血,投入了数千名研发人员。这一基于微内核的系统,是为万物互联时代而生的,可带来跨设备的无缝体验'
a = jieba.cut_for_search(content)
#将返回一个生成器对象
print(a)
#若需要返回列表内容,使用jieba.lcut_for_search
list = []
list = jieba.lcut_for_search(content)
print(list)
运行结果:
<generator object Tokenizer.cut_for_search at 0x00000269919D7CC8>
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\22843\AppData\Local\Temp\jieba.cache
['鸿蒙', '系统', '耗费', '了', '华为', '10', '年', '心血', ',', '投入', '了', '数千', '千名', '数千名', '研发', '人员', '。', '这一', '基于', '内核', '微内核', '的', '系统', ',', '是', '为', '万物', '互联', '时代', '而生', '的', ',', '可', '带来', '跨', '设备', '的', '无缝', '体验']
中文繁体分词:
import jieba
content = '艱苦奮鬥更加接近開個房單價'
list = jieba.lcut(content)
print(list)
运行结果:
['艱苦', '奮鬥', '更加', '接近', '開個', '房', '單價']
使用用户自定义词典:
- 添加自定义词典后,jieba能够准确识别词典中出现的词汇,提升整体的识别准确率
- 词典格式:每一行分三部分:词语,词频(可省略),词性(可省略),用空格隔开,顺序不可颠倒
- jieba词性对照表
添加自定义词典:userdict.txt
云计算 5 n
李小福 2 nr
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
import jieba
content = '八一双鹿更名为八一南昌篮球队!'
list1 = jieba.lcut(content)
print(list1)
jieba.load_userdict(r"C:\Users\22843\pythonProject3\data\userdict.txt")
list2 = jieba.lcut(content)
print(list2)
运行结果:
['八', '一双', '鹿', '更名', '为', '八一', '南昌', '篮球队', '!']
['八一双鹿', '更名', '为', '八一', '南昌', '篮球队', '!']
2.命名实体识别(NER)