日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hanlp之理解用户自定义词典(java版本)

發(fā)布時(shí)間:2024/7/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hanlp之理解用户自定义词典(java版本) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
首先說明,由于本人水平有限,文章紕漏以及不妥之處還請(qǐng)指出,不勝感激;

理解hanlp中用戶自定義詞典(java)

  • 什么是hanlp用戶自定義字典?為什么要有用戶自定義詞典?
    在Hanlp分詞中,不管是標(biāo)準(zhǔn)分詞器、NLP分詞器還是索引分詞器都不可能每次都準(zhǔn)確的將我們希望的結(jié)果詞語分出來,尤其是我們平常用到的自定義名詞或者流行語,比如:“印象筆記”、“奧利給”等,分析語句一長,分詞準(zhǔn)確性還會(huì)繼續(xù)下降,這時(shí)就需要我們利用用戶自定義詞典,來進(jìn)行這些詞語的記錄,方便分詞器依據(jù)用戶詞典來進(jìn)行分詞,提高準(zhǔn)確度。

  • 用戶自定義詞典中的詞在分詞時(shí)一定會(huì)被準(zhǔn)確無誤的區(qū)分出來嗎?
    我們需要知道準(zhǔn)確無誤這樣的形容詞在形容分詞這項(xiàng)工作就是不恰當(dāng)?shù)?#xff0c;在分詞工作中,對(duì)分詞結(jié)果評(píng)判的標(biāo)準(zhǔn)是不確定的,在官方FAQ中有這樣的例子:

  • 假如用戶詞典中一共3個(gè)詞語:商品、和服、服務(wù),那么“商品和服務(wù)”到底怎么分才能滿足這些用戶呢?無論怎么分詞,這3個(gè)詞語都不可能同時(shí)出現(xiàn)。

    也許你以為往詞典中添加“川普”,并且用戶詞典優(yōu)先級(jí)最高的話,就可以解決眼前的“普京與川普 通話”這個(gè)句子。但在你沒注意到的地方,有更多類似“四川普通話”“銀川普通高考”“唐納德·川普”(本該是一個(gè)詞)的句子會(huì)發(fā)生錯(cuò)誤。

    所以說,詞典≠中文分詞

    在了解了上述兩個(gè)問題之后,我們就開始進(jìn)行用戶自定義詞典的分析了。

    下載Hanlp數(shù)據(jù)包后,默認(rèn)位置是在Hanlp配置目錄下的data\dictionary\custom,CustomDictionary是一份全局的用戶自定義詞典,可以隨時(shí)增刪,影響全部分詞器。另外可以在任何分詞器中關(guān)閉它。下圖是CustomDictionary在windows OS中的位置;

    我們點(diǎn)開它,發(fā)現(xiàn)了一些詞語,仔細(xì)觀察我們會(huì)發(fā)現(xiàn)這些詞的組織是有一定的規(guī)律的;

    • 每一行代表一個(gè)單詞,格式遵從[單詞] [詞性A] [A的頻次] [詞性B] [B的頻次] … 如果不填詞性則表示采用詞典的默認(rèn)詞性。

    • 詞典的默認(rèn)詞性默認(rèn)是名詞n,可以通過配置文件修改:全國地名大全.txt ns;如果詞典路徑后面空格緊接著詞性,則該詞典默認(rèn)是該詞性。
      我們打開Hanlp的配置文件,在箭頭指向位置可以看到自定義詞典的路徑,詞典名有后綴的就是設(shè)置了詞條默認(rèn)詞性,默認(rèn)名詞;
      詞性表請(qǐng)參照《HanLP詞性標(biāo)注集》

    • 在統(tǒng)計(jì)分詞中,并不保證自定義詞典中的詞一定被切分出來。用戶可在理解后果的情況下通過Segment#enableCustomDictionaryForcing強(qiáng)制生效。
      我們?cè)谥耙呀?jīng)討論過這個(gè)問題,如果你實(shí)在需要詞典中的詞被完整的分出來,可以使用此方法來開啟強(qiáng)制分詞。

    我們也可以添加詞典

    • CustomDictionary主詞典文本路徑是data/dictionary/custom/CustomDictionary.txt,用戶可以在此增加自己的詞語(不推薦);也可以單獨(dú)新建一個(gè)文本文件,通過配置文件CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 我的詞典.txt;來追加詞典(推薦)。
      緩存

    • 始終建議將相同詞性的詞語放到同一個(gè)詞典文件里,便于維護(hù)和分享。
      特別注意:
      ①通過代碼進(jìn)行詞語的增刪并不會(huì)影響到詞典;
      ②在詞典進(jìn)行更改后,必須刪除詞典緩存,在下一次載入詞典時(shí)更改才會(huì)生效;
      ③詞典緩存和詞典在同一目錄下,后綴一般是.bin。有時(shí)候是.trie.dat和.trie.value。它們是歷史遺留產(chǎn)物;

      現(xiàn)在是時(shí)候進(jìn)入代碼,仔細(xì)觀察了。這是文檔給出的一段代碼:

    /**1. 演示用戶詞典的動(dòng)態(tài)增刪2. 3. @author hankcs*/ public class DemoCustomDictionary {public static void main(String[] args){// 動(dòng)態(tài)增加CustomDictionary.add("攻城獅");// 強(qiáng)行插入CustomDictionary.insert("白富美", "nz 1024");// 刪除詞語(注釋掉試試) // CustomDictionary.remove("攻城獅");System.out.println(CustomDictionary.add("單身狗", "nz 1024 n 1"));System.out.println(CustomDictionary.get("單身狗"));String text = "攻城獅逆襲單身狗,迎娶白富美,走上人生巔峰"; // 怎么可能噗哈哈!// AhoCorasickDoubleArrayTrie自動(dòng)機(jī)掃描文本中出現(xiàn)的自定義詞語final char[] charArray = text.toCharArray();CustomDictionary.parseText(charArray, new AhoCorasickDoubleArrayTrie.IHit<CoreDictionary.Attribute>(){@Overridepublic void hit(int begin, int end, CoreDictionary.Attribute value){System.out.printf("[%d:%d]=%s %s\n", begin, end, new String(charArray, begin, end - begin), value);}});// 自定義詞典在所有分詞器中都有效System.out.println(HanLP.segment(text));} }

    我們通過源代碼查看一下選中的幾個(gè)方法:

    add(String) : boolean

    /*** 往自定義詞典中插入一個(gè)新詞(非覆蓋模式)<br>* 動(dòng)態(tài)增刪不會(huì)持久化到詞典文件** @param word 新詞 如“裸婚”* @return 是否插入成功(失敗的原因可能是不覆蓋等,可以通過調(diào)試模式了解原因)*/public static boolean add(String word){if (HanLP.Config.Normalization) word = CharTable.convert(word);if (contains(word)) return false;return insert(word, null);}

    insert(String) : boolean

    /*** 以覆蓋模式增加新詞<br>* 動(dòng)態(tài)增刪不會(huì)持久化到詞典文件** @param word* @return*/public static boolean insert(String word){return insert(word, null);}

    get(String) : Attribute

    /*** 查單詞** @param key* @return*/public static CoreDictionary.Attribute get(String key){if (HanLP.Config.Normalization) key = CharTable.convert(key);CoreDictionary.Attribute attribute = dat.get(key);if (attribute != null) return attribute;if (trie == null) return null;return trie.get(key);}

    remove(String) : void

    /*** 刪除單詞<br>* 動(dòng)態(tài)增刪不會(huì)持久化到詞典文件** @param key*/public static void remove(String key){if (HanLP.Config.Normalization) key = CharTable.convert(key);if (trie == null) return;trie.remove(key);}

    源代碼正在研究,考完六級(jí)再來補(bǔ)…

    總結(jié)

    以上是生活随笔為你收集整理的Hanlp之理解用户自定义词典(java版本)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 精品黑人一区二区三区久久 | 日本 奴役 捆绑 受虐狂xxxx | 少妇毛片一区二区三区粉嫩av | 日韩在线黄色 | 欧美精品videos另类日本 | a级片黄色 | 伊人影院av| 日韩不卡免费 | 一本—道久久a久久精品蜜桃 | 日批视频在线 | 亚洲美女视频一区 | 亚洲少妇视频 | 奇米影视大全 | 91九色在线视频 | 极品少妇网站 | 丁香六月激情综合 | 秋霞欧美视频 | 视频在线不卡 | 91精品国产自产精品男人的天堂 | 毛片综合 | 欧美午夜一区 | 日韩在线视频你懂的 | 德国老妇性猛交 | 魔女鞋交玉足榨精调教 | 奶水旺盛的女人伦理 | 亚洲成av| 国产福利视频一区 | 日本免费高清一区二区 | 国产免费久久 | 国产视频一 | 超碰超在线 | 男人天堂avav | 波多野结衣亚洲一区 | 亚洲资源在线 | 欧美xxxxxxxxx | 欧美日韩一区二区三区免费 | 国产91在线 | 亚洲 | 黄色片网站在线看 | 日本不卡在线 | 亚洲射吧 | 色94色欧美sute亚洲线路二 | 日本一本久草 | 黄色免费大片 | 91黄漫| 可以直接观看的av | 国产精品久久久久久久9999 | 视色视频在线观看 | 日韩国产成人在线 | 欧美色欧美色 | 黑人巨大精品欧美一区免费视频 | 高潮一区二区 | 欧美一级日韩 | 免费在线播放黄色片 | 国内少妇精品 | a视频免费观看 | 一区中文字幕 | 2020av视频 | 欧美午夜久久 | 欧美日本韩国在线 | 亚洲黄色小说网 | 久久无码人妻精品一区二区三区 | 成人婷婷 | www成人网| 男人的天堂免费 | 少妇激情偷人三级 | 美女福利视频导航 | 欧美深夜福利 | 电影一区二区三区 | 糖心logo在线观看 | 亚洲自拍p | 日韩欧美黄色网址 | 国产精品电影在线观看 | 欧美资源站 | 草久在线观看视频 | av天天有 | 成人1区2区3区 | 久久久久久久久久免费 | 青青草久久爱 | 国产熟妇久久777777 | 激情欧美亚洲 | 久久视 | 青青久在线视频 | 美女高潮黄又色高清视频免费 | 狠狠干男人的天堂 | 黑人黄色一级片 | 欧美五月激情 | 国产二区自拍 | 亚洲人午夜射精精品日韩 | 乳女教师の诱惑julia | 日本综合视频 | 日韩全黄 | 日本一级片免费看 | 高清国产一区二区 | 黄网在线观看视频 | 91精品国自产在线偷拍蜜桃 | 在线高清观看免费观看 | 乱人伦xxxx国语对白 | 在线婷婷 | av黄色片在线观看 |