我有幾個utf8字符串,需要根據所用字符找出語言。用德語,荷蘭語和英語這樣的拉丁字母在語言之間劃分語言並不重要。發生的語言是阿拉伯語,韓語,中文,日語,即具有明確字符集的語言。在大多數情況下,字符串本身都是名稱,可以假定第一個字符足以進行識別。從UTF8獲取語言
0
A
回答
0
從理論上講,你可以在Java中的字符串(Unicode的16),德國和中國
你大概可以維持中國字符經常存在的列表,如果存在的話,假設其在中國等
0
這樣做的一種方法是,對於每種語言,保留有序對(c,f)的列表,其中c是來自該語言的唯一字符,並且f是該字符在某個合理語料庫中出現的頻率語言。 (稱這些列表爲「字符直方圖」。)
然後,對於每個文檔,從文檔計算字符直方圖,並將其與所有已知語言進行比較。去任何最接近的匹配。
更好的方法是比較字直方圖。
A 實用方式會......我不知道。
1
最簡單的方法可以使用ICU4J庫和方法UScript.getScript(int)
它可以檢測單個字符爲基礎的腳本。對於標點和間距,它將返回UScript.COMMON
。對於拉丁文,它返回UScript.LATIN
。對於中文和日文漢字,它返回UScript.HAN
。對於日文假名,它返回UScript.KATAKANA
或UScript.HIRAGANA
(所以一個HAN
不證明文本是中文而不是日文)。
建議您迭代字符串的代碼點,但在大多數情況下,遍歷char
就足夠了。
這裏的一些理論:https://en.wikipedia.org/wiki/Script_%28Unicode%29
下面是與所有字符定義的腳本表:http://www.unicode.org/Public/UNIDATA/Scripts.txt
相關問題
- 1. 從語言類獲取語言
- 2. 從雅虎獲取口語語言
- 3. 如何從joomla的語言管理器獲取語言?
- 4. C# - 如何從語言代碼中獲取語言名稱?
- 5. 從語言代碼獲取語言字符串
- 6. 從語言環境代碼獲取本地化語言名稱
- 7. 如何從沒有國家的語言獲取語言CultureInfo
- 8. 如何從C++中的語言ID獲取語言名稱?
- 9. 從Java語言環境獲取語言的字母表
- 10. 從.htaccess的URL獲取語言
- 11. Angular translate從localstorage獲取語言
- 12. 如何從c語言獲取數據
- 13. 獲取在Go(語言)從片陣列
- 14. $語言 - >語言獲取默認語言不是當前語言[Drupal 7]
- 15. JSON獲取特定語言
- 16. Python:獲取OS語言
- 17. 獲取語言對齊?
- 18. WordPress:獲取ISO語言
- 19. 獲取TYPO3當前語言
- 20. RSS訂閱不同語言的utf8
- 21. 如何獲取多種語言的utf8字符串的初始英文單詞?
- 22. 獲取當前TTS語音的語言
- 23. Android - 獲取Google語音安裝語言
- 24. C++ win32從鍵盤獲取utf8字符
- 25. 從多語種網站獲取不同語言的HTML數據
- 26. django admin - 從i18n獲取對象的語言 - *不*當前語言的管理員
- 27. 如何從github的URL獲取主要語言或語言列表?
- 28. 如何通過語言環境獲取各種語言的語言名稱?
- 29. 在Laravel的提供者類中獲取語言環境語言
- 30. 在PHP中獲取語言的默認語言環境
你所說的「UTF-8串」呢?在Java中,一個字符串總是表示爲一系列UTF-16代碼單元。 – 2014-09-24 16:37:24
@JonSkeet,Oh Ick!這是真的嗎?我現在已經想過,他們已經將String重新定義爲一系列Unicode _code points_。我猜他們必須保持與16位char數據類型的原始定義的向後兼容性。 – 2014-09-24 16:59:19
@jameslarge:有一些方法可以檢索代碼點或使用代碼點索引,但大部分API都是圍繞UTF-16代碼單元:( – 2014-09-24 17:00:23