我正在考慮用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