Frage

Ich bin mit dem Begriff "Lexical Encoding" für meinen Mangel an einem besseren.

Ein Wort ist wohl die Grundeinheit der Kommunikation als auf ein Schreiben entgegengesetzt. Unicode versucht, einen numerischen Wert zu jedem Buchstaben aller bekannten Alphabete zuzuordnen. Was für ein Brief an eine Sprache ist, ist ein Glyph in ein anderes. Unicode 5.1 ordnet mehr als 100.000 Werte zu diesen Glyphen zur Zeit. Von den rund 180.000 Worten in Neuenglisch verwendet wird, wird gesagt, dass mit einem Wortschatz von etwa 2000 Worten, sollten Sie in der Lage sein, im Allgemeinen zu sprechen. A „Lexical Encoding“ würde jedes Wort kodieren nicht jeder Buchstabe, und kapseln sie in einem Satz.

// An simplified example of a "Lexical Encoding"
String sentence = "How are you today?";
int[] sentence = { 93, 22, 14, 330, QUERY };

In diesem Beispiel jedes Token im String wurde als Integer kodiert. Das Encoding Scheme hier einfach einen int-Wert zugewiesen, basierend auf verallgemeinerten statistischen Ranking der Wortgebrauch, und eine Konstante zu dem Fragezeichen zugeordnet.

Schließlich ein Wort hat sowohl eine Rechtschreibung und Bedeutung though. Jede „Lexical Encoding“ würde den Sinn und Zweck des Satzes als Ganzes erhalten, und nicht sprachspezifisch sein. Ein englischer Satz würde in codiert werden „... sprachneutrale atomare Elemente von Bedeutung ...“ , die dann in einer anderen Sprache mit einer strukturierten Syntaktische Form und grammatikalischer Struktur rekonstituiert werden können.

Was sind weitere Beispiele für "Lexical Encoding" Techniken?


Wenn Sie interessiert sind, wo die Wort-Nutzungsstatistiken stammen aus:
http://www.wordcount.org

War es hilfreich?

Lösung

Ihr sind mehrere große Probleme mit dieser Idee. In den meisten Sprachen, die Bedeutung eines Wortes, und das Wort mit einem Bedeutungswandel verbunden ist sehr schnell.

Kaum würden Sie haben eine Nummer, die einem Wort zugeordnet, bevor die Bedeutung des Wortes ändern würde. Zum Beispiel bedeutet das Wort „Homosexuell“ verwendet, um nur „glücklich“ oder „fröhlich“, aber es ist jetzt meist bedeuten Homosexuellen verwendet. Ein weiteres Beispiel ist das Morphem „Danke“, die ursprünglich aus deutschen „danke“, die nur ein Wort ist. Ein weiteres Beispiel ist „Good bye“, das ist eine Abkürzung von „Gott segne dich“.

Ein weiteres Problem ist, dass selbst wenn man einen Schnappschuss eines Wortes an jedem Punkt der Zeit in Anspruch nimmt, würden die Bedeutung und Verwendung des Wortes unter Anstoß sein, auch innerhalb der gleichen Provinz. Wenn Wörterbücher geschrieben werden, ist es nicht ungewöhnlich, dass die Wissenschaftler verantwortlich über ein einziges Wort zu argumentieren.

Kurz gesagt, würden Sie nicht in der Lage sein, es mit einer vorhandenen Sprache zu tun. Sie würden eine Sprache Ihrer eigenen, für den Zweck, oder mit einer ziemlich statischen Sprache haben zu prüfen, zu erfinden, die bereits erfunden wurde, wie Interlingua oder Esperanto. Doch selbst diese würden für den Zweck nicht perfekt sein zu definieren statische Morpheme in einem sich ständig Standardlexikon.

Auch in Chinesisch, wo es grobe Zuordnung des Charakters zu Bedeutung, wäre es immer noch nicht funktionieren. Viele Charaktere ändern ihre Bedeutung je nach sowohl Kontext, und die Zeichen entweder vor oder sie postfix.

