Comment faire pour convertir les caractères Chinois pour le Pinyin
Pour le tri de la langue Chinoise de texte, je veux convertir les caractères Chinois pour le Pinyin, bien séparer chaque caractère Chinois et le groupement des caractères successifs ensemble.
Pouvez-vous svp m'aider dans cette tâche en fournissant de la logique ou de code source pour le faire?
S'il vous plaît laissez-moi savoir si tout open source ou lib déjà présent pour cette.
Vous devez vous connecter pour publier un commentaire.
Réponse courte: vous n'avez pas.
Réponse longue: Il n'y a pas de one-to-one mapping pour 汉字 à 汉语拼音. Juste quelques exemples rapides:
Et ainsi de suite. J'ai un débutants livre sur ce sujet qui a 207 exemples. Je tiens à souligner que c'est un débutants livre et n'est pas exhaustive. Chacun a une page ou deux exemples d'utilisation et des conditions dans lesquelles vous choisissez la prononciation. Il n'est pas quelque chose qui peut être facilement programmé (si).
Et ce n'est même pas l'adresse de l'autre glissant chose que vous voulez traiter: la séparation des caractères groupés mots. La notion même d'un mot est un peu glissant en Chinois. (Il y a deux termes qui correspondent, à peu près à la "parole" en Chinois, par exemple: 字 et 词. La première est le caractère, le second des groupes de personnages qui sont mis ensemble dans un seul concept. (J'ai fréquemment posées par les locuteurs Chinois, combien de "mots" je peux lire quand il veut dire vraiment "caractères".) Alors que dans certains cas, la distinction est claire (le 词 "乌鸦", par exemple, est "corbeau" - les deux 字 doivent être réunies pour exprimer l'idée correctement et il serait incorrect de le traduire par "noir corbeau"), dans d'autres, il n'est pas si clair. Ce n' "你好" traduire? Est-il un mot de sens, idiomatique, "bonjour"? Ou est-ce deux mots à traduire littéralement "bien"? Chacun des personnages impliqués, seul ou en groupe avec d'autres mots, mais ensemble, ils signifient quelque chose de totalement différent de leur sens. Compte tenu de cela, comment, précisément, envisagez-vous de groupe de la 汉语拼音 les translittérations (qui sont difficile, voire impossible, à obtenir le droit à la première place!) dans "les mots"?
Un tableau contenant la correspondance entre unicode pour pinyin
ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/data/Uni2Pinyin.gz
CoreFoundation fournit certaine méthode pour faire la conversion:
La sortie est
Tout @JUSTE MON OPINION correcte de la réponse traite de certaines des difficultés de la conversion de caractères en pinyin, il n'est pas un problème impossible à résoudre.
J'ai écrit d'une bibliothèque (pinyinify) qui permet de résoudre cette tâche décent avec précision. Même s'il n'est pas un one-to-one mapping entre les personnages et le pinyin, ma bibliothèque pouvez généralement décider qui de la prononciation est correcte. Par exemple, "我受不了了" convertit correctement à "wǒ shòubùliǎo chier", avec deux différentes prononciations de 了.
Mon approche pour résoudre le problème est assez simple:
le code suivant écrit en C# peut vous aider à convertir simplement les mots chinois qui, y compris dans gb2312 encodec(juste 2312 souvent utilisé Simplifié-mots Chinois) pour le pinyin.comme convertir "今天天气不错" à "JinTianTianQiBuCuo".
parfois un mot chinois n'est pas celui d'une carte à une pinyin,ça dépend du contexte, nous parlons.comme le "行" dans "自行车"(vélo) est prononcé "Xing",mais dans "银行"(banque), il se prononce "Accrocher".donc, si vous avez un problème avec cela,vous pouvez trouver plus complexes solution pour gérer cela.
désolé pour mon mauvais anglais.j'espère que cela pourrait vous donner un peu d'aide.
j'ai eu ce problème et j'ai trouvé une solution en PHP (ce qui pourrait être plus propre, je suppose, mais ça fonctionne). J'ai eu des soucis parce que le fichier donné dans ce sujet est de l'hexa unicode.
1) Importer les données à partir de ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/data/Uni2Pinyin.gz (merci pierr) à votre base de données ou que ce soit
2) Importer vos données dans un tableau comme
$pinyinArray[$hexaUnicode] = $pinyin;
3) Utilisez ce code:
echo:
(long2)(jiang1)(sheng3,xing3)(wu3)(da4,dai4)
Bien sûr,
$pinyinArray
est votre tableau de données (hexoUnicode => pinyin
)Espère que ça aidera quelqu'un.
Vous pouvez utiliser la méthode suivante:
De sortie:
Si vous utilisez Visual Studio, ce pourrait être une option:
Microsoft.International.Convertisseurs de.PinYinConverter
Comment faire pour installer:
Tout d'abord, télécharger le Visual Studio International Pack 2.0, Officiel de Téléchargement. Une fois le téléchargement terminé, installez le fichier exécutable VSIPSetup.installation msi (x86 de système d'exploitation sur le répertoire d'installation par défaut (C:\Program Files\Microsoft Visual Studio International Feature Pack 2.0).
Après l'installation, vous devez ajouter une référence dans VS, respectivement de référence:
C:\Program Files\Microsoft Visual Studio International Pack\Chinois Simplifié Pinyin Bibliothèque De Conversion (Pinyin)
et
C:\Program Files\Microsoft Visual Studio International Pack\Chinois Traditionnel Chinois Simplifié Bibliothèque de Conversion et De complément de l'Outil (Traditionnel et Simplifié Huzhuan d')
Comment utiliser:
Source:
http://www.programering.com/a/MzM3cTMwATA.html