Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分)

加入好友
加入社群
Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王
Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王
Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王

ICTCLAS 汉语词性标注集

將上表定義為一個pos_dict:

# 詞性代號與中文描述的字典
pos_dict = {
    "a": "形容詞",
    "ad": "副詞",
    "ag": "形容詞性語素",
    "b": "區別詞",
    "c": "連詞",
    "df": "副詞",
    "dg": "副語素",
    "e": "嘆詞",
    "eng": "外語",
    "f": "方位詞",
    "g": "語素",
    "h": "前接成分",
    "i": "成語",
    "j": "簡稱略語",
    "k": "後接成分",
    "l": "習用語",
    "m": "數詞",
    "mg": "數語素",
    "mq": "數詞",
    "n": "名詞",
    "ng": "名語素",
    "nr": "人名",
    "ns": "地名",
    "nt": "機構團體",
    "nz": "其他專名",
    "o": "擬聲詞",
    "p": "介詞",
    "q": "量詞",
    "r": "代詞",
    "rg": "代詞語素",
    "s": "處所詞",
    "t": "時間詞",
    "u": "助詞",
    "v": "動詞",
    "vn": "名動詞",
    "w": "標點符號",
    "x": "非語素字符號",
    "y": "語氣詞",
    "z": "狀態詞"
}

# 顯示字典內容
for key, value in pos_dict.items():
    print(f"{key}: {value}")

 輸出結果:

a: 形容詞
ad: 副詞
ag: 形容詞性語素
b: 區別詞
c: 連詞
df: 副詞
dg: 副語素
e: 嘆詞
eng: 外語
f: 方位詞
g: 語素
h: 前接成分
i: 成語
j: 簡稱略語
k: 後接成分
l: 習用語
m: 數詞
mg: 數語素
mq: 數詞
n: 名詞
ng: 名語素
nr: 人名
ns: 地名
nt: 機構團體
nz: 其他專名
o: 擬聲詞
p: 介詞
q: 量詞
r: 代詞
rg: 代詞語素
s: 處所詞
t: 時間詞
u: 助詞
v: 動詞
vn: 名動詞
w: 標點符號
x: 非語素字符號
y: 語氣詞
z: 狀態詞

過濾掉黑名單中的詞性
code:

import jieba.posseg as pseg
"""
jieba.posseg 是 jieba 的一個子模組
用於進行中文分詞時的 
詞性標註Part-of-Speech tagging)。
這個子模組可以標註每個分詞的詞性
對於需要進一步語義分析或處理特定詞性詞語的場景非常有用
在使用詞性標註功能時需要顯式地導入 jieba.posseg
"""
# 示例文
text = "哦,你今天在測試伺服器嗎?這是一個很棒的 BackPlane,吧!"

# 使用 jieba.posseg 進行分詞與詞性標註
words = pseg.lcut(text)

# 輸出結果
print("原始分詞與詞性標註:")
for word, flag in words:
    print(f"{word}: {flag} {pos_dict.get(flag)}")

# 黑名單詞性列表
blacklist = ['p', 'u', 'y', 'e', 'w', 'x', 'c']

# 過濾黑名單詞性
filtered_words = [word for word, flag in words if flag not in blacklist]

# 輸出過濾後的結果
print("\n過濾後的詞語:")
print(filtered_words)

輸出結果:

Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王

詞性表不夠完整,
所以有些顯示None

推薦hahow線上學習python: https://igrape.net/30afN

jieba 的 dict.txt 位於以下路徑
C:\Users\SavingKing\AppData\Local\anaconda3\Lib\site-packages\jieba
內容如下:

Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王

從 dict.txt 萃取出詞性 以及十個範例:

import json

# jieba 的詞典路徑
dict_path = r"C:\Users\SavingKing\AppData\Local\anaconda3\Lib\site-packages\jieba\dict.txt"

# 初始化詞性字典
pos_examples = {}

# 讀取 dict.txt 文件
with open(dict_path, "r", encoding="utf-8") as f:
    for line in f:
        # 每行內容按空格分割詞語 頻率 詞性
        parts = line.strip().split(" ")
        if len(parts) == 3:
            word, freq, pos = parts
            # 如果詞性不存在於字典中初始化為空列表
            if pos not in pos_examples:
                pos_examples[pos] = []
            # 如果該詞性下的詞語數量少於 10,添加該詞語
            if len(pos_examples[pos]) < 10:
                pos_examples[pos].append(word)