Das Problem ist, im schlimmsten Fall, wenn Sie zwischen den Sprachen versuchen und übersetzen. Es kann ein Wort in Englisch sein, die in verschiedenen Fällen verwendet werden können, aber nicht direkt in einer anderen Sprache verwendet werden. Ein Beispiel hierfür ist „frei“. In Spanischen, entweder „libre“ im Sinne von „frei“, wie in der Rede, oder „gratis“, was bedeutet „frei“ wie in Bier verwendet werden kann (und mit dem falschen Wort anstelle von „frei“ wäre sehr komisch aussehen).

Es gibt noch andere Worte, die noch schwieriger sind eine Bedeutung auf, wie das Wort in der koreanischen schön zu legen; wenn ein Mädchen schön nennen, würde es mehr Kandidaten für die Substitution sein; aber wenn Essen schön nennen, es sei denn, du meinst das Essen gut aussieht, gibt es mehrere andere Kandidaten, die völlig unterschiedlich sind.

Was es kommt darauf an, ist, obwohl wir nur über 200k Worte in Englisch verwenden, sind unsere Vokabulare tatsächlich größer in einigen Aspekten, weil wir viele verschiedene Bedeutungen auf das gleiche Wort zuweisen. Die gleichen Probleme gelten für Esperanto und Interlingua, und jede andere Sprache sinnvoll für Unterhaltung. Die menschliche Sprache ist nicht eine gut definierte, gut geölte Maschine. Also, auch wenn Sie ein solches Lexikon erstellen könnte, wo jedes „Wort“ seine eigene einzigartige Bedeutung hätte, wäre es sehr schwierig sein, und nahezu unmöglich für Maschinen aktuellen Techniken von jeder menschlichen Sprache in Ihrem speziellen standardisierten Lexikon zu übersetzen.

Aus diesem Grunde noch maschinelle Übersetzung saugt und wird für eine lange Zeit zu kommen. Wenn Sie es besser machen können (und ich hoffe, Sie können), dann sollten Sie wahrscheinlich halten es mit irgendeiner Art von Stipendium zu tun und / oder einer Universität / staatliche Förderung, hin zu einem PHD arbeiten; oder einfach nur einen Haufen Geld machen, was auch immer Ihr Schiff Dampf hält.

Andere Tipps

Diese Frage trifft auf Linguistik mehr als Programmierung, sondern auch für Sprachen, die sehr synthetisch sind (mit Worten, die aus mehreren kombinierten Morphemen enthalten sind), kann es ein sehr komplexes Problem zu versuchen, „Nummer“ alle möglichen Worte sein, im Gegensatz in den Sprachen wie Englisch, das zumindest etwas zu isolieren, oder Sprachen wie Chinesisch wird, sind die sehr analytisch.

Das heißt, Worte können nicht einfach nach unten und gezählt in einigen Sprachen auf der Grundlage ihrer konstituierenden Glyphen gebrochen werden.

Dieser Wikipedia-Artikel über Sprachen Trenn bei der Erläuterung des Problems hilfreich sein kann.

Es ist einfach genug, um zu erfinden ein für sich selbst. Schalten jedes Wort in eine kanonische Bytestrom (etwa Klein zerlegt UCS32), dann wird es auf eine ganze Zahl hash nach unten. 32 Bit wäre wahrscheinlich genug, aber wenn nicht, dann 64 Bits sicher würde.

Bevor Sie ding für Sie eine snarky Antwort zu geben, zu prüfen, dass der Zweck von Unicode einfach ist jeweils eine eindeutige Kennung Glyphe zuzuweisen. Nicht zu ordnen oder zu sortieren oder zu gruppieren, aber nur jedes auf eine eindeutige Kennung zuzuordnen, dass sie alle einig, auf.

Wie würde behandelt das System Pluralisierung von Substantiven oder Konjugation von Verben? Würde diese jeweils ihren eigenen „Unicode“ Wert?

