法1:Anaconda Prompt下输入conda install jieba
法2:Terminal下输入pip3 install jieba
- import jieba
- sentence = '我爱自然语言处理'
- # 创建【Tokenizer.cut 生成器】对象
- generator = jieba.cut(sentence)
- # 遍历生成器,打印分词结果
- words = '/'.join(generator)
- print(words)
-
- import jieba
- print(jieba.lcut('我爱南海中学'))
-
- import jieba
- sentence = '订单数据分析'
- print('精准模式:', jieba.lcut(sentence))
- print('全模式:', jieba.lcut(sentence, cut_all=True))
- print('搜索引擎模式:', jieba.lcut_for_search(sentence))
-
- import jieba.posseg as jp
- sentence = '我爱Python数据分析'
- posseg = jp.cut(sentence)
- for i in posseg:
- print(i.__dict__)
- # print(i.word, i.flag)
-
标注 | 解释 | 标注 | 解释 | 标注 | 解释 |
---|---|---|---|---|---|
a | 形容词 | mq | 数量词 | tg | 时语素 |
ad | 副形词 | n | 名词 | u | 助词 |
ag | 形语素 | ng | 例:义 乳 亭 | ud | 例:得 |
an | 名形词 | nr | 人名 | ug | 例:过 |
b | 区别词 | nrfg | 也是人名 | uj | 例:的 |
c | 连词 | nrt | 也是人名 | ul | 例:了 |
d | 副词 | ns | 地名 | uv | 例:地 |
df | 例:不要 | nt | 机构团体 | uz | 例:着 |
dg | 副语素 | nz | 其他专名 | v | 动词 |
e | 叹词 | o | 拟声词 | vd | 副动词 |
f | 方位词 | p | 介词 | vg | 动语素 |
g | 语素 | q | 量词 | vi | 例:沉溺于 等同于 |
h | 前接成分 | r | 代词 | vn | 名动词 |
i | 成语 | rg | 例:兹 | vq | 例:去浄 去过 唸过 |
j | 简称略语 | rr | 人称代词 | x | 非语素字 |
k | 后接成分 | rz | 例:这位 | y | 语气词 |
l | 习用语 | s | 处所词 | z | 状态词 |
m | 数词 | t | 时间词 | zg | 例:且 丗 丟 |
- import jieba
- sentence = '订单数据分析'
- generator = jieba.tokenize(sentence)
- for position in generator:
- print(position)
-
- import jieba, os, pandas as pd
- # 词典所在位置
- print(jieba.__file__)
- jieba_dict = os.path.dirname(jieba.__file__) + r'\dict.txt'
- # 读取字典
- df = pd.read_table(jieba_dict, sep=' ', header=None)[[0, 2]]
- print(df.head())
- # 转字典
- dt = dict(df.values)
- print(dt.get('暨南大学'))
-
- import jieba
- sentence = '天长地久有时尽,此恨绵绵无绝期'
- # 添词
- jieba.add_word('时尽', 999, 'nz')
- print('添加【时尽】:', jieba.lcut(sentence))
- # 删词
- jieba.del_word('时尽')
- print('删除【时尽】:', jieba.lcut(sentence))
-
- import os, jieba
- # 创建自定义字典
- my_dict = 'my_dict.txt'
- with open(my_dict, 'w', encoding='utf-8') as f:
- f.write('慕容紫英 9 nr\n云天河 9 nr\n天河剑 9 nz')
- # 加载字典进行测试
- sentence = '慕容紫英为云天河打造了天河剑'
- print('加载前:', jieba.lcut(sentence))
- jieba.load_userdict(my_dict)
- print('加载后:', jieba.lcut(sentence))
- os.remove(my_dict)
-
- import jieba
- sentence = '上穷碧落下黄泉,两处茫茫皆不见'
- print('修正前:', ' | '.join(jieba.cut(sentence)))
- jieba.suggest_freq(('落', '下'), True)
- print('修正后:', ' | '.join(jieba.cut(sentence)))
-
- import jieba
- sentence = '中心小学放假'
- DAG = jieba.get_DAG(sentence)
- print(DAG)
- route = {}
- jieba.calc(sentence, DAG, route)
- print(route)
-
示例:使Blade Master这类中间有空格的词被识别
- import jieba, re
- sentence = 'Blade Master疾风刺杀Archmage'
- jieba.add_word('Blade Master') # 添词
- print('修改前:', jieba.lcut(sentence))
- jieba.re_han_default = re.compile('(.+)', re.U) # 修改格式
- print('修改后:', jieba.lcut(sentence))
-
运行环境:linux系统
开启并行分词模式,参数n为并发数:jieba.enable_parallel(n)
关闭并行分词模式:jieba.disable_parallel()
- import jieba.analyse as ja, jieba
- text = '柳梦璃施法破解了狐仙的法术'
- jieba.add_word('柳梦璃', tag='nr')
- keywords1 = ja.extract_tags(text, allowPOS=('n', 'nr', 'ns', 'nt', 'nz'))
- print('基于TF-IDF:', keywords1)
- keywords2 = ja.textrank(text, allowPOS=('n', 'nr', 'ns', 'nt', 'nz'))
- print('基于TextRank:', keywords2)
-
- import jieba
- text = '柳梦璃解梦C法'
- print(jieba.lcut(text, HMM=False)) # ['柳', '梦', '璃', '解梦', 'C', '法']
- print(jieba.lcut(text)) # ['柳梦璃', '解梦', 'C', '法']
- jieba.finalseg.emit_P['B']['C'] = -1e-9 # begin
- print(jieba.lcut(text)) # ['柳梦璃', '解梦', 'C', '法']
- jieba.finalseg.emit_P['M']['梦'] = -100 # middle
- print(jieba.lcut(text)) # ['柳', '梦璃', '解梦', 'C', '法']
- jieba.finalseg.emit_P['S']['梦'] = -.1 # single
- print(jieba.lcut(text)) # ['柳', '梦', '璃', '解梦', 'C', '法']
- jieba.finalseg.emit_P['E']['梦'] = -.01 # end
- print(jieba.lcut(text)) # ['柳梦', '璃', '解梦', 'C', '法']
- jieba.del_word('柳梦') # Force_Split_Words
- print(jieba.lcut(text)) # ['柳', '梦', '璃', '解梦', 'C', '法']
-
标签 | 含义 | 标签 | 含义 | 标签 | 含义 | 标签 | 含义 |
---|---|---|---|---|---|---|---|
n | 普通名词 | f | 方位名词 | s | 处所名词 | t | 时间 |
nr | 人名 | ns | 地名 | nt | 机构名 | nw | 作品名 |
nz | 其他专名 | v | 普通动词 | vd | 动副词 | vn | 名动词 |
a | 形容词 | ad | 副形词 | an | 名形词 | d | 副词 |
m | 数量词 | q | 量词 | r | 代词 | p | 介词 |
c | 连词 | u | 助词 | xc | 其他虚词 | w | 标点符号 |
PER | 人名 | LOC | 地名 | ORG | 机构名 | TIME | 时间 |
- from jieba import enable_paddle, posseg # pip install jieba --upgrade
- enable_paddle() # pip install paddlepaddle-tiny==1.6.1
- print(posseg.lcut('小基基在南海注册桂城人工智能公司'))
- print(posseg.lcut('小基基在南海注册桂城人工智能公司', use_paddle=True))
-