Kann Sortieren von japanische kanji-Wörter, die programmgesteuert ausgeführt werden?
Ich habe vor kurzem entdeckt, zu meinem Erstaunen (da ich noch nie wirklich darüber nachgedacht, bevor), Maschinen-Sortieren von japanische Eigennamen ist offenbar nicht möglich.
Arbeite ich an einer Anwendung, muss der Benutzer wählen Sie ein Krankenhaus aus einem 3-Menü-Schnittstelle. Das erste Menü ist der Präfektur, der zweite ist der Name der Stadt, und die Dritte ist Krankenhaus. Jedes Menü sortiert werden sollen, wie Sie vielleicht erwarten, so dass die Nutzer finden, was Sie wollen in das Menü.
Lassen Sie mich skizzieren, was ich gefunden habe, als Präambel zu meiner Frage:
-
Die erwartete Sortierreihenfolge für japanische Wörter auf Ihre Aussprache. Kanji haben keine inhärente Reihenfolge (es gibt zig-Tausende von Kanji in Gebrauch), aber der japanische phonetische syllabaries haben einen Auftrag: あ、い、う、え、お、か、き、く、け、こ... und auf der fünfzig traditionellen verschiedene Klänge (ein paar von denen sind veraltet in der modernen japanischen). Diese Sortierreihenfolge genannt 五十音順 (gojuu auf jun , oder '50-sound-order').
-
Daher, Kanji-Wörter in derselben Reihenfolge sortiert wie Sie sein würde, wenn Sie geschrieben wurden, in hiragana. (Sie können ein einzelnes kanji-Wort im phonetischen hiragana im japanischen.)
-
Der Clou: es gibt keine kanonische Möglichkeit zum bestimmen der Aussprache eines Wortes, geschrieben in kanji. Man weiß ja nie. Einige kanji haben zehn oder mehr verschiedene Aussprache, je nachdem, das Wort. Viele gemeinsame Wörter in das Wörterbuch, und ich könnte wahrscheinlich den hack gemeinsam einen Weg zu suchen, bis Sie von einem der kostenlosen Wörterbuch-Datenbanken, aber Eigennamen (z.B. Krankenhaus-Namen) sind nicht im Wörterbuch.
So, in meiner Anwendung habe ich eine Liste von jeder Präfektur, Stadt und hospital in Japan. Um die Sortierung dieser Listen, die eine Voraussetzung ist, brauche ich eine passende Liste von jeder dieser Namen in phonetischer form (kana).
Ich kann nicht kommen mit nichts anderes als die Zahlung jemanden, der fließend Japanisch (ich bin nur so-so) manuell transkribieren Sie Sie. Bevor ich das tun obwohl:
-
Ist es möglich, dass ich bin Total high on fire, und gibt es eigentlich eine Möglichkeit, das zu tun diese Sortierung ohne meine eigene Zuordnungen von kanji Wörter an die phonetischen Lesungen, das habe ich irgendwie übersehen?
-
Gibt es eine öffentlich zugängliche Kartierung der Präfektur/Stadt-Namen, von der Regierung oder so? Das reduziert die manuelle Zuordnung würde ich tun müssen, um nur Krankenhaus Namen.
-
Hat jemand andere Ratschläge, wie man zur Lösung dieses Problems? Jede Programmiersprache ist in Ordnung-ich arbeite mit Ruby on Rails, aber ich würde mich freuen, wenn ich könnte einfach ein Programm schreiben, dass würde die kanji-Eingabe (sagen, 40.000 Eigennamen) und geben dann die phonetischen Repräsentationen als Daten, die konnte ich importieren in meine Rails-app.
宜しくお願いします。
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Daten, Graben, Google IME (Mozc) Daten-Dateien hier.
Gibt es viele interessante Daten gibt, einschließlich IPA-Wörterbücher.
Bearbeiten:
- Und Sie können auch versuchen Mecab, die er nutzen kann, IPA-Wörterbuch und umwandeln kann kanjis zu katakana für die meisten Wörter
und es ist ruby-Bindungen zu.
und hier ist jemand getestet, ruby mit mecab mit tagger -Oyomi
nur eine kurze follow-up zu erklären, die eventuelle tatsächliche Lösung, die wir verwendet. Danke an alle, die empfohlen mecab-dies scheint getan haben, der trick.
Wir haben die meist-Rails-backend, aber in unseren Umständen, die wir nicht brauchen, um dieses problem zu lösen auf das backend. Für vom Benutzer eingegebene Daten, wie z.B. das erstellen von neuen Personen mit japanischen Namen, die uns verändert sich die Benutzeroberfläche den Benutzer auffordern, geben Sie die phonetische yomigana zusätzlich zu den kanji-Namen. Nutzer scheinen gewöhnt. Das problem war, den großen Korpus von Daten, die in der app integriert--Krankenhaus -, Unternehmens-und Ortsnamen, hauptsächlich.
So, was wir getan haben, ist:
(der genaue Befehl verwendet wurde, war
mecab -Oyomi -o seed_hospitals.converted.csv seed_hospitals.csv
, die gibt eine neue Datei mit dem kanji ersetzt durch das phonetische äquivalent, ausgedrückt in voller Breite, katakana).NKF.nkf("-h1 -w", katakana_str) # -h1 means to hiragana, -w means output utf8
Von Zeit zu Zeit die client-updates von der Quell-Daten, also werden wir das tun müssen, wenn das passiert.
Soweit ich kann sagen, diese Ausgabe ist gut. Mein Japanisch ist nicht gut genug, um zu 100% sicher sein, aber ein paar von meinen japanischen Kollegen Magermilch und sagte, es sieht alles richtig. Ich habe eine leicht verschleierte Beispiel der konvertierten Adressen in diese gist so, dass jeder, der kümmerte sich, so weit zu Lesen kann für sich selbst sehen.
UPDATE: Die Ergebnisse sind in... es ist ziemlich gut, aber nicht perfekt. Noch sieht es aus wie es richtig phoneticized 95%+ der quasi-random-Adressen in meine Liste.
Vielen Dank an alle, die mir geholfen haben!!
Schön zu hören, dass die Leute arbeiten, mit japanischen.
Ich denke, Sie sind vor Ort auf Ihre Einschätzung des Problems Schwierigkeiten. Ich fragte eine von den japanischen Jungs in meinem Labor, und die Art und Weise, es zu tun zu sein scheint, wie Sie es beschreiben:
Der schwierige Teil ist natürlich Schritt zwei. Ich habe zwei Jungs in meinem Labor: 高橋 und 高谷. Natürlich, wenn die Sortierung der Berichte usw.. durch die Namen, Sie erscheinen nirgendwo in der Nähe von einander.
BEARBEITEN
Wenn Sie fließend Japanisch, haben einen Blick hier: http://mecab.sourceforge.net/
Es ist ein ziemlich beliebtes Werkzeug, so sollten Sie in der Lage sein zu finden, die englische Dokumentation zu (die
man
Seite fürmecab
Englisch info).Ich bin nicht vertraut mit MeCab, aber ich denke, mit MeCab ist eine gute Idee.
Dann werde ich Ihnen eine andere Methode.
Wenn Ihre app, geschrieben in VBA, können Sie rufen "GetPhonetic" - Funktion. Es ist einfach zu bedienen.
finden Sie unter : http://msdn.microsoft.com/en-us/library/aa195745(v=office.11).aspx
Sortierung Präfekturen durch seine Aussprache ist nicht üblich. Die meisten Japaner werden verwendet, um Präfekturen sortiert nach "都道府県コード".
z.B. 01:北海道, 02:青森県, ..., 13:東京都, ..., 27:大阪府, ..., 47:沖縄県
Diese codes sind definiert in "JIS X 0401" oder "ISO-3166-2 JP".
siehe (Wikipedia Japanisch) :
http://ja.wikipedia.org/wiki/%E5%85%A8%E5%9B%BD%E5%9C%B0%E6%96%B9%E5%85%AC%E5%85%B1%E5%9B%A3%E4%BD%93%E3%82%B3%E3%83%BC%E3%83%89