范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

NLP开源形近字算法之形近字列表(番外篇)

  创作目的
  国内对于文本的相似度计算,开源的工具是比较丰富的。
  但是对于两个汉字之间的相似度计算,国内基本一片空白。国内的参考的资料少的可怜,国外相关文档也是如此。
  本项目旨在抛砖引玉,实现一个基本的相似度计算工具,为汉字 NLP 贡献一点绵薄之力。
  推荐阅读:
  NLP 中文形近字相似度计算思路
  中文形近字相似度算法实现,为汉字 NLP 尽一点绵薄之力
  当代中国最贵的汉字是什么?
  NLP 开源形近字算法补完计划(完结篇)
  NLP 开源形近字算法之形近字列表(番外篇)
  开源项目在线化 中文繁简体转换/敏感词/拼音/分词/汉字相似度/markdown 目录
  需求
  有时候我们并不是需要返回两个字的相似,而是需要返回一个汉字的相似列表。 实现思路
  我们可以分别计算所有的汉字之间的相似度,然后保留最大的前100个,放在字典中。
  然后实时查询这个字典即可。 实现方式
  bihuashu_2w.txt   中我们主要需要的是对应的 2W 常见汉字。
  hanzi_similar_list.txt   用来存放汉字和相似字的映射关系。数据初始化public static void main(String[] args) {     final String path = "D:codecoinnlp-hanzi-similarsrcmainresourceshanzi_similar_list.txt";     // 读取列表     List lines = FileUtil.readAllLines("D:codecoinnlp-hanzi-similarsrcmainresourcesnlpbihuashu_2w.txt");     // 所有的单词     Set allWordSet = new HashSet<>();     for(String line : lines) {         String word = line.split(" ")[0];         allWordSet.add(word);     }     // 循环对比     for(String word : allWordSet) {         List list = getSimilarListData(word, allWordSet);         String line = word +" " + StringUtil.join(list, "");         FileUtil.append(path, line);     } }
  •优先级队列取前 100 个
  我们通过优先级队列存储: private static List getSimilarListData(String word, Set wordSet) {     PriorityQueue items = new PriorityQueue<>(new Comparator() {         @Override         public int compare(SimilarListDataItem o1, SimilarListDataItem o2) {             // 相似度大的放在前面             return -o1.getRate().compareTo(o2.getRate());         }     });     for(String other : wordSet) {         if(word.equals(other)) {             continue;         }         // 对比         double rate = HanziSimilarHelper.similar(word.charAt(0), other.charAt(0));         SimilarListDataItem item = new SimilarListDataItem(other, rate);         items.add(item);     }     final int limit = 100;     List wordList = new ArrayList<>();     for(SimilarListDataItem item : items) {         wordList.add(item.getWord());         if(wordList.size() >= limit) {             break;         }     }     return wordList; }相似字的获取
  初始化好数据之后,一切就变得非常简单:
  •接口定义 /**  * 数据接口-相似列表  * @author binbin.hou  * @since 1.3.0  */ public interface IHanziSimilarListData {       /**      * 返回数据信息      * @param word 单词      * @return 结果      * @since 1.3.0      */     List similarList(String word);   }
  •数据获取 public class HanziSimilarListData implements IHanziSimilarListData {       private static volatile Map> map = Guavas.newHashMap();         @Override     public List similarList(String word) {         if(MapUtil.isEmpty(map)) {             initDataMap();         }           return map.get(word);     }       private void initDataMap() {         if(MapUtil.isNotEmpty(map)) {             return;         }           //DLC         synchronized (map) {             if(MapUtil.isEmpty(map)) {                 List lines = StreamUtil.readAllLines("/hanzi_similar_list.txt");                   for(String line : lines) {                     String[] words = line.split(" ");                     // 后面的100个相近词                     List list = StringUtil.toCharStringList(words[1]);                     map.put(words[0], list);                 }             }         }     }   }便利性
  为了用户使用方便,我们在  HanziSimilarHelper   中添加 2 个工具类方法:/**  * 相似的列表  * @param hanziOne 汉字一  * @param limit 大小  * @return 结果  * @since 1.3.0  */ public static List similarList(char hanziOne, int limit) {     return HanziSimilarBs.newInstance().similarList(hanziOne, limit); } /**  * 相似的列表  * @param hanziOne 汉字一  * @return 结果  * @since 1.3.0  */ public static List similarList(char hanziOne) {     return similarList(hanziOne, 10); }测试效果
  我们使用看一下效果:
  我们来看一下【爱】的形近字。 List list = HanziSimilarHelper.similarList("爱"); Assert.assertEquals("[爰, 爯, 受, 爭, 妥, 憂, 李, 爳, 叐, 雙]", list.toString());开源地址
  为了便于大家使用学习,项目已开源。
  https://github.com/houbb/nlp-hanzi-similar 小结
  一个字的形近字可以做很多有趣的事情,这个要看大家的想象力。
  实现方式也不难,最核心的还是相似度的计算。
  我是老马,期待与你的下次重逢。

护航双十一!余杭电力上门问诊保障物流用电无忧双十一到了,余杭区作为电商企业汇集地,园区生产运输压力较大,有了电力企业相助,今年一定能干出好成绩!昨日,国家电网浙江电力(余杭)红船共产党员服务队到仁和菜鸟物流园区上门服务时,园深圳上海北京武汉常州获评中国新能源产业集聚度最高五大城市金融界11月11日消息胡润研究院今日发布2022年胡润中国新能源产业集聚度城市榜,入围城市共50家,深圳上海北京武汉常州获评中国新能源产业集聚度最高的五大城市。南京苏州广州成都和合微信8。0。30正式版更新多了4个新功能昨天,安卓微信发布了8。0。30正式版本。此次更新与之前8。0。30内测版基本无异,主要有以下4个新变化。1微信插件页面更换背景,微信键盘开始内测在微信我设置插件中,页面背景由黄色盘点双十一爆款平板的好评率TOP3,还没买的可以蹲一波返场了现阶段网课和在线办公仍旧是一个趋势,相信不少朋友都打算在双11大促期间入手一款兼顾学习与办公需求的设备,我也一样,平板电脑便携大屏的优点就成了我的心头好了,可惜错过了第一波大促,那如何用SDNAND解决TF卡所遇到的问题?雷龙发展是专业做存储产品的供应商,跟客户沟通过很多关于存储方面的问题。不知道大家在使用小容量T卡的时候,是否有遇到以下的一些问题1T卡的尺寸(体积)太大了怎么办?2T卡的接触不良,朴信惠秀自拍照满满少女感,摆Pose拍出逆天大长腿南韩女星朴信惠出道以来演出的角色都以清纯甜美为主,她本身少女感也很重,即使已经升格当妈妈,不论穿着打扮或是脸蛋,都跟大学生没两样,她今(9)日更新个人IG放上自拍照,又是青春洋溢的李佳琦终于遇到新对手,逼得网友神助攻作者杨阳来源顶尖广告前两天,资生堂被爆官方卖的悦薇水乳套装,比李佳琦直播同款便宜300多块,李佳琦卖贵,消费者崩溃。不过,这可能不是贵妇和富婆会操心的事情,当部分李佳琦女孩忙着讨论夏可叔叔讲美容因字辈的护肤原料有哪些?原料科普文哈,成分党围观交流。好久不发文,写了个超级长的。你们慢慢看。图片源自soogif。com写文起因是看山家的一个提问,说为啥这么多带因字的原料。(首发看山家,版权归看山和夏高中生日记我的生活日记这是一本关于自己五年高中生活的日记。为什么是五年,主要是自己高中生病休学一年,复读一年!上面记录着,自己从考入高中成绩不理想时慌乱迷茫生病休学后回家养病时,向往校园生活新诗采撷高洪刚秋,凉了(外一首)秋,凉了秋,凉了,树叶黄了,秋风吹起,片片金黄。叶落归根,拥抱大地。雁叫声声,叫凉了秋水,要流向冰清玉洁的世界。寒露深秋的夜晚,天上赐下玉露,滋润着月光下的世界。寒风中的琼浆玉液,面对舆论,沉默不语,沉默是金是最好的选择面对网络的讨论,我想一个聪明的人都会选择沉默不语,最好什么都不要做,或者三思而后行,步步走好,既然前面没有走好,后面应该郑重的走踏实,不然会更走的不好!有时候面对别人的语气讽刺,选
空间燃料电池首次在轨试验成功完成来源人民网人民日报2022年11月12日10时03分,天舟五号货运飞船发射成功,开启了我国空间站T字基本构型完成后的首次货运任务。在中国载人航天工程办公室的大力支持下,天舟五号还搭标准版才是更多人的选择,iQOO11还是vivoX90?网友术业有专攻最近vivo的动作比较积极,先是发布了X90系列产品,最近又发布了iQOO11系列产品,考虑到大部分用户的需求和预算,二者的标准版无疑才是市场的主力,那么iQOO11和vivoX9秦朝灭亡后画面究竟有多惨?秦始皇嬴政的后人为何现在却杳无音讯今天我们就来聊一聊这个曾经灭六国,一统华夏的大秦帝国。掌舵人嬴政在丞相王绾,御史大夫冯劫,廷尉李斯等人的劝说下,自称始皇帝。也是中国五千年历史中第一位称皇的人,嬴政想让天下在自己子用入门价格享受旗舰体验,石头A10Plus洗地机就是这么卷大家好呀,清洁工作往往是日常家庭的一大挑战,今天跟大家分享一下关于石头A10Plus洗地机的使用体验。关注点赞收藏三连!你们的支持是我坚持创作的最大动力,比芯儿洗地机相信大家都不陌男士网购服装,尺寸避坑指南网购已经不是什么稀奇的事情了,现在每一天中国的快递包裹已经超过了3亿件。但当网购涉及到服装时,仍然是一些男士的痛点。原因很简单,因为网上购买衣服时并不知道衣服实际上是否合身,或材质M6Pro全国车展首发全尺寸歼20模型亮相,长沙国际车展广汽传祺冲刺作为每年中国车市的收官之展,长沙国际车展总被誉为车市风向标,不少车企也期待在这新年与旧年交替之时打好基础,为来年做好准备,比如广汽传祺。在今年12月24日29日于长沙国际会展中心举技术导则定标准宣贯培训保落实全方位多层次保障全国房屋建筑和市政设施调查专业性作为一项重大的国情国力调查,第一次全国自然灾害综合风险普查是提升自然灾害防治能力的基础性工作,而全国房屋建筑和市政设施调查是其中的一个重要组成部分。为使调查工作有章可循有据可依,确独特透明壳,展现工业设计之美,Nothingear(stick)无线耳机拆解Nothing是一加联合创始人CarlPei(裴宇)新创立的消费科技品牌,秉持着改变科技产品现状的发展理念,相继推出了多款独具特色的产品。在TWS耳机市场,Nothing于202112月10日相聚重庆科技馆山城科学院5位专家教授与你共话低碳与能源山城科学院将在重庆科技馆以线上直播形式开展。重庆科技馆供图华龙网新重庆客户端讯(记者伊永军)12月10日下午2点半,一年一度的山城科学院将在重庆科技馆以线上直播形式开展。活动将邀请IOS16。2来啦!苹果这次更新简直是大换血,真的绝了昨天苹果官方正式宣布推出IOS16。2,它为大家带来一些新的功能,这次更新简直是大换血,让我来带朋友们看看有哪些更新内容吧!iOS16的更新内容1。iCloud照片共享iOS16更深度操作系统deepinlinux20。8正式发布深度操作系统(deepin)是一款致力于为全球用户提供美观易用安全稳定服务的Linux发行版,同时也一直是排名最高的来自中国团队研发的Linux发行版。深度操作系统20。8新增社区