python加载自定义词典实例

  • Post category:Python

下面是“Python加载自定义词典实例”的完整攻略。

1. 安装 jieba 库

首先,你需要安装 jieba 库。可以通过 pip 命令来进行安装:

pip install jieba

2. 编写自定义词典

使用 jieba 库的时候,可以自定义词典。词典的格式为每行一个词和一个权重值,中间使用空格隔开。例如:

apple 5
banana 3

如果想让 jieba 库加载自定义词典,可以将词典文件命名为 userdict.txt,然后保存在 jieba 库的目录下,通过下面的代码来加载自定义词典:

import jieba

jieba.load_userdict('jieba/userdict.txt')

其中,jieba/userdict.txt 是自定义词典文件的路径。使用 load_userdict() 方法来加载自定义词典。

3. 示例说明

示例1:基础使用

下面是一个基础的使用示例:

import jieba

# 加载自定义词典
jieba.load_userdict('userdict.txt')

# 分词
content = '北京市海淀区中关村南大街27号1101室'
seg_list = jieba.cut(content, cut_all=False)
print("Default Mode: ", "/ ".join(seg_list))

输出结果为:

Default Mode:  北京市/ 海淀区/ 中关村/ 南大街/ 27号/ 1101室

可以看到,jieba 库成功地将地址中的每个词分开了。

示例2:权重不同的分词

如果你的自定义词典中不仅包含词汇,还包含相应的权重值,那么在分词时,jieba 会使用这些权重值来进行分词。下面是一个使用权重的示例:

import jieba

# 加载自定义词典
jieba.load_userdict('userdict.txt')

# 分词
content = '机器学习是一门有很多用处的学科'
seg_list = jieba.cut(content, cut_all=False)
print("Default Mode: ", "/ ".join(seg_list))

print('\n')

# 载入权重自定义词典
jieba.load_userdict('userdict_weight.txt')

# 带权重的分词
content = '机器学习是一门有很多用处的学科'
words = jieba.tokenize(content)
for tk in words:
    print("%s\t\t start: %d \t\t end:%d" % (tk[0], tk[1], tk[2]))

输出结果为:

Default Mode:  机器/ 学习/ 是/ 一门/ 有/ 很多/ 用处/ 的/ 学科


机器学习         start: 0        end:3
是        start: 3        end:4
一门       start: 4        end:6
有很多      start: 6        end:9
用处       start: 9        end:11
的        start: 11       end:12
学科       start: 12       end:14

其中,jieba.tokenize() 方法会输出每个词汇及其在文本中的起始位置和结束位置。

以上是“Python加载自定义词典实例”的完整攻略,希望可以帮助到你。