我正在考虑用C语言来做一个语言识别程序。我已经在互联网上搜索并找到了基于N-Gram的文本分类文章,并且我还创建了自己的一套实用程序来处理我的一些编程需求。现在,我想尝试首先创建一个简单的程序,用平假名,片假名和汉字写成的printf日语单词。我相信这可以用C语言完成,但我不确定如何实现它,也许这与unicode编程有关。任何人都可以尝试向我解释我需要首先学习什么,需要什么样的库(包括),或者可以使用哪些实用工具作为我的基础来实现和实施此计划。语言识别
语言识别
回答
我不认为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;
}
[email protected]:~> ./a.out
汦
这就是中国...我认为这是相同的日本汉字,但我对日语不太好... 有如何打印,现在存储类似的作品,你将存储在一个wchar_t,然后做你的比较。
执行时间非常短,而且非常棒。但有一件事阻碍我这样做,那就是我的盒子是linux,我相信C#是.NET框架的一部分。不管怎么说,还是要谢谢你! – chrismsawi
恕我直言OP是要求一个分类器,而不是一种方式来转换(iconv在Linux上)表示/编码/字符集之间。 – wildplasser
@chrismsawi .NET(纯粹的ms部分除外)和linux混合使用[mono](http://www.mono-project.com/Main_Page) – Kwariz
- 1. Bluemix语言识别不识别英语
- 2. 识别此语言
- 3. 开源语言识别库?
- 4. 未知语言识别
- 5. 识别编程语言
- 6. 沃森语言识别
- 7. 音频语言识别
- 8. 堆栈语言的识别
- 9. 识别常规语言
- 10. Android语音识别 - 使用语言
- 11. 其他语言的语音识别
- 12. 语音识别中的新语言
- 13. 用java语言识别语音
- 14. C语言中的Windows语音识别#
- 15. 多种语言的Vista语音识别
- 16. 语言学习语音识别工具
- 17. 语音识别语言模型
- 18. 语音识别的可用语言
- 19. 语法语言与语音识别器的语言不匹配
- 20. C#语音识别错误 - 语法语言与语音识别器的语言不匹配
- 21. 如何更改识别语言
- 22. 在javascript中识别(说出)语言
- 23. 识别语言{ε,a,b}的DFA
- 24. 如何找出PDA识别的语言
- 25. 一个下推自动识别语言
- 26. 如何识别jQuery的键盘语言
- 27. 从方言SQL语法中识别DBMS?
- 28. Oracle中的语言识别器
- 29. 识别短文本的语言?
- 30. 写DFA识别下列语言
这听起来有点不符合经验。 – unwind
你为什么选择C来完成那项任务? – ThomasMore
@ThomasMore,只是为了好玩和体验。 – chrismsawi