Als Übersetzungen Schema wird dies wahrscheinlich ohne viel mehr Arbeit nicht zur Arbeit gehen. Sie würde gerne glauben, dass Sie eine Nummer, die jedes Wort zuordnen können, dann mechanisch, dass in einer anderen Sprache übersetzen. In Wirklichkeit haben Sprachen das Problem mehrerer Wörter, die gleich „der Wind blies ihr Haar zurück“ versus „Wind Ihre Uhr“ geschrieben sind.

Zur Übertragung von Text, in dem Sie vermutlich ein Alphabet pro Sprache haben würde, wäre es gut funktionieren, obwohl ich frage mich, was du da im Gegensatz gewinnen würde, um mit einer variablen Länge Wörterbuch, wie ZIP Anwendungen.

Dies ist eine interessante Frage, aber ich vermute, dass Sie es aus den falschen Gründen fragen. Denken Sie an diesem ‚lexikalisch‘ Unicode‘als etwas, das man Sätze zu brechen erlauben würde, in sprachneutrale Atombedeutungselemente und dann in der Lage sein, sie in einer anderen konkreten Sprache zu rekonstruieren? Als Mittel einen universellen Übersetzer zu erreichen, vielleicht?

Auch wenn Sie kodieren und zu speichern, sagen wir, ein englischer Satz mit einem ‚lexikalischen Unicode‘, kann man nicht erwarten, dass es zu lesen und es auf magische Weise machen in, sagen wir, Chinesen die Bedeutung intakt zu halten.

Ihre Analogie zu Unicode ist jedoch sehr nützlich.

Beachten Sie, dass Unicode, während ein ‚universal‘ Code, nicht die Aussprache, Bedeutung oder Verwendung des Zeichens in Frage verkörpert. Jeder Code Punkt bezieht sich auf eine bestimmte Glyphe in einer bestimmten Sprache (oder besser gesagt das Skript von einer Gruppe von Sprachen verwendet). Es ist elementar auf der visuellen Darstellungsebene eines Glyphe (innerhalb der Grenzen von Stil, Formatierung und Schriftart). Der Unicode-Codepunkt für die lateinischen Buchstaben ‚A‘ ist genau das. Es ist der lateinische Buchstaben ‚A‘. Es kann nicht automatisch als wiedergegeben werden, sagen wir, dem arabischen Buchstaben Alif (ا) oder der Indic (Devnagari) Buchstaben 'A' (अ).

Keeping in der Unicode-Analogie, Ihre Lexical Unicode würde Codepunkte für jedes Wort (Wortform) in jeder Sprache. Unicode hat Bereiche Codepunkte für ein bestimmtes Skript. Ihre lexikalische Unicode würde für jede Sprache eine Reihe von Codes. Verschiedene Wörter in verschiedenen Sprachen, auch wenn sie die gleiche Bedeutung (Synonyme) haben, müssten verschiedene Codepunkte. Das gleiche Wort unterschiedliche Bedeutungen haben, oder unterschiedliche Aussprachen (Homonyme) aufweist, müßte verschiedene Codepunkte.

In Unicode für einige Sprachen (aber nicht alle), wo das gleiche Zeichen eine andere Form hat, je nach seiner Position im Wort - z.B. auf Hebräisch und Arabisch, ändert sich die Form eines Glyphe am Ende des Wortes - dann hat es einen anderen Codepunkt. Ebenfalls in Ihrer Lexical Unicode, wenn ein Wort eine andere Form je nach ihrer Stellung im Satz hat, kann es seinen eigenen Code Punkt rechtfertigen.

Vielleicht ist der einfachste Weg, mit Codepunkten kommen für die englische Sprache Ihres Systems zur Basis auf, sagen wir, eine bestimmte Ausgabe des Oxford English Dictionary sein würde und einen einzigartigen Code für jedes Wort nacheinander zuweisen. Sie werden einen anderen Code für jede unterschiedliche Bedeutung des gleichen Wortes verwenden müssen, und Sie werden einen anderen Code für verschiedene Formen verwenden - zum Beispiel wenn das gleiche Wort kann als Substantiv und als Verb verwendet werden, dann werden Sie zwei Codes benötigen

