2013-07-30 26 views
0

是否有任何可用的字庫統計一些象形文字語言(例如:中文,日文,韓文...)?一些象形文字語言的字反碼?

我發現MS Word有效地計算了這些語言的文本。我可以在我的.NET應用程序中添加對MS Word庫的引用以實現此功能嗎?

或者是否有其他解決方案來實現此目的?

+1

**象形文字**?他們不是!!! :)日文和中文文本是完全由西文字符組成的(但是一個字符是/可能是一個字,如果你記得你必須計算字符而不是字節,你可以計算它們)。韓語有拼音字母...... –

+0

甚至象形文字也是「古埃及人使用的正式書寫系統,它結合了字母和字母元素」,實際上。 – KappaG3

回答

2

是否有任何可用的字庫統計一些象形文字語言(例如:中文,日文,韓文...)?

象形文字?不,他們不是。他們是字形字符,並沒有那麼微妙的差異。我相信一些母語的人可能會比我更好地解釋這一點。

日本和中國文字是由字符完全按照西方的語言,但一個字符可以是一個字。此外,他們不需要空格來分隔單詞,所以我們區分字符/單詞不能用空格作爲分隔符。

Word所做的就是計算字數(假設它們將等於字符數),並且您可以在您的代碼中執行相同的操作(只是不要忘記它是UNICODE,因此您無法計算字節數)。要計數單詞你需要一本字典(因爲你不能依靠空格)。

例如這些字符串:

這是一個示例文本

これは,サンプルのテキストです

將被計爲8個字符和8個字(在中國)日語15個字15個字。實際上它不是(例如在日文中,它是用羅馬字音譯的5個詞)。此外,不要忘記日文中他們有不止一個字母表(並且它們的一個家族是拼音)。

有什麼意義? 你會算什麼?我們用它來表示他們的音標(用拉丁字符)之一的詞音譯?哪一個?字數計算將會非常不同,它實際上會計算我們的概念的字數(這就是爲什麼,我猜字數字符)。

那說,現在嘗試寫這樣的代碼:

string text = "這是一個示例文本"; 
MessageBox.Show(text.Length.ToString()); 

它會顯示8,如Word做(我們正在計算字符),以字節爲單位(假定一個UTF-8編碼)是24。沒有意義在這裏計算空間。如果你打算用一個音譯來計算單詞,你需要使用一個外部庫(它本身不是一件簡單的工作),對於你想要支持的每種語言來說,這是一個不同的方法(不知何故,它很容易自動檢測語言,因爲在日語他們經常使用平假名/片假名字符)。哪一個?其中有很多,我不知道中文,但在日本流行漢語音譯是Kakasi

韓語是一個完全不同的故事,它是一個完全不同的拉丁文字母,但是字符(應該稱爲音節)可能由許多字母組成。再次,他們不需要空間,所以你不能依靠他們的字數。它有點複雜,因爲在這裏你可能需要一本字典,即使是字符計數(否則你只會計算音節)。

+0

儘管韓語在人物之間有空間。我注意到MS Word通過計數字符來計算文本中的單詞。對中文和日文來說,它的工作原理是一樣的。我認識到的有趣的事情是Google Doc的字數統計功能在這些語言中的工作不正確:D –

+0

@JinHo他們(韓國人)有空格(與中文和日文相同),但並非嚴格要求。看到任何一種語言的長文本沒有任何空間是很常見的。嗯...是的...軟件不是(對某些遠程語言來說還不是如此)對於遠東語言來說非常好(特別是當它們與我們的概念太不相同時)。全球化/本地化過程往往不僅僅是UNICODE的支持(但我們對它的理解速度很慢)。 –

+0

@JinHo哦,你來自越南!偉大的國家!即使不止一次,我害怕在胡志明市過馬路! :) –