语言识别

时间:2012-09-12 13:44:56

标签: c unicode

我正在考虑使用C语言进行语言识别程序。我已经在互联网上搜索并找到了基于N-Gram的文本分类文章,我还创建了自己的一组实用程序来处理我的一些编程需求。现在,我想尝试首先创建一个简单的程序printf日语单词,用平假名,片假名和汉字书写。我相信这可以用C语言完成,但我不确定如何实现它,也许这与unicode编程有关。任何人都可以尝试向我解释我需要首先学习什么,我需要#include的库(/ ies),或者可以使用哪些实用程序作为我执行和实现该程序的基础。

1 个答案:

答案 0 :(得分:0)

我不认为C是这个项目的最佳选择。 IMO你应该考虑使用更高级别的语言(比如C#),这些语言有一些非凡的内置支持,只是一个简单的例子:

C#:

byte[] buffer = new byte[] { 0xE8, 0x82, 0xB2, 0xE5, 0x84, 0xBF }; 
string s = Encoding.UTF8.GetString(buffer);

动臂。完成。

现在在C中,据我所知,没有简单的标准编码/解码库或实用程序。你必须手工制作这些东西。我自己开始这样做,但意识到这是浪费我的时间。 :)

如果您坚持使用C,我建议您先阅读有关不同类型编码(多字节/宽字节编码)的所有内容。网上Unicode有很多很好的教程可以帮助你入门(这是我使用过的good one)。

编辑:好的,如果没有C#,那么让我们在C中再做一个“简短”的例子......这假设你对编码有所了解(注意使用宽字符:wchar_t):

#include <stdio.h>  
#include <stdlib.h>
#pragma import(__use_utf8_ctype)
#include <wchar.h>
#include <locale.h>

int main(int argc, char *argv[]) 
{
  wchar_t water = 27750;
  setlocale(LC_ALL, "");

  printf("%lc",water);
  return 0;
}

mike@linux-4puc:~> ./a.out 
汦

那是中国人......我认为这是同一个汉字,但我对日语并不好... 有如何打印,现在存储类似的工作,你将存储在wchar_t,然后进行比较。