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, 切分) - 儲蓄保險王

將上表定義為一個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

# 示例文本
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	指示代詞	这位
加入好友
加入社群
Python: jieba (中文斷詞套件) 如何分離詞性? jieba.posseg.cut() #pos: Part Of Speech (POS,詞性) #seg (segment, 切分) - 儲蓄保險王

儲蓄保險王

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

You may also like...

發佈留言

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