# 保存為 JSON 文件
output_path = "jieba_pos_examples.json"
with open(output_path, "w", encoding="utf-8") as json_file:
    json.dump(pos_examples, json_file, ensure_ascii=False, indent=4)

print(f"詞性與範例詞已保存為 JSON 文件:{output_path}")

pos_examples.keys()

dict_keys(['nz', 'n', 'nr', 'm', 'i', 'l', 'd', 's', 't', 'mq',
'j', 'a', 'r', 'b', 'f', 'nrt', 'v', 'z', 'ns', 'q', 
'vn', 'c', 'nt', 'u', 'o', 'zg', 'nrfg', 'df', 'p',
'g', 'y', 'ad', 'vg', 'ng', 'x', 'ul', 'k', 'ag',
'dg', 'rr', 'rg', 'an', 'vq', 'e', 'uv', 'tg',
'mg', 'ud', 'vi', 'vd', 'uj', 'uz', 'h', 'ug', 'rz'])

len(pos_examples.keys()) #55

Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王

輸出的json內容:

{
    "nz": [
        "AT&T",
        "c#",
        "C#",
        "c++",
        "C++",
        "一乙醇胺",
        "一代文宗",
        "一代新人",
        "一代谈宗",
        "一元二次方程"
    ],
    "n": [
        "B超",
        "T恤",
        "A座",
        "A股",
        "A型",
        "A轮",
        "AA制",
        "AB型",
        "B座",
        "B股"
    ],
    "nr": [
        "小S",
        "大S",
        "一个愿挨",
        "一之谓甚",
        "一亲芳泽",
        "一介武夫",
        "一仍其旧",
        "一仍旧贯",
        "一代楷模",
        "一兆元"
    ],
    "m": [
        "",
        "一一",
        "一一二",
        "一一例",
        "一一分",
        "一一对",
        "一一记",
        "一丁点",
        "一丁点儿",
        "一七"
    ],
    "i": [
        "一一列举",
        "一丁不识",
        "一不做",
        "一不压众",
        "一不扭众",
        "一不注意",
        "一不留神",
        "一世之雄",
        "一世龙门",
        "一丘一壑"
    ],
    "l": [
        "一一对应",
        "一一道来",
        "一七八不",
        "一不小心",
        "一不怕苦",
        "一专多能",
        "一个巴掌拍不响",
        "一个心眼",
        "一个拖拉机",
        "一个箭步"
    ],
    "d": [
        "一丁",
        "一个劲",
        "一个劲儿",
        "一个劲地",
        "一举",
        "一体机",
        "一偏",
        "一停",
        "一再",
        "一别"
    ],
    "s": [
        "一上",
        "一中",
        "一旁",
        "不远处",
        "世上",
        "世外",
        "东上",
        "东北郊",
        "东境",
        "东壁"
    ],
    "t": [
        "一上午",
        "一世",
        "一个情节",
        "一元化",
        "一元大武",
        "一刹那",
        "一前",
        "一夕",
        "一夕一朝",
        "一夜间"
    ],
    "mq": [
        "一丝丝",
        "一口袋",
        "一口钟",
        "一季度",
        "一度",
        "一方面",
        "一月份",
        "一脚",
        "一道道",
        "三万件"
    ],
    "j": [
        "一中全会",
        "一中院",
        "一产",
        "一共",
        "一内一外",
        "一副副",
        "一发发",
        "一小包",
        "一府两院",
        "一弹指"
    ],
    "a": [
        "一乐",
        "一亮",
        "一似",
        "一凉",
        "一大",
        "一奇",
        "一振",
        "一晃",
        "一泼",
        "一涂"
    ],
    "r": [
        "一伙人",
        "一伙儿",
        "一切",
        "一己",
        "一样",
        "不但如此",
        "两样",
        "个个",
        "为什么",
        "为何"
    ],
    "b": [
        "一传",
        "一年生",
        "一年级",
        "一式",
        "一星级",
        "一梯次",
        "一站式",
        "一等一",
        "一线生机",
        "一要"
    ],
    "f": [
        "一侧",
        "",
        "上下",
        "上中下",
        "上岸",
        "上方",
        "上游",
        "上端",
        "上边",
        "上部"
    ],
    "nrt": [
        "一俟",
        "丁斯特比尔",
        "丁斯特贝尔",
        "万俟",
        "万夫莫当",
        "万里拉",
        "三万人",
        "三世",
        "三伯父",
        "三塔"
    ],
    "v": [
        "一刀斩",
        "一嚬一笑",
        "一夔一契",
        "一弛一张",
        "一抔黄土",
        "一抷黄土",
        "一捺",
        "一推两搡",
        "一撅一拐",
        "一敷"
    ],
    "z": [
        "一删而空",
        "一夥儿",
        "一幢幢",
        "一招毙命",
        "一炷香",
        "一现昙华",
        "上好佳",
        "上颔骨",
        "上颚骨",
        "上髎"
    ],
    "ns": [
        "一加仑",
        "一厘",
        "一堆堆",
        "一封封",
        "一日三省",
        "一枕邯郸",
        "一棵树",
        "一班人马",
        "一登龙门",
        "一路平安"
    ],
    "q": [
        "一壸千金",
        "丛里",
        "",
        "个里",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "vn": [
        "一夥人",
        "一掊土",
        "一播",
        "一瞧之下",
        "一秉虔诚",
        "一箪食",
        "一艘船",
        "一迳",
        "一麾出守",
        "三塚"
    ],
    "c": [
        "一如",
        "一管",
        "一者",
        "一过",
        "不一",
        "不下于",
        "不为",
        "不仅",
        "不以",
        "不但"
    ],
    "nt": [
        "一汽大众",
        "一汽集团",
        "七中全会",
        "七十七国集团",
        "七国集团",
        "七机部",
        "万事达卡国际组织",
        "万国邮政联盟",
        "三九集团",
        "三军团"
    ],
    "u": [
        "一言",
        "",
        "似的",
        "则否",
        "则甚",
        "在内",
        "恁地",
        "恁般",
        "来样",
        "来看"
    ],
    "o": [
        "丁丁冬冬",
        "丁丁当当",
        "丁当",
        "丁零",
        "丁零当啷",
        "丁零当郎",
        "丁零零",
        "乒乒乓乓",
        "乒乓",
        ""
    ],
    "zg": [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "nrfg": [
        "万绮雯",
        "乔梓",
        "乔榛",
        "乔致庸",
        "乙丙",
        "习近平",
        "于居洋",
        "于步军",
        "任弼时",
        "任浚"
    ],
    "df": [
        "不要"
    ],
    "p": [
        "",
        "",
        "为了",
        "为着",
        "乘了",
        "乘着",
        "乘过",
        "",
        "",
        ""
    ],
    "g": [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "y": [
        "丟了",
        "",
        "也好",
        "也罢",
        "",
        "凭藉着",
        "吓呆了",
        "",
        "",
        ""
    ],
    "ad": [
        "严厉",
        "严实",
        "严格",
        "严然",
        "严细",
        "仓促",
        "仓惶",
        "仔密",
        "仔细",
        "充分"
    ],
    "vg": [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "ng": [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "x": [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "ul": [
        ""
    ],
    "k": [
        "",
        "",
        "",
        ""
    ],
    "ag": [
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "dg": [
        "",
        ""
    ],
    "rr": [
        "偺们",
        "其他人",
        "妳们"
    ],
    "rg": [
        ""
    ],
    "an": [
        "冷暖",
        "凶险",
        "刚愎",
        "卫生",
        "危厄",
        "危惧",
        "危险",
        "危难",
        "哀哀",
        "哀苦"
    ],
    "vq": [
        "去浄",
        "去过",
        "唸过",
        "捱过"
    ],
    "e": [
        "",
        "呜呼",
        "",
        "",
        "",
        "哇呀",
        "哇塞",
        "",
        "哎呀",
        "哎哟"
    ],
    "uv": [
        ""
    ],
    "tg": [
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    ],
    "mg": [
        "",
        ""
    ],
    "ud": [
        ""
    ],
    "vi": [
        "徜徉于",
        "沉溺于",
        "沉缅于",
        "等同于"
    ],
    "vd": [
        "持续",
        "狡辩",
        "逆势"
    ],
    "uj": [
        ""
    ],
    "uz": [
        ""
    ],
    "h": [
        "超低",
        ""
    ],
    "ug": [
        ""
    ],
    "rz": [
        "这位"
    ]
}

詞性:

詞性代號	中文詞性	舉例來自 JSON
nz	專有名詞	AT&T, C#, 一元二次方程
n	名詞	B超, T恤, A股
nr	人名	小S, 大S, 一代楷模
m	數詞	, 一一, 一七
i	成語	一不留神, 一世之雄, 一丘一壑
l	慣用語	一不小心, 一个巴掌拍不响, 一个箭步
d	副詞	一再, 一个劲儿, 一别
s	處所詞	一中, 一旁, 世外
t	時間詞	一上午, 一刹那, 一夜间
mq	數量詞	一丝丝, 一季度, 三万件
j	簡稱	一中全会, 一府两院, 一弹指
a	形容詞	一亮, 一大, 一奇
r	代詞	一切, 一样, 为什么
b	区别词	一年生, 一式, 一线生机
f	方位詞	, 上下, 上方
nrt	地名	丁斯特比尔, 万里拉, 三塔
v	動詞	一刀斩, 一推两搡, 一撅一拐
z	狀態詞	一炷香, 一现昙华, 上好佳
ns	地名專有名詞	一加仑, 一登龙门, 一路平安
q	量詞	, , 
vn	動名詞	一夥人, 一播, 一瞧之下
c	連詞	不一, 不仅, 不但
nt	機構團體名	一汽大众, 三九集团, 七国集团
u	助詞	, 似的, 则否
o	擬聲詞	丁零, 乒乓, 丁当
zg	字母詞	, , 
nrfg	人名	万绮雯, 乔致庸, 习近平
df	副連詞	不要
p	介詞	, 为了, 
g	輔助詞	, , 
y	語氣詞	, , 
ad	副形詞	严厉, 仔细, 仓惶
vg	動詞性語素	, , 
ng	名詞性語素	, , 
x	非語素字	, , 
ul	時態助詞	
k	後綴	, , 
ag	形容詞性語素	, , 
dg	副詞性語素	, 
rr	人稱代詞	妳们, 其他人
rg	方位語素	
an	名詞性形容詞	危险, 卫生, 冷暖
vq	動詞性量詞	去过, 唸过, 捱过
e	嘆詞	, 哎呀, 哎哟
uv	動態助詞	
tg	時間性語素	, , 
mg	月份語素	, 
ud	結構助詞	
vi	不及物動詞	徜徉于, 等同于
vd	動詞性副詞	持续, 狡辩, 逆势
uj	結構助詞	
uz	著詞	
h	前綴	超低, 
ug	過去時助詞	
rz	指示代詞	这位

推薦hahow線上學習python: https://igrape.net/30afN

ICTCLAS 汉语词性标注集

代码名称帮助记忆的诠释
Ag形语素形容词性语素。形容词代码为a,语素代码g前面置以A。
a形容词取英语形容词adjective的第1个字母。
ad副形词直接作状语的形容词。形容词代码a和副词代码d并在一起。
an名形词具有名词功能的形容词。形容词代码a和名词代码n并在一起。
b区别词取汉字“别”的声母。
c连词取英语连词conjunction的第1个字母。
Dg副语素副词性语素。副词代码为d,语素代码g前面置以D。
d副词取adverb的第2个字母,因其第1个字母已用于形容词。
e叹词取英语叹词exclamation的第1个字母。
f方位词取汉字“方” 的声母。
g语素绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。
h前接成分取英语head的第1个字母。
i成语取英语成语idiom的第1个字母。
j简称略语取汉字“简”的声母。
k后接成分 
l习用语习用语尚未成为成语,有点“临时性”,取“临”的声母。
m数词取英语numeral的第3个字母,n,u已有他用。
Ng名语素名词性语素。名词代码为n,语素代码g前面置以N。
n名词取英语名词noun的第1个字母。
nr人名名词代码n和“人(ren)”的声母并在一起。
ns地名名词代码n和处所词代码s并在一起。
nt机构团体“团”的声母为t,名词代码n和t并在一起。
nz其他专名“专”的声母的第1个字母为z,名词代码n和z并在一起。
o拟声词取英语拟声词onomatopoeia的第1个字母。
p介词取英语介词prepositional的第1个字母。
q量词取英语quantity的第1个字母。
r代词取英语代词pronoun的第2个字母,因p已用于介词。
s处所词取英语space的第1个字母。
Tg时语素时间词性语素。时间词代码为t,在语素的代码g前面置以T。
t时间词取英语time的第1个字母。
u助词取英语助词auxiliary 的第2个字母,因a已用于形容词。
Vg动语素动词性语素。动词代码为v。在语素的代码g前面置以V。
v动词取英语动词verb的第一个字母。
vd副动词直接作状语的动词。动词和副词的代码并在一起。
vn名动词指具有名词功能的动词。动词和名词的代码并在一起。
w标点符号 
x非语素字非语素字只是一个符号,字母x通常用于代表未知数、符号。
y语气词取汉字“语”的声母。
z状态词取汉字“状”的声母的前一个字母。

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *