2

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

4

1 回答 1

0

我不认为 C 是这个项目的最佳选择。IMO,您应该考虑使用具有一些出色内置支持的高级语言(例如 C#),这只是一个简单的示例:

C#:

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

繁荣。完毕。

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

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

编辑:好的,如果没有 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 中,然后进行比较。

于 2012-09-12T14:15:30.683 回答