自然语言处理之jieba分词

英文分词可以使用空格,中文就不同了,一些分词的原理后面再来说,先说下python中常用的jieba这个工具。

首先要注意自己在做练习时不要使用jieba.Py命名文件,否则会出现

jieba has no attribute named cut …等这些,如果删除了自己创建的jieba.py还有错误是因为没有删除jieba.pyc文件。

(1)基本分词函数和用法

  首先介绍下分词的三种模式:

  精确模式:适合将句子最精确的分开,适合文本分析;

  全模式:把句子中所有可以成词的词语都扫描出来,速度快,但是不能解决歧义;

  搜索引擎模式:在精确模式的基础上,对长词再次进行切分,提高召回率,适用于搜索引擎分词;

 jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语

  jieba.cut 方法接受三个输入参数:

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

  jieba.cut_for_search 方法接受两个参数

  • 需要分词的字符串
  • 是否使用 HMM 模型。

  

 1 import jieba
 2 seg_list = jieba.cut("我爱学习自然语言处理", cut_all=True)
 3 print("Full Mode: " + "/ ".join(seg_list))  # 全模式
 4
 5 seg_list = jieba.cut("我爱自然语言处理", cut_all=False)
 6 print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
 7
 8 seg_list = jieba.cut("他毕业于上海交通大学,在百度深度学习研究院进行研究")  # 默认是精确模式
 9 print(", ".join(seg_list))
10
11 seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")  # 搜索引擎模式
12 print(", ".join(seg_list))

jieba.lcut以及jieba.lcut_for_search直接返回 list

1 import jieba
2 result_lcut = jieba.lcut("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")
3 result_lcut_for_search = jieba.lcut("小明硕士毕业于中国科学院计算所,后在哈佛大学深造",cut_all=True)
4 print (‘result_lcut:‘,result_lcut)
5 print (‘result_lcut_for_search:‘,result_lcut_for_search)
6
7 print (" ".join(result_lcut))
8 print (" ".join(result_lcut_for_search))

  添加用户自定义字典:

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

  • 1.可以用jieba.load_userdict(file_name)加载用户字典
  • 2.少量的词汇可以自己用下面方法手动添加:
    • 用 add_word(word, freq=None, tag=None) 和 del_word(word) 在程序中动态修改词典
    • 用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。

1 import jieba
2 result_cut=jieba.cut(‘如果放到旧字典中将出错。‘, HMM=False)
3 print(‘/‘.join(result_cut))
4 jieba.suggest_freq((‘中‘, ‘将‘), True)
5 result_cut=jieba.cut(‘如果放到旧字典中将出错。‘, HMM=False)
6 print(‘/‘.join(result_cut))

(2)关键词提取

基于TF-IDF的关键词抽取

import jieba.analyse

  • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

    • sentence 为待提取的文本
    • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    • withWeight 为是否一并返回关键词权重值,默认值为 False
    • allowPOS 仅包括指定词性的词,默认值为空,即不筛选

原文地址:https://www.cnblogs.com/erbaodabao0611/p/8466821.html

时间: 2024-10-11 10:45:18

自然语言处理之jieba分词的相关文章

Python自然语言处理学习——jieba分词

jieba--"结巴"中文分词是sunjunyi开发的一款Python中文分词组件,可以在Github上查看jieba项目. 要使用jieba中文分词,首先需要安装jieba中文分词,作者给出了如下的安装方法: 1.全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba 2.半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup.py

Python:电商产品评论数据情感分析,jieba分词,LDA模型

本节涉及自然语言处理(NLP),具体涉及文本数据采集.预处理.分词.去停用词.词频分析.LDA主题模型 代码部分 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Mon Oct 1 12:13:11 2018 4 5 @author: Luove 6 """ 7 8 import os 9 import pandas as pd 10 import jieba 11 from gensim import

jieba分词的词性标注

号称"做最好的Python中文分词组件"的jieba分词是python语言的一个中文分词包.它的特点有: 支持三种分词模式: ? 精确模式,试图将句子最精确地切开,适合文本分析: ? 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义: ? 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词. 支持繁体分词 支持自定义词典 Python 2.x 下的安装 全自动安装:easy_install jieba 或者 pip inst

python爬虫——京东评论、jieba分词、wordcloud词云统计

接上一章,抓取京东评论区内容. url='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv399&productId=4560435&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1' 重点是productId--产品id.page--页码.pageSize:指定

【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法

错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分析: 参考文献1中的说明,WindowsError:[Error 3]是系统找不到指定文件. 参考文献2中@fxsjy同学的解释,应该是PyInstaller在打包的时候没有将词典文件一起打包导致结巴分词找不到指定的词典文件. 解决方案如下: 1.在python中查询结巴分词的词典文件: 1 2 3

Jieba分词包(三)——基于词频最大切分组合

Jieba分词包(三)--基于词频最大切分组合 在前面,我们已经知道dict中所有的单词和词频信息已经存在了一个trie树中,并且需要分词的句子已经构建成了一个DAG图,构建的过程也运用了dict.那么这次我们来说如何基于每句话的DAG图,找到一个组合路径,使得该组合最合理(即打分最高)? 我们直接针对Jieba分词的源代码来解释,其中已经有了很多注释: def calc(sentence,DAG,idx,route): #动态规划,计算最大概率的切分组合 #输入sentence是句子,DAG句

python结巴(jieba)分词

python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义. (3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词.2.支持繁体分词3.支持自定义词典 二.实现 结巴分词的实现原理主要有一下三点:(1)基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG).(2)采用了动态

jieba分词的原理

 jieba介绍: 一.支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析: 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义: 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词. 二.jieba自带了一个叫做dict.txt的词典, 里面有2万多条词, 包含了词条出现的次数(这个次数是于作者自己基于人民日报语料等资源训练得出来的)和词性. 这个第一条的trie树结构的词图扫描, 说的就是把这2万多条词语, 放到一个

Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https