iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >pyhanlp拼音转换与字符正则化
  • 894
分享到

pyhanlp拼音转换与字符正则化

2024-04-02 19:04:59 894人浏览 泡泡鱼
摘要

本篇内容主要讲解“pyhaNLP拼音转换与字符正则化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pyhanlp拼音转换与字符正则化”吧!《汉字转拼音与简繁转换

本篇内容主要讲解“pyhaNLP拼音转换与字符正则化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pyhanlp拼音转换与字符正则化”吧!

《汉字转拼音与简繁转换的Java实现》

from pyhanlp import *

# 繁简转化

print(HanLP.convertToTraditionalChinese("“以后等你当上皇后,就能买草莓庆祝了”。发现一根白头发"))

print(HanLP.convertToSimplifiedChinese("憑藉筆記簿型電腦寫程式HanLP"))

# 简体转台湾繁体

print(HanLP.s2tw("hankcs在台湾写代码"))

# 台湾繁体转简体

print(HanLP.tw2s("hankcs在臺灣寫程式碼"))

# 简体转香港繁体

print(HanLP.s2hk("hankcs在香港写代码"))

# 香港繁体转简体

print(HanLP.hk2s("hankcs在香港寫代碼"))

# 香港繁体转台湾繁体

print(HanLP.hk2tw("hankcs在臺灣寫代碼"))

# 台湾繁体转香港繁体

print(HanLP.tw2hk("hankcs在香港寫程式碼"))

# 香港/台湾繁体和HanLP标准繁体的互转

print(HanLP.t2tw("hankcs在臺灣寫代碼"))

print(HanLP.t2hk("hankcs在臺灣寫代碼"))

print(HanLP.tw2t("hankcs在臺灣寫程式碼"))

print(HanLP.hk2t("hankcs在台灣寫代碼"))

「以後等你當上皇后,就能買草莓慶祝了」。發現一根白頭髮

凭借笔记本电脑写程序HanLP

hankcs在臺灣寫程式碼

hankcs在台湾写代码

hankcs在香港寫代碼

hankcs在香港写代码

hankcs在臺灣寫程式碼

hankcs在香港寫代碼

hankcs在臺灣寫程式碼

hankcs在台灣寫代碼

hankcs在臺灣寫代碼

hankcs在臺灣寫代碼

汉字转拼音

HanLP中的汉字转拼音功能也十分的强大。

说明

HanLP不仅支持基础的汉字转拼音,还支持声母、韵母、音调、音标和输入法首字母首声母功能。

HanLP能够识别多音字,也能给繁体中文注拼音。

最重要的是,HanLP采用的模式匹配升级到AhoCorasickDoubleArrayTrie,性能大幅提升,能够提供毫秒级的响应速度!

算法详解

《汉字转拼音与简繁转换的Java实现》

# 汉字转拼音

Pinyin = JClass("com.hankcs.hanlp.dictionary.py.Pinyin")

text = "重载不是重任!"

pinyin_list = HanLP.convertToPinyinList(text)

print("原文,", end=" ")

print(text)

print("拼音(数字音调),", end=" ")

print(pinyin_list)

print("拼音(符号音调),", end=" ")

for pinyin in pinyin_list:

    print("%s," % pinyin.getPinyinWithToneMark(), end=" ")

print("\n拼音(无音调),", end=" ")

for pinyin in pinyin_list:

    print("%s," % pinyin.getPinyinWithoutTone(), end=" ")

print("\n声调,", end=" ")

for pinyin in pinyin_list:

    print("%s," % pinyin.getTone(), end=" ")

print("\n声母,", end=" ")

for pinyin in pinyin_list:

    print("%s," % pinyin.getShengmu(), end=" ")

print("\n韵母,", end=" ")

for pinyin in pinyin_list:

    print("%s," % pinyin.getYunmu(), end=" ")

print("\n输入法头,", end=" ")

for pinyin in pinyin_list:

    print("%s," % pinyin.getHead(), end=" ")

print()

# 拼音转换可选保留无拼音的原字符

print(HanLP.convertToPinyinString("截至2012年,", " ", True))

print(HanLP.convertToPinyinString("截至2012年,", " ", False))

原文, 重载不是重任!

拼音(数字音调), [chong2, zai3, bu2, shi4, zhong4, ren4, none5]

拼音(符号音调), chóng, zǎi, bú, shì, zhòng, rèn, none, 

拼音(无音调), chong, zai, bu, shi, zhong, ren, none, 

声调, 2, 3, 2, 4, 4, 4, 5, 

声母, ch, z, b, sh, zh, r, none, 

韵母, ong, ai, u, i, ong, en, none, 

输入法头, ch, z, b, sh, zh, r, none, 

jie zhi none none none none nian none

jie zhi 2 0 1 2 nian ,

拼音转中文

