• java 汉字转拼音


    本次调研3种工具pinyin4jjpinyinhanlp经过从 运行时间;词典维护代价;源代码社区活跃程度及更新速度 几方面考虑,推荐使用hanlp进行汉语转拼音

    1. Pinyin4j

    虽然此jar包描述信息包括可以对多音字进行识别,但是其处理逻辑是对多音字取第一个拼音。例如”长”的拼音数组为 result=[“zhang”,”长”].其返回形式永远是result[0]

    因此,此jar包支持通过添加词典的方式,对汉字进行转拼音。词典格式如下:

     

    可以额外增加词典,使用时在程序前加入如下代码即可。字符串为词典的存储路径。

    MultiPinyinConfig.multiPinyinPath="";

    但是此jar包对此词典的存储方式为trie树,虽然效率也较高,相较以下两个效率较低。

    jar最近版本为16版本,较长时间没人维护。

    2.  Jpinyin

    jar也支持通过添加词典的方式对汉字进行转拼音。词典的格式如下:

     

    若需要添加词典,需要下载源码,将原词典的基础上进行添加。

    jar包对词典的存储采用的数据结构为doubleArrayTrie。相较于trie,效率明显提高。

    3. Hanlp

    此包支持原生的mavenjar包的使用,如用这种方式,无法进行词典的扩展。

    因此推荐使用源代码+data的模式进行汉字转拼音。此词典的格式如下:

     

    下载下源代码和data文件后,需在classpath下添加 hanlp.properties文件,通过root=的方式指明data文件夹的位置。

    相对于前两个,此词典的维护方式类似于pinyin4j,十分方便。但是需要源代码的编译(此点又类似于Jpinyin)。但是这个在内存中存储字典采用了DoubleArrayTrie的数据结构+ac自动机的高效检索方式,效率远高于前两者。同时Hanlp也支持其余的nlp操作,为以后添加新功能做了一个小铺垫。同时hanlp.同时社区活跃人数多,更新快。

    因此推荐hanlp进行

  • 相关阅读:
    Centos7安装Python3的方法
    word2vec原理(二) 基于Hierarchical Softmax的模型
    word2vec原理(一) CBOW与Skip-Gram模型基础
    爬虫的危害有多大
    python线程池实现
    进程和线程、协程的区别
    程序的编译与解释之间的区别
    【python3】如何建立爬虫代理ip池
    可能是史上最全的机器学习和Python(包括数学)速查表
    python 元类
  • 原文地址:https://www.cnblogs.com/dhName/p/12611726.html
Copyright © 2020-2023  润新知