当前位置: 首页 > news >正文

检测字符语言种类

# 通过Unicode范围来判断字符语言,要注意的是繁中和简中有很多重叠的,解决办法就是检测出来繁体字了,在经过判断是否是简体字判断,要用到库hanzidentifier,也不要用hanzidentifier.is_traditional()判断繁体判断,
# 很多简体字符简繁都会为true,例如'繁','世','界','本'等等。也就是说简体字有可能判断繁体字会为true,但繁体字一定不会识别成简体字一定会是false,所以逻辑是简繁都识别把简体字判断为false的识别为繁体字
import hanzidentifierdef is_simplified(char):"""判断单个字符是否为简体字"""return hanzidentifier.is_simplified(char)
def detect_language_characters(text):"""检测字符串中的语言字符"""results = {'has_traditional_chinese': False,'has_japanese': False,'has_korean': False,'details': {'traditional_chinese_chars': [],'japanese_chars': [],'korean_chars': []}}if not text or not isinstance(text, str):return results# 繁体字Unicode范围traditional_chinese_ranges = [(0x4E00, 0x9FFF),    # 基本汉字(包含简繁)(0x3400, 0x4DBF),    # 扩展A(0x20000, 0x2A6DF),  # 扩展B(0x2A700, 0x2B73F),  # 扩展C(0x2B740, 0x2B81F),  # 扩展D(0x2B820, 0x2CEAF),  # 扩展E(0x2CEB0, 0x2EBEF),  # 扩展F(0x3000, 0x303F),    # 中文标点符号]# 日语字符范围japanese_ranges = [(0x3040, 0x309F),    # 平假名(0x30A0, 0x30FF),    # 片假名(0x31F0, 0x31FF),    # 片假名音标扩展(0xFF65, 0xFF9F),    # 半角片假名]# 韩语字符范围korean_ranges = [(0xAC00, 0xD7AF),    # 韩文音节(0x1100, 0x11FF),    # 韩文字母(0x3130, 0x318F),    # 韩文兼容字母]for char in text:code_point = ord(char)# 检查繁体字(中文)for start, end in traditional_chinese_ranges:if start <= code_point <= end and is_simplified(char) is False:if char not in results['details']['traditional_chinese_chars']:results['details']['traditional_chinese_chars'].append(char)results['has_traditional_chinese'] = Truebreak# 检查日语for start, end in japanese_ranges:if start <= code_point <= end:if char not in results['details']['japanese_chars']:results['details']['japanese_chars'].append(char)results['has_japanese'] = Truebreak# 检查韩语for start, end in korean_ranges:if start <= code_point <= end:if char not in results['details']['korean_chars']:results['details']['korean_chars'].append(char)results['has_korean'] = Truebreakreturn results
http://www.jsqmd.com/news/161355/

相关文章:

  • 什么是 ‘Adversarial Evaluation’?利用专门的“坏人 Agent”去寻找你系统中的安全漏洞
  • 论文AI率高怎么办?十大降AI工具避坑指南
  • 孩子近视越早度数高怎么办?|早期防控措施与日常调节方案
  • PyTorch-CUDA-v2.7镜像中记录每次实验的配置与结果
  • PyTorch-CUDA-v2.7镜像中比较不同CUDA版本的性能差异
  • Bash脚本实战:从重复劳动中解放出来
  • PyTorch-CUDA-v2.7镜像中运营微信公众号定期推送资讯
  • 孩子已经近视了,还有必要防控吗?
  • 基于SpringBoot + Vue的医院管理系统
  • 102301242陈溢滨总结
  • 全局变量nt!PpDeviceReferenceTable和驱动设备nt!_DEVICE_REFERENCE的关系
  • PyTorch-CUDA-v2.7镜像适合初学者入门深度学习吗
  • 对偶空间
  • AList网盘挂载实战指南:解决一刻相册配置难题
  • 基于SpringBoot + Vue的农产品系统
  • nmcli
  • 软件工程课程学习总结
  • 什么是过拟合
  • 基于Uniapp + SpringBoot + Vue的商城系统
  • WSLRegisterDistribution failed?用PyTorch-CUDA-v2.7避免系统冲突
  • PyTorch-CUDA-v2.7镜像中制定服务等级协议SLA保障可用性
  • 远超各大行业,「网络安全」领域平均年薪37.33万元人才缺口竟达150万
  • PyTorch-CUDA-v2.7镜像中调整max_new_tokens参数的最佳实践
  • 基于SpringBoot + Vue的商城管理后台系统
  • 不藏着掖着了!Wireshark命令、捕获、过滤器大全,一篇文章都给你整理好了
  • PyTorch-CUDA-v2.7镜像中处理大规模文本数据的内存优化技巧
  • PyTorch-CUDA-v2.7镜像中发布技术白皮书建立专业形象
  • Java毕设项目推荐-基于vue3+springboot的球赛购票系统设计实现基于vue的球赛购票系统设计【附源码+文档,调试定制服务】
  • PyTorch-CUDA-v2.7镜像中实现流式输出降低用户等待感知
  • 一篇文章给你讲清楚什么是DNS污染?有什么危害?如何解决?