jieba
jieba copied to clipboard
專詞定義問題
我想利用「結巴」幫忙辨認穴位名稱,以便在網頁上做超連結的標示。中間遇到一個問題,想請各位幫幫忙。
# 專詞
word_list = ["陽溪", "曲池", "臍中"]
# 例句
s1 = "(手三里)在前臂背面橈側,當陽溪與曲池連線上,肘橫紋下2寸。"
s2 = "(中脘)在上腹部,前正中線上,當臍中上4寸。"
s3 = "(神闕)在腹中部,臍中央。"
for word in word_list:
jieba.add_word(match[0], freq=1, tag="nz")
jieba.cut(s1)
jieba.cut(s2)
jieba.cut(s3)
辨識結果:
s1: (手三里)在前臂背面橈側,當陽溪與曲池連線上,肘橫紋下2寸。 s2: (中脘)在上腹部,前正中線上,當臍中上4寸。 s3: (神闕)在腹中部,臍中央。
我不知道該如何在保留s1
與s2
的前提下,排除s3
的辨識條件。
從文法的角度上來說,①s3
未尾的央
不成詞,且②「腹 / 中部」與「臍 / 中央」又是對句,對以中文為母語的人來說,「臍中」在s3
不該聯讀,是一目了然的事。但這些條件不知該如何在「結巴」中落實?
謝謝!
类似这种?
https://github.com/hankcs/HanLP/blob/doc-zh/plugins/hanlp_demo/hanlp_demo/zh/demo_custom_dict_stl.py#L16
类似这种?
https://github.com/hankcs/HanLP/blob/doc-zh/plugins/hanlp_demo/hanlp_demo/zh/demo_custom_dict_stl.py#L16
以上連結所示這個例句:"正向匹配商品和服务、任何和服务必按上述切分"
的後半子句,其實最自然的句讀方式應該是:「任何 / 和服务 / 必 / 按 / 上述 / 切分。
」因為這裡指的是「和服務」短語未被切分的狀態。這個短語本身不成詞,屬於特殊語境之下的特殊用語,這種情況在書面上一般會用開關引號標示出來的。
且「務必」這個詞在自然語當中很常見,「和服」也是自然語中的專有名詞,如果沒有語境及上下文,就算讓人來做句讀,都會有爭議。例如,在這個「強制校正」條例之下,像「和服務必妥善收藏
」這樣的例句就會無法正確句讀。
猜想像這類情況務必要由語境上來解決。電腦按語境為詞組做區分應該不會太困難。
我的意思是针对每个可能出错的语境,加入这种规则。比如
tok.dict_force = { '和服务必按': ['和服务', '必', '按'], '和服務必': ['和服', '務必'], '臍中央': ['臍', '中央'], '臍中' }
就能实现你要的效果。要有想象力。
對,這不失為一種可行的方案。我認為,如果能夠按照不同語境來製作這類的規則模組,效果應該會很不錯。