python-jieba分词基本操作

  • 支持三种分词模式与特点:

    • 精确模式:试图将句子最精确地切开,适合文本分析;
    • 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
    • 支持繁体分词
    • 支持自定义词典
  • 主要功能

    • jieba.cut 三个输入参数: 待分词的字符串;cut_all参数是否全模式;HMM 参数是否 HMM 模型
    • jieba.cut_for_search 两个参数:待分词的字符串;是否 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
    • jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
    • jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器。
  • 三种模式

    • 全模式 ,扫描所有可以成词的词语, 速度非常快,不能解决歧义.
    • seg_list = jieba.cut("我来到成都四川大学", cut_all=True)
    • 精准模式,适合文本分析.
    • seg_list = jieba.cut("我来到成都四川大学", cut_all=False)
    • 搜索引擎模式,对长词再次切分,提高召回率,适合用于搜索引擎分词。
    • seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造",HMM=False)
      在这里插入图片描述
  • 添加自定义词典(强制调高词的权重)

print('原文档:\t'+'/'.join(jieba.cut('如果放到数据库中将出错。', HMM=False)))
#如果/放到/数据库/中将/出错/。
print(jieba.suggest_freq(('中', '将'), True))
#494
print('改进文档:\t'+'/'.join(jieba.cut('如果放到数据库中将出错。', HMM=False)))
#如果/放到/数据库/中/将/出错/。
print('\n原文档:\t'+'/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
#「/台/中/」/正确/应该/不会/被/切开
print(jieba.suggest_freq('台中', True))
#69
print('改进文档:\t'+'/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
#「/台中/」/正确/应该/不会/被/切开
  • 加载自定义词典
    词典
    在这里插入图片描述
import sys
sys.path.append("../")
jieba.load_userdict("../Files/user_dict.txt") # 加载自定义分词词典
seg_list1 = jieba.cut("今天很高兴在慕课网和大家交流学习")
print('\n\n加载自定义分词词典:\n'+"/ ".join(seg_list1))

在这里插入图片描述

  • 关键词提取(分为 TF-IDF 和 TEXT-RANK)
    • extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
    • sentence 为待提取的文本
    • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    • withWeight 为是否一并返回关键词权重值,默认值为 False
    • allowPOS 仅包括指定词性的词,默认值为空,即不筛选
    • jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件
s = "此外,公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元,增资后,吉林欧亚置业注册资本由7000万元增加到5亿元。吉林欧亚置业主要经营范围为房地产开发及百货零售等业务。目前在建吉林欧亚城市商业综合体项目。2013年,实现营业收入0万元,实现净利润-139.13万元。"
#TF-IDF
for x, w in jieba.analyse.extract_tags(s,10, withWeight=True):
    print('%s %s' % (x, w))
#TEXT-RANK
for x, w in jieba.analyse.textrank(s, 10,withWeight=True):
    print('%s %s' % (x, w)) 


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223222440494.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMDg0MDk0,size_16,color_FFFFFF,t_70)
- **词性标注**

```python
words = jieba.posseg.cut("我爱北京天安门")
for word, flag in words:
    print('%s %s' % (word, flag))

在这里插入图片描述

  • 返回词语在原文中的起始位置
#默认模式
result = jieba.tokenize('永和服装饰品有限公司')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
#搜索模式
result = jieba.tokenize('永和服装饰品有限公司', mode='search')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

在这里插入图片描述
代码来自慕课网大佬
源码地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值