가 [漢字/한자] 더 이상, 그들은 여전히 때때로 팝업. 일부 일본의 사이 노 그램은 ε과 같이 전적으로 일본어이지만, 대부분은 중국어 (간체 또는 번체)와 동일합니다. 그래서 너는 달라 붙어. "한"문자가 있으면 전체 문장을 살펴야합니다. 히라가나/가타카나 + 한자가 있으면 확률이 매우 높습니다. 일본어입니다. 마찬가지로 한글 음절과 몇 개의 사이 노 그램이 문장이 한국어로 표시됩니다.
다음 중국어가 모두 한자 인 경우 일부 문자가 단순화되어 있는지 확인할 수 있습니다. kZVariant는 중국어 간체를 나타냅니다. 오, 그리고 kSpecializedSemanticVariant는 일본어의 간결한 문자에 자주 사용됩니다. 내외는 동일하게 보일지도 모르지만 첫 번째는 일본어이고 두 번째 중국어 번체와 한국어 (한국어는 중국어 번체를 표준으로 사용함).
하나의 코드 포인트에 대해 스크립트 이름을 반환하는 어딘가에 코드가 있습니다. 그것은 도움이 될 수 있습니다. 당신은 문장을 읽고, 마지막에 남은 것을 보게됩니다. 나는 어딘가에 코드를 올려 놓을 것이다.
EDIT : 코드 코멘트 아래에 응답
http://pastebin.com/e276zn6y
:
전문가되는 것은 아니지만 상술이 함수 ... Unicode.org 의해 제공된 데이터에 기초하여 구축
그 자체로 Unihan 데이터베이스에 상당히 기여했습니다. 그리고 저는 CJK를 말합니다. 예, 모두 3. Unihan 데이터베이스의 kXXX
속성을 활용하는 코드가 있지만 A/I는 OP 용 코드를 작성해야한다는 것을 모르고 있었고 B/OP가 구현할 준비가 된 것 이상으로 확장하십시오. 내 충고가있다. 위의 함수를 사용하여 하나의 완전한 문장으로 반복하십시오. 모든 코드 포인트가 "한"(또는 "한"+ "라틴") 인 경우 중국어 가능성이 높습니다. 반면에 결과가 "한"+ "한글"(+ "라틴어"가능성이 있음)의 혼합이면 한국어와 잘못 될 수 없습니다. 마찬가지로, "한"과 "가타가나"/ "히라가나"가 혼합되어 있으면 일본어가 있습니다.
빠른 테스트는
일부 코드 내가 전에에 링크 된 기능을 사용할 수 있습니다.
function guessLanguage(x) {
var results={};
var s='';
var i,j=x.length;
for(i=0;i<j;i++) {
s=scriptName(x.substr(i,1));
if(results.hasOwnProperty(s)) {
results[s]+=1;
} else {
results[s]=1;
}
}
console.log(results);
mostCount=0;
mostName='';
for(x in results) {
if (results.hasOwnProperty(x)) {
if(results[x]>mostCount) {
mostCount=results[x];
mostName=x;
}
}
}
return mostName;
}
일부 테스트 :
r=guessLanguage("外人だけど、日本語をペラペラしゃべるよ!");
Object
Common: 2
Han: 5
Hiragana: 9
Katakana: 4
__proto__: Object
"Hiragana"
r
객체는 각 스크립트의 발생 횟수가 포함되어 있습니다. 히라가나는 가장 빈번하며 히라가나 + 카타카나 -> 2/3의 문장입니다.
r=guessLanguage("我唔知道,佢講乜話.")
Object
Common: 2
Han: 8
__proto__: Object
"Han"
중국인 (이 경우 광둥어)의 분명한 경우입니다.
r=guessLanguage("中國이 韓國보다 훨씬 크지만, 꼭 아름다운 나라가 아니다...");
Object
Common: 11
Han: 4
Hangul: 19
__proto__: Object
"Hangul"
일부 한글 및 일부 한글. 확실하게 한국어 문장.
특정 문자가 중국어인지 일본어인지 어떻게 결정합니까? 그들은 많은 문자를 공유합니다. – Daenyth
3 개 언어가 유니 코드 내에 장소가없는 경우 CJK에서부터 \ language [cn] {*}'까지 모든 것을 표시하는 간단한 질문을 할 것입니다. – Village
그것보다 더 복잡합니다. 3 개 국어는 문자 점수 (숫자 코드)를 공유하지만 반드시 문자 (문자의 그래픽 표현)는 아닙니다. 유니 코드 CJK FAQ를보십시오 http://unicode.org/faq/han_cjk.htm – mirod