jieba.posseg.POSTokenizer(tokenizer=None)
新建自定义分词器,tokenizer
参数可指定内部使用的jieba.Tokenizer
分词器。jieba.posseg.dt
为默认词性标注分词器。标注句子分词后每个词的词性,采用和 ictclas 兼容的标记法。
除了jieba默认分词模式,提供paddle模式下的词性标注功能。paddle模式采用延迟加载方式,通过
enable_paddle()
安装paddlepaddle-tiny
,并且import
相关代码;
paddle模式词性标注对应表如下:
paddle模式词性和专名类别标签集合如下表,其中词性标签 24
个(小写字母),专名类别标签 4
个(大写字母)。
标签 | 含义 |
---|---|
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 | 人名 |
import jieba.posseg as jp
print(jp.lcut('转载<请>附上原文出处链接及本声明.'))
[pair('转载', 'v'), pair('<', 'x'), pair('请', 'v'), pair('>', 'x'), pair('附上', 'f'), pair('原文', 'n'), pair('出处', 'v'), pair('链接', 'n'), pair('及', 'c'), pair('本', 'r'), pair('声明', 'n'), pair('.', 'x')]
from jieba import enable_paddle, posseg
# import paddle
# paddle.enable_static()
s='我今天来到l北京的清华大学。'
print('精确模式:')
print(posseg.lcut(s))
精确模式: [pair('我', 'r'), pair('今天', 't'), pair('来到', 'v'), pair('l', 'x'), pair('北京', 'ns'), pair('的', 'uj'), pair('清华大学', 'nt'), pair('。', 'x')]
print('paddle模式:')
print(posseg.lcut(s, use_paddle=True))
paddle模式: [pair('我', 'r'), pair('今天', 't'), pair('来到', 'v'), pair('l', 'x'), pair('北京', 'ns'), pair('的', 'uj'), pair('清华大学', 'nt'), pair('。', 'x')]
s = '''
其一,中国的城市,包括直辖市、副省级市、普通地级市、县级市,但不包括县。
正如《中国城市大趋势》一书所分析的,县与县级市虽然级别相同,但定位有巨大差别。县是以农业为基础的管理单元,县级市则以工商业为主。
对于县,地级市进行直管;对于县级市,地级市则只是代管。
名义之别,导致了县级市与其所在地级市,均被视为独立城市,从而单薄市级层面的人口规模,如昆山与苏州,晋江与泉州,义乌与金华。
其二,衡量城市规模,看的是城区人口,而非全市人口。
城区人口,顾名思义,不包括镇区及乡村人口,明显低于全市常住人口。城区人口占全市人口比例最高可达9成以上,最低甚至不到20%。
凡是城镇化率不高的地区,或者下辖县乡过多的城市,即使全市人口迈过了千万大关,也未必能晋级为超大特大城市。
02
7个超大城市:4大一线+成渝津
超大城市,是我国城市规模层级的金字塔尖城市。
目前,我国共有7个超大城市,除了北上广深四大一线城市,还有重庆、天津两大直辖市,以及成都。
'''
results = posseg.lcut(s)
对于结果中的每一项,其有属性 flag
与 word
。 通过这种方式可以过滤出与地点相关的要素。
for obj in results:
if obj.flag == 'ns':
print(obj.word)
中国 城市 中国 城市 城市 昆山 苏州 晋江 泉州 城市 镇区 城市 大关 特大城市 城市 城市 城市 城市 城市 城市 重庆 天津 成都
s = '''
①长度为海拉尔河源至乌苏里江口,国内流域面积为903418平方千米。
②国内流域面积为56690平方千米。
③包括浑河、太子河。
④国内流域面积为32466平方千米。
⑤国内流域面积为22561平方千米。
图中数字代表的流域
1、黑龙江流域
2、绥芬河流域
3、图们江流域
4、鸭绿江流域
5、辽东半岛诸河流域
6、辽河流域
7、辽西诸河流域
8、滦河流域
9、海河流域'''
results = posseg.lcut(s, use_paddle=True)
for obj in results:
if obj.flag == 'ns':
print(obj.word)
长度 海拉尔河 乌苏里江 浑河 黑龙江 绥芬河 图们江 鸭绿江 辽东半岛 辽河流域 辽西 滦河 海河
尽管jieba分词可以自动提取文本中相关的信息,但是由于自然语言的复杂性与非严谨性,得到的结果并非完全可信, 需要根据场景对结果进行分析与处理。