fxsjy / jieba

结巴中文分词
MIT License
33.39k stars 6.73k forks source link

加载用户自定义词典出错 #951

Open Minghao2812 opened 2 years ago

Minghao2812 commented 2 years ago

问题描述

# 我的代码
jieba.load_userdict('./dict_test.txt')
# 运行后报错: IndexError: list index out of range

原因分析

查看源代码__init__.py,发现函数load_userdict(f)存在以下段落:

for line in content.split("\n"):
    line_no += 1
    if not line.rstrip():
        continue
    tup = line.split(" ")
    word, freq = tup[0], tup[1]

README.md介绍

词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。

源代码按照行切分后,默认按照空格切分得到tup,然而如果省略词频后tup[1]即会报错IndexError

可能的解决方案

按空格切分词后,加入判断,看是否存在词频、词性