You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R统计印地语、中文等非西方语言的字符/等效字母数量

非西方语言等效字母/字符统计方案

你之前的统计结果为0,是因为正则[a-z]仅能匹配拉丁字母表的小写字符,无法覆盖印地语、中文、西里尔文等非拉丁书写系统的字符,也不需要自行维护全量字符匹配列表,直接使用R的Unicode字符属性匹配即可实现需求。

通用统计逻辑

使用Unicode通用字母属性\p{L}即可匹配所有书写系统的字母/表意字符,覆盖拉丁、天城文(印地语使用)、中文、西里尔文等所有主流语言的等效字母/单字:

library(stringr)

# 印地语统计
hindi_text <- "बहुत सी"
str_count(hindi_text, "\\p{L}")
# 输出:4

# 中文统计
chinese_text <- "这是测试文本"
str_count(chinese_text, "\\p{L}")
# 输出:6

# 西里尔文统计
cyrillic_text <- "Привет"
str_count(cyrillic_text, "\\p{L}")
# 输出:6

# 原西方拉丁文本统计也可兼容
western_text <- "This is my text"
str_count(tolower(western_text), "\\p{L}")
# 输出:12

特定书写系统单独统计

如果需要在混合文本中单独统计某一类语言的字符,可以指定Unicode脚本属性:

# 单独统计印地语使用的天城文字符
str_count(hindi_text, "\\p{Script=Devanagari}")
# 输出:4

# 单独统计中文字符(自动忽略混合的英文、数字等内容)
str_count("这是测试English混合文本123", "\\p{Script=Han}")
# 输出:6

# 单独统计西里尔文字符
str_count("Привет hello", "\\p{Script=Cyrillic}")
# 输出:6

特殊场景适配

如果统计的是视觉上的单个字符(比如阿拉伯语、泰语等带组合附加符号的语言,单个视觉字符可能由多个Unicode编码组成),可以使用字形簇匹配规则:

# 按视觉上的单个字符计数
str_count(text, "\\X")

内容的提问来源于stack exchange,提问作者deschen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:54:03