HanLP中的数据结构和接口是灵活的,组合这些接口,可以自己创造新功能,我们可以使用AhoCorasickDoubleArrayTrie实现的最长分词器,需要用户调用setTrie()提供一个AhoCorasickDoubleArrayTrie

StringDictionary = JClass(

    "com.hankcs.hanlp.corpus.dictionary.StringDictionary")

CommonAhoCorasickDoubleArrayTrieSegment = JClass(

    "com.hankcs.hanlp.seg.Other.CommonAhoCorasickDoubleArrayTrieSegment")

Config = JClass("com.hankcs.hanlp.HanLP$Config")

TreeMap = JClass("java.util.TreeMap")

TreeSet = JClass("java.util.TreeSet")

dictionary = StringDictionary()

dictionary.load(Config.PinyinDictionaryPath)

entry = {}

m_map = TreeMap()

for entry in dictionary.entrySet():

    pinyins = entry.getValue().replace("[\\d,]", "")

    Words = m_map.get(pinyins)

    if words is None:

        words = TreeSet()

        m_map.put(pinyins, words)

    words.add(entry.geTKEy())

words = TreeSet()

words.add("绿色")

words.add("滤色")

m_map.put("lvse", words)

segment = CommonAhoCorasickDoubleArrayTrieSegment(m_map)

print(segment.segment("renmenrenweiyalujiangbujianlvse"))

print(segment.segment("lvsehaihaodajiadongxidayinji"))

[renmenrenweiyalujiangbujian/null, lvse/[滤色, 绿色]]

[lvse/[滤色, 绿色], haihaodajiadongxidayinji/null]

字符正则化

演示正规化字符配置项的效果(繁体->简体,全角->半角,大写->小写)。

该配置项位于hanlp.properties中,通过NORMalization=true来开启(现在直接通过HanLP.Config.Normalization开启即可)。

切换配置后必须删除CustomDictionary.txt.bin缓存,否则只影响动态插入的新词。

在我动笔前一个星期,已经有同学添加了,添加自定义词典之后,自动删除缓存的功能。地址请点击https://GitHub.com/hankcs/HanLP/pull/954,现在只需要开启正则化即可

CustomDictionary =JClass("com.hankcs.hanlp.dictionary.CustomDictionary")

print("HanLP.Config.Normalization = False\n")

HanLP.Config.Normalization = False

CustomDictionary.insert("爱听4G", "nz 1000")

print(HanLP.segment("爱听4g"))

print(HanLP.segment("爱听4G"))

print(HanLP.segment("爱听4G"))

print(HanLP.segment("爱听4G"))

print(HanLP.segment("愛聽4G"))

print(HanLP.segment("喜欢4G"))

print(HanLP.segment("hankcs在臺灣寫代碼"))

print("\nHanLP.Config.Normalization = True\n")

HanLP.Config.Normalization = True

print(HanLP.segment("爱听4g"))

print(HanLP.segment("爱听4G"))

print(HanLP.segment("爱听4G"))

print(HanLP.segment("爱听4G"))

print(HanLP.segment("愛聽4G"))

print(HanLP.segment("喜欢4G"))

print(HanLP.segment("hankcs在臺灣寫代碼"))

HanLP.Config.ShowTermNature = False

text = HanLP.s2tw("现在的HanLP已经添加了添加自定义词典之后,自动删除缓存的功能,现在只需要开启正则化即可")

print(text)

print(HanLP.segment(text))

HanLP.Config.ShowTermNature = False

HanLP.Config.Normalization = False

[爱听4g]

[爱听4G]

[爱, 听, 4, G]

[爱, 听, 4, G]

[愛, 聽, 4, G]

[喜欢, 4, G]

[hankcs, 在, 臺, 灣寫, 代, 碼]

HanLP.Config.Normalization = True

[爱听4g]

[爱听4g]

[爱听4g]

[爱听4g]

[爱听4g]

[喜欢, 4, g]

[hankcs, 在, 台湾, 写, 代码]

現在的HanLP已經新增了新增自定義詞典之後,自動刪除快取的功能,現在只需要開啟正則化即可

[现在, 的, hanlp, 已经, 新增, 了, 新增, 自定义, 词典, 之后, ,, 自动, 删除, 快, 取, 的, 功能, ,, 现在, 只, 需要, 开启, 正, 则, 化, 即可]

到此,相信大家对“pyhanlp拼音转换与字符正则化”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: pyhanlp拼音转换与字符正则化

