jieba 繁体中文分词时词性错误

6ioyuze2  于 2023-02-04  发布在  其他
关注(0)|答案(4)|浏览(169)

繁体文本分词的时候用的是官方提供的dict.txt.big。可以看到里面“清洁机”和“清潔機”的词频、词性都是相同的。但是切分同一个、仅是简繁体不同的句子时:
“这台清洁机引出一条胶管。”
“這台清潔機引出一條膠管。”
“清洁机”和“清潔機”得出的词性却不同,而且“清潔機”的词性是“x”,即“非语素字”。不止一个词有这样的情况。

im9ewurl

im9ewurl1#

我也遇到這個問題,而且是默認字典裡面的詞才會有這樣的問題
如 “攝影機” 在dict.txt.big是n,但是切出來的詞性卻是x。

daupos2t

daupos2t2#

您好請問一下現在這個問題解決了嗎?

rjzwgtxy

rjzwgtxy3#

我也遇到了同样的问题。使用的是自定义的 粤语繁体词库 ,使用如下方法加载字典:

jieba.set_dictionary(path)
jieba.initialize()

输入:

考古證明,香港喺舊石器時代就有人住。喺西貢半島北岸黃地峒,有石器同整石器嘅架生。喺新界同大嶼山好多地方,都搵到新石器時代嘅遺址。旺角(以前叫「芒角」)就曾經係東漢、隋朝同唐朝人做陶器嘅地方。李鄭屋古墓亦證明香港喺東漢嗰時,畀番禺管。喺唐朝嗰陣,香港由廣州寶安縣管,嗰陣軍隊就係駐喺而家嘅屯門(屯兵之門),而呢區個名就係咁嚟㗎喇。

分词结果如下:

考古/vn 證明/x ,/x 香港/ns 喺/x 舊石器時代/x 就/d 有人/r 住/v 。/x 喺/x 西貢/x 半島/x 北岸/f 黃地峒/ns ,/x 有/v 石器/n 同/p 整/b 石器/n 嘅/yg 架/q 生/v 。/x 喺/x 新界/n 同/p 大嶼山/x 好多/m 地方/n ,/x 都/d 搵/yg 到/v 新石器/n 時代/x 嘅/x 遺址/x 。/x 旺角/n (/x 以前/f 叫/v 「/x 芒角/n 」/x )/x 就/d 曾經/x 係/zg 東漢/x 、/x 隋朝/t 同/p 唐朝/t 人/n 做/v 陶器/n 嘅/x 地方/n 。/x 李鄭/nr 屋/s 古墓/n 亦/d 證明/x 香港/ns 喺/x 東漢/x 嗰時/x ,/x 畀/g 番禺/ns 管/vn 。/x 喺/x 唐朝/t 嗰陣/x ,/x 香港/ns 由/p 廣州/x 寶安縣/x 管/vn ,/x 嗰陣/x 軍隊/x 就係/x 駐/v 喺/zg 而家/x 嘅/x 屯門/x (/x 屯兵/n 之門/x )/x ,/x 而呢/y 區/n 個/q 名/q 就係/x 咁/x 嚟/zg 㗎/x 喇/n 。/x

可以看到凡是繁简同形的词,都标注了词性;而有繁体字的词,词性都为 x。

6mzjoqzu

6mzjoqzu4#

我解决了我的上述问题。解决方法是将:

import jieba
import jieba.posseg as pseg

jieba.set_dictionary(path)
jieba.initialize()

pseg.cut(text)

调换顺序,改为:

import jieba

jieba.set_dictionary(path)
jieba.initialize()

import jieba.posseg as pseg

pseg.cut(text)

就能成功标注词性:

考古/vn 證明/v ,/x 香港/ns 喺/r 舊石器時代/t 就/u 有人/r 住/v 。/x 喺/r 西貢/ns 半島/n 北岸/f 黃地峒/ns ,/x 有/v 石器/n 同/p 整/b 石器/n 嘅/yg 架/q 生/v 。/x 喺/r 新界/n 同/cg 大嶼山/ns 好多/m 地方/n ,/x 都/d 搵/yg 到/v 新石器/n 時代/n 嘅/e 遺址/n 。/x 旺角/n (/x 以前/t 叫/v 「/x 芒角/n 」/x )/x 就/u 曾經/d 係/zg 東漢/t 、/x 隋朝/t 同/cg 唐朝/t 人/n 做/v 陶器/n 嘅/e 地方/n 。/x 李鄭/nr 屋/s 古墓/n 亦/d 證明/v 香港/ns 喺/r 東漢/t 嗰時/t ,/x 畀/g 番禺/ns 管/v 。/x 喺/r 唐朝/t 嗰陣/r ,/x 香港/ns 由/v 廣州/ns 寶安縣/ns 管/v ,/x 嗰陣/r 軍隊/n 就係/d 駐/v 喺/zg 而家/t 嘅/e 屯門/n (/x 屯兵/n 之門/ns )/x ,/x 而呢/y 區/n 個/q 名/q 就係/d 咁/x 嚟/zg 㗎/x 喇/u 。/x

希望程序能够更新,使分词结果与代码的书写顺序无关;或者把这一现象写在文档里。

相关问题