关注 Python编程大全 ,加星标精彩内容不迷路
Python编程大全
分享Python技术文章,实用案例,热点资讯。 你想了解的Python的那些事都在这里...... 当你的才华还撑不起你的野心的时候,那就安静下来学习吧!
10篇原创内容
公众号
安装jieba库也需要使用pip工具。我在介绍 Pygame的时候,曾经使用这个工具来安装 Pygame。
在确认连接互联网的情况下,在命令行输入“ pip install jieba",按下回车键后,就可以执行安装。
然后一直等待,直到安装进度到达了100%,并且提示 jieba库安装成功,版本是0.39。
jieba库是一款优秀的 Python第三方中文分词库,支持3种分词模式:精确模式、全模式和搜素引擎模式。这3种模式的特点如下。
-
精确模式:试图将语句最精确地切分,不存在冗余数据,适合做文本分析。
-
全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据,不能解决歧义。
-
搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
可使用 jieba. lcut()和 jieba. Icut_ for_ search()方法进行分词,这两个方法返回的都是一个 list. jieba.lcut()接受3个参数:需要分词的字符串,是否使用全模式(默认值为False),以及是否使用HMM模型(默认值为True). jieba lcut_ for_ search()接受两个参数:需要分词的字符串和是否使用HMM模型。
提示 HMM( Hidden Markov Model)模型,又며作隐马尔科夫模型,是一种基于概率的统计分析模型,大家只需要知道这是一个专有名字即可。
上面的概念可能有些抽象,我们还是通过示例来实际感受一下这3种分词模式的效果吧!代码如下
import jieba
segStr="江州市长江大桥参加了长江大桥通车仪式
joinChar=" / "
print(“精确模式: "+ joinChar.join( jieba.lcut(segStr)))
print("全模式: "+ joinChar.join(jieba.lcut(segStr,cut_all=True)))
print("未启用HMM模式: "+ joinChar.join(jieba.lcut(segStr,HMM=False)))
print("搜索引模式:"+ joinChar.join(jieba. Icut_for_search(segStr)))
执行程序前 jieba会初始化加载默认词库。如果我们想要加载更全面的词库,可以替换默认的初始化词库。jieba!默认词库是位于模块安装路径下的dict. txt文件。
我们创建了一个变量segStr,用它来表示要进行分词处理的字符串,字符串的内容是:"江州市长江大桥参加了长江大桥通车仪式"。
我们还创建了一个名为 joinChar的变量,并且将斜杠作为字符串赋值给整个变量。因为我们要使用字符串的 join()方法,用指定的字符把序列中的元素连接生成一个新的字符串,这里使用斜杠来连接序列中的元素。
提示 join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。join()方法的语法是: str.join( sequence)。参数 sequence表示要连接的元素序列。例如,我们要使用横杠将一个元组中的所有元素串联成一个字符串。
>>> joinChars="-"
>>> seq=("a","b","c")
>>> print (joinChar join(seq))
a-b-c
接下来使用 jieba.lcu"()方法进行分词。我们只传递了一个字符串参数给该方法,因为默认没有使用全模式并且使用了HMM模型,所以会返回一个精
确模式分词的列表。我们采用join()方法把返回的列表用斜杠连接起来,并且
精确模式:江州/ 市/ 长江大桥/ 参加ノ 了/ 长江大桥/ 通车/ 仪式
可以看到,拆分出来的词语基本上就是我们日常会使用的词组。
接下来,我们除了为 jieba. lcut()方法传递了字符串参数,还指定使用全模式分词,这样会返回一个全模式分词的列表,输出内容如下所示:
全模式: 江州/ 州市/ 市长 长江/ 长江大桥/ 大桥/ 参加/ 了/ 长江/ 长江大桥/ 大桥
通车/ 仪式
可以看到,使用全模式分词,“江州市”不仅仅只是可以拆分成“江州市”,还可以拆分成“江州”和“州市”。类似的,“电子游戏”也可以拆分成"电子” “电子游戏”“子游”和“游戏”4个词组。从结果可以看出,和精确模式相比,全模式会产生不少的歧义。
未启用HMM模式: 江州/ 市/ 长江大桥/ 参加/ 了/ 长江大桥/ 通车/ 仪式
可以看到,对于这个字符串,使用HMM模型和不使用HMM模型,分拆的结果差不多,只是对名字的分拆有所不同而已。
最后我们使用了搜索引攣模式,也就是使用 jieba.lcut_ for_ search()方法而不是 jieba.lcut()方法,传递的参数仍然是同一个待拆分的字符串,得到的分词结果如下所示。
搜索引警模式:江州 / 市/ 长江 / 大桥/长江大桥/ 参加/ 了/ 长江/ 大桥/ 长江大桥/ 通车/ 仪式
结语: 今天就先讲到这里,这篇文章的主要目的是介绍jieba库的使用
关注: Python编程大全 ,加星标精彩内容不迷路
如果喜欢我的文章,那么
“在看”和转发是对我最大的支持!
Python编程大全
进群学习交流加 : mm1552923
觉得不错,请点个在看呀
文章评论