本文链接: https://www.lsjlt.com/news/59823.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pyhanlp拼音转换与字符正则化
    本篇内容主要讲解“pyhanlp拼音转换与字符正则化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pyhanlp拼音转换与字符正则化”吧!《汉字转拼音与简繁转换...
    99+
    2024-04-02
  • MyBatis中正则使用foreach拼接字符串
    目录正则使用foreach拼接字符串foreach标签拼接多字段in ,和union正则使用foreach拼接字符串 业务需求:使用代理名字查询该代理的所有下级代理 数据库...
    99+
    2024-04-02
  • PHP中怎么使用字符正则替换字符串
    这篇文章主要介绍了PHP中怎么使用字符正则替换字符串的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP中怎么使用字符正则替换字符串文章都会有所收获,下面我们一起来看看吧。首先,我们需要了解正则表达式的基础知识...
    99+
    2023-07-06
  • Java中字符串占位替换、字符串拼接、字符串与Collection互转的方式
    场景 字符串占位替换 String.format 最原始最基础的方式。 使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。 示例:         String badao = String.for...
    99+
    2023-09-03
    java servlet 开发语言
  • PHP正则表达式之如何分割字符串与转义字符串
    这篇文章主要介绍“PHP正则表达式之如何分割字符串与转义字符串”,在日常操作中,相信很多人在PHP正则表达式之如何分割字符串与转义字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP正则表达式之如何分割...
    99+
    2023-06-25
  • javascript如何正则替换非汉字的字符
    本篇内容主要讲解“javascript如何正则替换非汉字的字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript如何正则替换非汉字的字符”吧! ...
    99+
    2024-04-02
  • android项目中如何将汉字转换为拼音
    android项目中如何将汉字转换为拼音?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下 private int getChsAscii(String ch...
    99+
    2023-05-31
    android roi 目中
  • C# 汉字与拼音互转的实现示例
    这个功能,大家也都可以去百度以下,千篇一律都自己写的(抄的)封装好的公共类,此处还是得膜拜下原创的大佬,可以花时间去搞这个,我看着都头皮发麻。 对于一个有代码洁癖的码农来说,我并不喜...
    99+
    2024-04-02
  • python 字符编码与转换
    unicode 中文英文默认统一 2个字节ASCII 只有英文和特殊字符 每个占用1个字节 不能存中文每个字节由8个比特(Bit)构成假如一个英文文档是2M,转换为unicode 编码转换,就变成了4M为了解决空间浪费的问题,在unicod...
    99+
    2023-01-30
    字符 python
  • java replace正则替换字符串怎么实现
    在Java中,可以使用replaceAll()方法来实现正则替换字符串。 例如,下面的代码会将字符串中的所有数字替换为*: Stri...
    99+
    2024-04-02
  • php如何用正则替换第一个字符
    这篇文章主要介绍“php如何用正则替换第一个字符”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何用正则替换第一个字符”文章能帮助大家解决问题。在PHP中,可以利用“preg_replace”...
    99+
    2023-06-29
  • php如何利用正则来替换字符串
    这篇文章将为大家详细讲解有关php如何利用正则来替换字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php利用正则替换字符串的方法:1、使用preg_replace()函数,语法“preg_repla...
    99+
    2023-06-21
  • vbs中怎么使用函数将汉字转换为拼音
    本篇文章为大家展示了vbs中怎么使用函数将汉字转换为拼音,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。核心代码:On Error Resume NextSet ...
    99+
    2023-06-08
  • 基于Python实现简单的汉字拼音转换工具
    目录1.准备2.基本使用3.高级使用将汉字转为拼音,可以用于批量汉字注音、文字排序、拼音检索文字等常见场景。 现在互联网上有许多拼音转换工具,基于Python的开源模块也不少,今天给...
    99+
    2024-04-02
  • delphi判断字符串是否包含汉字,正则版与非正则版实现
    代码一 //正则版 uses RegularExpressions; //相关单元 function IsChineseStr(s: String): Boolean; con...
    99+
    2022-12-25
    delphi 字符串 包含汉字
  • Python时间戳转换为字符串与字符串转换为时间戳
    实例代码: if __name__ == '__main__': # 时间戳 import time seconds = time.time() ...
    99+
    2023-02-15
    python字符串转换为日期 python字符串转换时间戳 python时间戳转换
  • python字符串与数字的转化
      字符串转化为数字   #coding=gbk #字符串转化为实数 def strtonum( s , defaultValue=0):     try:         f = float( s ) ...
    99+
    2023-01-31
    字符串 数字 python
  • nodejs如何使用正则实现字符串替换
    今天小编给大家分享一下nodejs如何使用正则实现字符串替换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。正则表达式的基本语...
    99+
    2023-07-05
  • php怎么利用正则替换指定字符串
    PHP中的正则表达式非常强大,可以用来匹配、查找、替换文本中的特定字符串。在常见的Web开发中,我们经常需要使用正则表达式替换关键字或特定字符串,这篇文章将介绍PHP正则表达式如何进行替换。一、替换字符串的基础语法PHP中提供了preg_r...
    99+
    2023-05-14
    php 正则 正则表达式
  • php如何利用正则替换指定字符串
    这篇文章主要介绍“php如何利用正则替换指定字符串”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何利用正则替换指定字符串”文章能帮助大家解决问题。一、替换字符串的基础语法PHP中提供了pre...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作