當(dāng)前位置:
首頁(yè) >
pyhanlp 命名实体识别
發(fā)布時(shí)間:2025/3/21
52
豆豆
生活随笔
收集整理的這篇文章主要介紹了
pyhanlp 命名实体识别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
pyhanlp中的命名實(shí)體識(shí)別
對(duì)于分詞而言,命名實(shí)體識(shí)別是一項(xiàng)非常重要的功能,當(dāng)然發(fā)現(xiàn)新詞同樣重要(這部分內(nèi)容被我放在之后的“提取關(guān)鍵詞、短語(yǔ)提取與自動(dòng)摘要、新詞識(shí)別”與再之后的案例中了。
首先是一個(gè)簡(jiǎn)單的例子,展示一下命名實(shí)體識(shí)別的效果。之后是正式內(nèi)容:
簡(jiǎn)單的展示例子
from pyhanlp import * """ HanLP開(kāi)啟命名實(shí)體識(shí)別"""# 音譯人名示例 CRFnewSegment = HanLP.newSegment("crf") term_list = CRFnewSegment.seg("譯智社的田豐要說(shuō)的是這只是一個(gè)hanlp命名實(shí)體識(shí)別的例子") print(term_list)print("\n========== 命名實(shí)體開(kāi)啟與關(guān)閉對(duì)比試驗(yàn) ==========\n") sentences =["北川景子參演了林詣彬?qū)а莸摹端俣扰c激情3》","林志玲亮相網(wǎng)友:確定不是波多野結(jié)衣?","龜山千廣和近藤公園在龜山公園里喝酒賞花", ] # 通過(guò)HanLP 進(jìn)行全局設(shè)置,但是部分分詞器本身可能不支持某項(xiàng)功能 # 部分分詞器本身對(duì)某些命名實(shí)體識(shí)別效果較好 HanLP.Config.japaneseNameRecognize = FalseviterbiNewSegment = HanLP.newSegment("viterbi").enableJapaneseNameRecognize(True) CRFnewSegment_new = HanLP.newSegment("crf").enableJapaneseNameRecognize(True) # segSentence # CRFnewSegment_2.seg2sentence(sentences) for sentence in sentences:print("crf : ",CRFnewSegment.seg(sentence))print("crf_new : ",CRFnewSegment_new.seg(sentence))print("viterbi : ",viterbiNewSegment.seg(sentence)) [譯智社/n, 的/u, 田豐/nr, 要/v, 說(shuō)/v, 的/u, 是/v, 這/r, 只/d, 是/v, 一個(gè)/m, hanlp命名/vn, 實(shí)體/n, 識(shí)別/v, 的/u, 例子/n]========== 命名實(shí)體開(kāi)啟與關(guān)閉對(duì)比試驗(yàn) ==========crf : [北川/ns, 景子/n, 參演/v, 了/u, 林詣彬/nr, 導(dǎo)演/n, 的/u, 《/w, 速度/n, 與/c, 激情/n, 3/m, 》/w] crf_new : [北川/ns, 景子/n, 參演/v, 了/u, 林詣彬/nr, 導(dǎo)演/n, 的/u, 《/w, 速度/n, 與/c, 激情/n, 3/m, 》/w] viterbi : [北川景子/nrj, 參演/v, 了/ule, 林詣彬/nr, 導(dǎo)演/nnt, 的/ude1, 《/w, 速度/n, 與/cc, 激情/n, 3/m, 》/w] crf : [林志玲/nr, 亮相/v, 網(wǎng)友/n, :/w, 確定/v, 不/d, 是/v, 波多野/n, 結(jié)衣/n, ?/w] crf_new : [林志玲/nr, 亮相/v, 網(wǎng)友/n, :/w, 確定/v, 不/d, 是/v, 波多野/n, 結(jié)衣/n, ?/w] viterbi : [林志玲/nr, 亮相/vi, 網(wǎng)友/n, :/w, 確定/v, 不是/c, 波多野結(jié)衣/nrj, ?/w] crf : [龜/v, 山/n, 千/m, 廣/q, 和/c, 近藤/a, 公園/n, 在/p, 龜山公園/ns, 里/f, 喝/v, 酒/n, 賞/v, 花/n] crf_new : [龜/v, 山/n, 千/m, 廣/q, 和/c, 近藤/a, 公園/n, 在/p, 龜山公園/ns, 里/f, 喝/v, 酒/n, 賞/v, 花/n] viterbi : [龜山千廣/nrj, 和/cc, 近藤公園/nrj, 在/p, 龜山/nz, 公園/n, 里/f, 喝酒/vi, 賞花/nz]正式內(nèi)容
中國(guó)人名識(shí)別
說(shuō)明
- 目前分詞器基本上都默認(rèn)開(kāi)啟了中國(guó)人名識(shí)別,比如HanLP.segment()接口中使用的分詞器等等,用戶不必手動(dòng)開(kāi)啟;上面的代碼只是為了強(qiáng)調(diào)。
- 有一定的誤命中率,比如誤命中關(guān)鍵年,則可以通過(guò)在data/dictionary/person/nr.txt加入一條關(guān)鍵年 A 1來(lái)排除關(guān)鍵年作為人名的可能性,也可以將關(guān)鍵年作為新詞登記到自定義詞典中。
- 如果你通過(guò)上述辦法解決了問(wèn)題,歡迎向我提交pull request,詞典也是寶貴的財(cái)富。
- 建議NLP用戶使用感知機(jī)或CRF詞法分析器,精度更高。
算法詳解
- 《實(shí)戰(zhàn)HMM-Viterbi角色標(biāo)注中國(guó)人名識(shí)別》
音譯人名識(shí)別
說(shuō)明
- 目前分詞器基本上都默認(rèn)開(kāi)啟了音譯人名識(shí)別,用戶不必手動(dòng)開(kāi)啟;上面的代碼只是為了強(qiáng)調(diào)。
算法詳解
- 《層疊隱馬模型下的音譯人名和日本人名識(shí)別》
日本人名識(shí)別
說(shuō)明
- 目前標(biāo)準(zhǔn)分詞器默認(rèn)關(guān)閉了日本人名識(shí)別,用戶需要手動(dòng)開(kāi)啟;這是因?yàn)槿毡救嗣某霈F(xiàn)頻率較低,但是又消耗性能。
算法詳解
- 《層疊隱馬模型下的音譯人名和日本人名識(shí)別》
地名識(shí)別
說(shuō)明
- 目前標(biāo)準(zhǔn)分詞器都默認(rèn)關(guān)閉了地名識(shí)別,用戶需要手動(dòng)開(kāi)啟;這是因?yàn)橄男阅?#xff0c;其實(shí)多數(shù)地名都收錄在核心詞典和用戶自定義詞典中。
- 在生產(chǎn)環(huán)境中,能靠詞典解決的問(wèn)題就靠詞典解決,這是最高效穩(wěn)定的方法。
- 建議對(duì)命名實(shí)體識(shí)別要求較高的用戶使用感知機(jī)詞法分析器。
算法詳解
- 《實(shí)戰(zhàn)HMM-Viterbi角色標(biāo)注地名識(shí)別》
機(jī)構(gòu)名識(shí)別
說(shuō)明
- 目前分詞器默認(rèn)關(guān)閉了機(jī)構(gòu)名識(shí)別,用戶需要手動(dòng)開(kāi)啟;這是因?yàn)橄男阅?#xff0c;其實(shí)常用機(jī)構(gòu)名都收錄在核心詞典和用戶自定義詞典中。
- HanLP的目的不是演示動(dòng)態(tài)識(shí)別,在生產(chǎn)環(huán)境中,能靠詞典解決的問(wèn)題就靠詞典解決,這是最高效穩(wěn)定的方法。
- 建議對(duì)命名實(shí)體識(shí)別要求較高的用戶使用感知機(jī)詞法分析器。
算法詳解
- 《層疊HMM-Viterbi角色標(biāo)注模型下的機(jī)構(gòu)名識(shí)別》
地名識(shí)別
說(shuō)明
- 目前標(biāo)準(zhǔn)分詞器都默認(rèn)關(guān)閉了地名識(shí)別,用戶需要手動(dòng)開(kāi)啟;這是因?yàn)橄男阅?#xff0c;其實(shí)多數(shù)地名都收錄在核心詞典和用戶自定義詞典中。
- 在生產(chǎn)環(huán)境中,能靠詞典解決的問(wèn)題就靠詞典解決,這是最高效穩(wěn)定的方法。
- 建議對(duì)命名實(shí)體識(shí)別要求較高的用戶使用感知機(jī)詞法分析器。
算法詳解
- 《實(shí)戰(zhàn)HMM-Viterbi角色標(biāo)注地名識(shí)別》
URL 識(shí)別
自動(dòng)識(shí)別URL,該部分是在demo中發(fā)現(xiàn)的,但是原作者并沒(méi)有在文檔中提到這個(gè),該部分可以發(fā)現(xiàn)URL,測(cè)試發(fā)現(xiàn)其他分類(lèi)器應(yīng)該是默認(rèn)不開(kāi)啟這個(gè)的,而且config中并沒(méi)有開(kāi)啟該功能的選項(xiàng),因此這應(yīng)該是一個(gè)額外的類(lèi)。我建議如果有需要的,你可以嘗試先利用URLTokenizer獲取URL,然后添加進(jìn)用戶詞典。或者直接使用其他工具或者自定義函數(shù)解決該問(wèn)題。
# URL 識(shí)別 text = '''HanLP的項(xiàng)目地址是https://github.com/hankcs/HanLP,發(fā)布地址是https://github.com/hankcs/HanLP/releases,我有時(shí)候會(huì)在www.hankcs.com上面發(fā)布一些消息,我的微博是http://weibo.com/hankcs/,會(huì)同步推送hankcs.com的新聞。聽(tīng)說(shuō).中國(guó)域名開(kāi)放申請(qǐng)了,但我并沒(méi)有申請(qǐng)hankcs.中國(guó),因?yàn)楦F……'''Nature = SafeJClass("com.hankcs.hanlp.corpus.tag.Nature") Term = SafeJClass("com.hankcs.hanlp.seg.common.Term") URLTokenizer = SafeJClass("com.hankcs.hanlp.tokenizer.URLTokenizer")term_list = URLTokenizer.segment(text) print(term_list) for term in term_list:if term.nature == Nature.xu:print(term.word) [HanLP/nx, 的/ude1, 項(xiàng)目/n, 地址/n, 是/vshi, https://github.com/hankcs/HanLP/xu, ,/w, /w, /w, 發(fā)布/v, 地址/n, 是/vshi, https://github.com/hankcs/HanLP/releases/xu, ,/w, /w, /w, 我/rr, 有時(shí)候/d, 會(huì)/v, 在/p, www.hankcs.com/xu, 上面/f, 發(fā)布/v, 一些/m, 消息/n, ,/w, /w, /w, 我/rr, 的/ude1, 微博/n, 是/vshi, http://weibo.com/hankcs//xu, ,/w, 會(huì)/v, 同步/vd, 推送/nz, hankcs.com/xu, 的/ude1, 新聞/n, 。/w, /w, /w, 聽(tīng)說(shuō)/v, ./w, 中國(guó)/ns, 域名/n, 開(kāi)放/v, 申請(qǐng)/v, 了/ule, ,/w, 但/c, 我/rr, 并/cc, 沒(méi)有/v, 申請(qǐng)/v, hankcs.中國(guó)/xu, ,/w, 因?yàn)?c, 窮/a, ……/w, /w, /w] https://github.com/hankcs/HanLP https://github.com/hankcs/HanLP/releases www.hankcs.com http://weibo.com/hankcs/ hankcs.com hankcs.中國(guó)總結(jié)
以上是生活随笔為你收集整理的pyhanlp 命名实体识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自动化机器学习(三)神经网络架构搜索综述
- 下一篇: 安装nvidia-docker2