中文字符处理的一点点学习总结

1)中文字符的unicode范围:U+4E00..U+9FA5

参考http://summerbell.javaeye.com/blog/563095

2)中文标点符号unicode范围:0xff01 ~ 0xff5e

3)中文字符的高字节小于0,英文字符的高字节等于0,该规则可以用来提取中文字符;


4)读取文件时,目前只知道一个一个字节读取文件,getline(inFile,string bufferLine),未发现有以宽字节的方式读取文件,故读取中文字符文件时,需要char2wchar_t转换函数, MultiByteToWideChar,WideCharToMultiByte

 

//将单字节char*转化为宽字节wchar_t*

wchar_t* AnsiToUnicode( const char* szStr)

{

int nLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, NULL, 0 );

if (nLen == 0)

{

return NULL;

    }

    wchar_t* pResult = new wchar_t[nLen];

    MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, pResult, nLen );

return pResult;

}

 //将宽字节wchar_t*转化为单字节char*

char* UnicodeToAnsi( const wchar_t* szStr )

{

int nLen = WideCharToMultiByte( CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL );

if (nLen == 0)

    {

return NULL;

    }

char* pResult = new char[nLen];

    WideCharToMultiByte( CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL );

return pResult;

}

 

5)linux版本中多字节char(ansik编码)转换成宽字节(unicode编码)使用:

setlocale(LC_ALL, "zh_CN");//依据系统而定,告诉系统接下来将ansik转换成zh_CN格式的unicode编码

//setlocale(LC_ALL, "chs"); vs2008中这样也ok

int n = mbstowcs(wc,word,sizeof(word));

setlocale(LC_ALL,"C"); 

 

6)打印中文字符:也可以用wprintf,具体注意问题http://blog.csdn.net/gonxi/archive/2010/10/10/5931006.aspx

wcout.imbue(locale("chs"));

 

wchar_t ss = L'你';

wcout<<ss;

 

 setlocale(LC_CTYPE, "C");

 printf("%S", L"unicode中文/n"); // ⑤

 wprintf(L"%s", L"unicode中文/n"); // ⑦

 

7)字符,字节和编码知识 http://www.regexlab.com/zh/encoding.htm

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文字符深度学习是一种利用深度神经网络(DNN)对汉字、词语和句子进行处理和理解的方法。它在自然语言处理(NLP)领域中尤其重要,因为中文不像英文有明显的词边界,每个字符都需要单独编码。以下是中文字符深度学习的一些关键概念和技术: 1. **字符编码**:使用诸如One-Hot编码或基于字典的编码方法,将每个中文字符转换为数字向量,作为模型输入。 2. **循环神经网络(RNNs)**:长短期记忆网络(LSTM)或门控循环单元(GRU)是常用的架构,它们能够处理序列数据,捕捉字符之间的上下文信息。 3. **卷积神经网络(CNNs)**:有时也会结合CNN来捕捉局部字符特征,然后与RNN相结合,形成双向或深度CNN-RNN结构。 4. **Transformer模型**:自Transformer模型引入后,它在机器翻译等领域取得了巨大成功,通过注意力机制处理字符序列,适用于处理更复杂的语言结构。 5. **预训练模型**:如BERT、RoBERTa等,通过大规模文本数据预先训练,然后在下游任务中微调,显著提升了中文字符的建模效果。 6. **多任务学习**:利用同一模型处理多个相关任务,如词性标注、命名实体识别和情感分析等,共同提高模型性能。 7. **字符级到词/句级转换**:模型学习字符级别的表示后,通过解码器或序列标注技术,生成词或句子级别的输出。 相关问题: 1. 在中文字符深度学习中,为什么要使用RNN而不是直接的全连接层? 2. Transformer模型如何改进了处理中文字符序列的方式? 3. 预训练模型在中文字符深度学习中的应用有哪些优势? 4. 用什么方法可以评估一个中文字符深度学习模型的效果?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值