Dann werden Sie das gleiche für jede andere Sprache tun Sie aufnehmen wollen -. Mit der maßgeblichsten Wörterbuch für diese Sprache

Die Chancen stehen gut, dass diese Übung alle mehr Mühe, als es wert ist. Wenn Sie sich entscheiden, gehören die lebenden Sprachen der alles Welt sowie einige historisch Toten und einige fiktiv diejenigen - wie Unicode tut - Sie werden mit einem Code-Raum am Ende, die so groß ist, dass der Code müßte extrem breit sein, sie zu beherbergen. Sie werden nichts in Bezug auf der Kompression gewinnen -. Es wahrscheinlich ist, dass ein Satz als String in der Originalsprache dargestellt würde weniger Platz als im gleichen Satz wie Code dargestellt nehmen

P. S. für diejenigen, die dies ist eine unmögliche Aufgabe sagen, weil Wortbedeutungen zu ändern, sehe ich das nicht als ein Problem. Um die Unicode Analogie zu verwenden, hat die Verwendung von Buchstaben geändert (zugegebenermaßen nicht so schnell wie die Bedeutung von Worten), aber es ist nicht, wenn eine Besorgnis in Unicode, dass ‚th‘ verwendet wie ‚y‘ ausgesprochen wird im Mittelalter. Unicode hat einen Codepunkt für ‚t‘, ‚h‘ und ‚y‘ und sie jeweils erfüllen ihren Zweck.

P.P.S. Eigentlich ist es von einem gewissen Sorge zu Unicode, dass ‚oe‘ ist auch ‚œ‘ oder die ‚ss‘ geschrieben werden kann ‚ß‘ in deutscher Sprache

Dies ist eine interessante kleine Übung, aber ich würde Sie bitten, es nicht mehr als eine Einführung in das Konzept des Unterschiedes in natürlicher Sprache zwischen verschiedenen Arten und Marken zu berücksichtigen.

Ein Typ ist eine einzelne Instanz eines Wortes, das alle Instanzen darstellt. Ein Token ist eine einzelne Zählung für jede Instanz des Wortes. Lassen Sie uns erklären dies mit folgendem Beispiel:

"ging John zum Brot zu speichern. Er kaufte das Brot."

Hier sind einige Frequenzzählungen für dieses Beispiel mit dem zählt die Anzahl von Token Bedeutung:

John: 1
went: 1
to: 1
the: 2
store: 1
he: 1
bought: 1
bread: 2

Beachten Sie, dass „die“ doppelt gezählt wird - es gibt zwei Token „die“. Beachten Sie jedoch, dass, während es zehn Worte sind, da nur acht dieser Wort-Frequenz-Paare sind. Worte werden nach Typen und gepaart mit ihrer Tokenzählung abgebaut werden.

Typen und Token sind nützlich in der statistischen NLP. „Lexikalische Codierung“ auf der anderen Seite, würde ich aufpassen. Dies ist ein Übergang in viele altmodischen Ansätze für NLP, mit Vorprogrammierung und Rationalismus gibt es zuzuhauf. Ich weiß nicht einmal über jede statistische MT, die „Adresse“ weist tatsächlich eine spezifisch für ein Wort. Es gibt zu viele Beziehungen zwischen Wörtern, für eine Sache, jede Art zu bauen gut numerische Ontologie durchdacht, und wenn wir nur Zahlen in Worte zu werfen, sie zu kategorisieren, sollten wir über Dinge wie Speicherverwaltung und die Zuweisung für die Geschwindigkeit denken .

Ich würde vorschlagen, NLTK Check-out, das Natural Language Toolkit, geschrieben in Python, für eine ausführlichere Einführung in NLP und seine praktischen Anwendung.

Eigentlich braucht man nur etwa 600 Wörter für eine halbwegs ordentliche Vokabular.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top