关闭

结巴分词使用方法

标签: 结巴分词分词python结巴分词的安装使用
5442人阅读 评论(8) 收藏 举报
分类:

0.下载

     结巴分词包下载地址:http://download.csdn.net/detail/robin_xu_shuai/9691188

1.安装

     将其解压到任意目录下,然后打开命令行进入该目录执行:python setup.py install 进行安装

2.测试

      安装完成后,进入python交互环境,import jieba 如果没有报错,则说明安装成功。如下图所示

     

3 使用

(1)分词

结巴分词支持3中分词模式:

1,全模式:把句子中的所有可以成词的词语都扫描出来,

2, 精确模式:试图将文本最精确的分开,适合于做文本分析。

3,搜索引擎模式:在精确的基础上对长词进行进一步的切分。

函数jieba.cut接受两个输入参数,第一个是将要分词的对象,第二个是采用的模式。该函数返回的是一个可以迭代的generator, 可以使用for循环得到分词后得到的每一个词语。

示例:

# -*- coding: utf-8 -*-
import jieba

seg_list = jieba.cut("香农在信息论中提出的信息熵定义为自信息的期望", cut_all=True)
print(" ".join(seg_list))
seg_list = jieba.cut("香农在信息论中提出的信息熵定义为自信息的期望")
print(" ".join(seg_list))

seg_list = jieba.cut_for_search("香农在信息论中提出的信息熵定义为自信息的期望")
print(" ".join(seg_list))
其分词的结果分别为:

(2)添加自定义词典

用户可以添加自定义的词典来包含结巴词库中没有的词。(在以上示例中没有分出“自信息”这个词)

用法: jieba.load_userdict("userdict1.txt")

在文件userdict1.txt中添加以下的内容:自信息 5

import jieba
import jieba.analyse
jieba.load_userdict("userdict1.txt")

seg_list = jieba.cut("香农在信息论中提出的信息熵定义为自信息的期望", cut_all=True)
print(" ".join(seg_list))

(原来识别不出来的“自信息”现在可以了)

(3)提取关键词

用法:tags = jieba.analyse.extract_tags("sentence", topK=k),其中topK默认值是20

在关键词提取时,可以添加停用词:jieba.analyse.set_stop_words("extra_dict/stop_words.txt"),目的是将一些没有意义的词去掉。

import jieba
import jieba.analyse
jieba.load_userdict("userdict1.txt")
jieba.analyse.set_stop_words("extra_dict/stop_words.txt")

seg_list = jieba.cut("香农在信息论中提出的信息熵定义为自信息的期望", cut_all=True)
print(" ".join(seg_list))
print('关键词提取的结果如下:')
tags = jieba.analyse.extract_tags("香农在信息论中提出的信息熵定义为自信息的期望", topK=10)
print(",".join(tags))

(4)实例:对文件进行分词

# -*- coding: utf-8 -*-

import jieba
import jieba.analyse
jieba.load_userdict("userdict1.txt")
jieba.analyse.set_stop_words("extra_dict/stop_words.txt")

def splitSentence(inputFile, outputFile):
	fin = open(inputFile, 'r', encoding='utf-8')
	fout = open(outputFile, 'w', encoding='utf-8')
	for line in fin:
		line = line.strip()
		line = jieba.analyse.extract_tags(line)
		outstr = " ".join(line)
		print(outstr)
		fout.write(outstr + '\n')
	fin.close()
	fout.close()

splitSentence('input.txt', 'output.txt')


2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:87845次
    • 积分:1718
    • 等级:
    • 排名:千里之外
    • 原创:86篇
    • 转载:0篇
    • 译文:0篇
    • 评论:51条
    最新评论