维文、哈萨克文、柯尔克孜文检测 (java实现把UTF-8转为unicode)

对于特定语言的检测并不是一个困难的问题:统计一段文字中有多少个字符落在某语言的基本语素集合(例如:中文中的声韵母)中,然后计算比例,就可以给出答案。

已经有ibm的icu在这方面做得很好,而且计算速度很快。但是对于少数民族的语言并未全部提供支持,譬如维文、柯尔克孜文。

因为icu复杂性较高,研究通透,再做二次开发需要一段时间。为了满足当前简单的需求,手写了一个简单的检测程序。原理同上,但是其中的代码有一部分或许对以后的

自己和正在阅读的你有一些参考价值。

 

//枚举类:lang的类型

public enum Lang {
WEI,HARZ,KERZ,Not_Wei
}

 

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Array;
import java.util.Arrays;


public class TestDetector {

//所有维文、柯尔克孜文的unicode字符集
static int[] HugeMap ={0x0626,0x0627,0x0628,0x062a,0x062c,0x062d,0x062e,0x062f
,0x0631,0x0632,0x0633,0x0634,0x0639,0x063a,0x0641,0x0642,0x0644,0x0645,0x0648,
0x0649,0x064a,0x0675,0x0676,0x0677,0x0678,0x067e,0x0686,0x0698,0x06ad,0x06af,
0x06be,0x06c5,0x06c6,0x06c7,0x06c8,0x06c9,0x06cb,0x06d0,0x06d5};

//维文独有的字符集
static int[] WeiMap = {0x0698,0x062e,0x063a};

// static int[] HazahMap = {0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x};

//柯尔克孜文独有的字符集
static int[] Kerzmap= {0x06c5,0x06c9,0x0649,0x0626};

private static Lang checkWei(String content) {
byte[] probuffer=null;
try {
//UTF-8 to Unicode
probuffer = utf2uni(content.getBytes("UTF-8"),content.getBytes("UTF-8").length);
} catch (UnsupportedEncodingException e) {

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值