Sprechen Sie ein Wort einer Sprache, Sie können oft erraten, welche Sprache Sie nur sehen, indem Sie bestimmte Charaktermuster erkennen. Ich spreche zum Beispiel nicht isländisch, aber ich erkenne sofort isländischen Textual content, wenn ich Buchstaben wie „ð“ oder „Þ“ sehe, da diese Charaktere anderswo äußerst selten sind. Ebenso habe ich bemerkt, dass es wahrscheinlich Niederländisch ist, wenn ich in einem Textual content viel „IJK“ sehe.

In diesem Artikel wird untersucht, wie wir einfache Statistiken verwenden können, um diese visuellen Fingerabdrücke zu lernen, die Charaktersequenzen, die am stärksten signalisieren, welche Sprache Sie in 20 verschiedenen europäischen Sprachen betrachten.

Wie man sprachliche Fingerabdrücke mit Statistiken lernt

Um die visuellen „Fingerabdrücke“ einer Sprache zu lernen, brauchen wir zunächst eine Möglichkeit, zu messen, wie eindeutig ein bestimmtes Charaktermuster ist. Ein natürlicher Ausgangspunkt könnte darin bestehen, die häufigsten Charaktermuster in jeder Sprache zu betrachten. Dieser Ansatz fällt jedoch schnell ab, da ein Charaktermuster in einer Sprache sehr häufig sein könnte und auch in anderen sehr häufig auftritt. Frequenz allein erfasst keine Einzigartigkeit. Stattdessen wollen wir fragen:

„Wie viel wahrscheinlicher ist dieses Muster in einer Sprache im Vergleich zu allen anderen?“

Hier kommt Statistiken ins Spiel! Formal lassen Sie:

  • L Sei der Satz aller 20 untersuchten Sprachen
  • S Seien Sie der Satz aller beobachteten Charaktermuster in diesen Sprachen

Um zu bestimmen, wie stark ein gegebenes Zeichenmuster sohn istS identifiziert eine Sprache l∈LWir berechnen das Wahrscheinlichkeitsverhältnis:

(Lr_ {s, l} = frac l) neg l) )

Dies vergleicht die Wahrscheinlichkeit, Charaktermuster S in Sprache L zu sehen, mit einer anderen Sprache. Je höher das Verhältnis ist, desto einzigartiger Binde ist dieses Muster für diese Sprache.

Berechnung des Wahrscheinlichkeitsverhältnisses in der Praxis

Um das Wahrscheinlichkeitsverhältnis für jedes Zeichenmuster in der Praxis zu berechnen, müssen wir die bedingten Wahrscheinlichkeiten in Größen umsetzen, die wir tatsächlich messen können. So definieren wir
Die relevanten Zählungen:

  • Cl(s): Die Anzahl der Zeiten Charaktermuster s erscheint in der Sprache l
  • C¬l(s): Die Anzahl der Zeiten Charaktermuster s erscheint in allen anderen Sprachen
  • Nl: Die Gesamtzahl der Vorkommen in der Sprache L
  • N¬l: Die Gesamtzahl der Mustervorkommen in allen anderen Sprachen

Mit diesen werden die bedingten Wahrscheinlichkeiten:

(P (s | l) = frac {c_l (s)} {n_l}, ~ p (s | neg l) = frac {c _ { neg l} (s)} {n _ { neg l}} )

und das Wahrscheinlichkeitsverhältnis vereinfacht:

.

Dies gibt uns eine numerische Punktzahl, die quantifiziert, wie viel wahrscheinlicher ein Zeichenmuster S in Sprache L gegen alle anderen erscheinen soll.

Umgang mit Nullzählungen

Es gibt leider ein Drawback mit unserer Wahrscheinlichkeitsverhältnisformel: Was passiert, wenn c¬l(s) = 0?

Mit anderen Worten, was ist, wenn ein bestimmtes Zeichenmuster nur in Sprache L und in keinen anderen erscheint? Dies führt zu einer Teilung durch Null im Nenner und einem Wahrscheinlichkeitsverhältnis von Unendlichkeit.

Technisch gesehen bedeutet dies, dass wir ein einzigartiges Muster für diese Sprache gefunden haben. Aber in der Praxis ist es nicht sehr hilfreich. Ein Charaktermuster erscheinen möglicherweise nur einmal in einer Sprache und niemals irgendwo anders und es würde eine unendliche Punktzahl erhalten. Nicht sehr nützlich als starker „Fingerabdruck“ der Sprache.

Um dieses Drawback zu vermeiden, wenden wir eine Technik mit dem Namen an Additive Glättung. Diese Methode passt die RAW -Zahlen leicht an, um Nullen zu beseitigen und die Auswirkungen seltener Ereignisse zu verringern.

Insbesondere fügen wir jeder Zählung im Zähler eine kleine konstante α hinzu, und α |S| zum Nenner mit |S| Die Gesamtzahl der beobachteten Charaktermuster. Dies hat die Auswirkung der Annahme, dass jedes Charaktermuster eine winzige Likelihood hat, in jeder Sprache auftreten, auch wenn es noch nicht gesehen wurde.

Bei Glättung werden die angepassten Wahrscheinlichkeiten:

(P'(s|l) = frac{c_l(s) + alpha}S,~P'(s|neg l)=frac{c_{neg l}(s) + alpha}{N_{neg l} + alpha|S|})

Und das zu maximierte Wahrscheinlichkeitsverhältnis beträgt:

. alpha | s |) cdot (c _ { neg l} (s) + alpha)} )

Dies hält die Dinge stabil und stellt sicher, dass ein seltenes Muster nicht automatisch dominiert, nur weil es exklusiv ist.

Der Datensatz

Nachdem wir nun eine Metrik definiert haben, um die markantesten Charaktermuster (unsere sprachlichen „Fingerabdrücke“) zu identifizieren, ist es Zeit, tatsächliche Sprachdaten zur Analyse zu sammeln.

Dafür habe ich die Python -Bibliothek verwendet WordFreqdie Wortfrequenzlisten für Dutzende von Sprachen kompiliert, die auf groß angelegten Quellen wie Wikipedia, Büchern, Untertiteln und Webtext basieren.

Eine besonders nützliche Funktion für diese Analyse ist top_n_list()was eine sortierte Liste der obersten N -Wörter in der höchsten Frequenz in einer bereitgestellten Sprache zurückgibt. Um beispielsweise die 40 häufigsten Wörter in Isländisch zu erhalten, würden wir anrufen:

wordfreq.top_n_list("is", 40, ascii_only=False)

Das Argument ascii_only=False stellt sicher, dass Nicht-ASCII-Charaktere-wie Isländisches „ð“ und „Þ“-in der Ausgabe erhalten bleiben. Dies ist für diese Analyse von wesentlicher Bedeutung, da wir speziell nach Sprach-Einheit-Charaktermustern suchen, die einzelne Zeichen enthält.

Um den Datensatz zu erstellen, habe ich in den folgenden 20 europäischen Sprachen die 5.000 häufigsten Wörter in den folgenden 20 europäischen Sprachen gezogen:

Katalanischer, Tschechischer, Dänisch, Niederländisch, Englisch, Finnisch, Französisch, Deutsch, Ungarisch, Isländisch, Italienisch, Lettisch, litauisch, norwegisch, polnisch, portugiesisch, rumänisch, spanisch, schwedisch und türkisch.

Dies ergibt ein großes mehrsprachiges Vokabular von 100.000 Gesamtwörtern, die reich genug sind, um aussagekräftige statistische Muster über Sprachen hinweg zu extrahieren.

Um die in der Analyse verwendeten Charaktermuster zu extrahieren, wurden alle möglichen Substrings der Länge 1 bis 5 aus jedem Wort im Datensatz erzeugt. Zum Beispiel das Wort language würde Muster enthalten, z. lAnwesend laAnwesend lanAnwesend langAnwesend languAnwesend aAnwesend anAnwesend angund so weiter. Das Ergebnis ist ein umfassendes Set S von über 180.000 einzigartigen Charaktermustern, die in den 20 untersuchten Sprachen beobachtet wurden.

Ergebnisse

Für jede Sprache werden die fünf markantesten Charaktermuster, die durch das Wahrscheinlichkeitsverhältnis eingestuft werden, gezeigt. Die Glättungskonstante wurde als α = 0,5 ausgewählt.

Da die Rohwahrscheinlichkeitsverhältnisse ziemlich groß sein können, habe ich den Foundation-10-Logarithmus des Wahrscheinlichkeitsverhältnisses (log10(LR)) stattdessen. Ein logarithmisches Verhältnis von 3 bedeutet beispielsweise, dass das Charaktermuster 10 beträgt3 = 1.000 -mal häufiger erscheint in dieser Sprache als in jedem anderen. Beachten Sie, dass diese Wahrscheinlichkeitsverhältnisse aufgrund der Glättung eher ungefähr als genau und die Extremität einiger Punkte angefeuert werden können.

Jede Zelle zeigt ein hochrangiges Charaktermuster und ihr logarithmisch-Probability-Verhältnis.

Sprache #1 #2 #3 #4 #5
katalanisch ènc
3.03
ènci
3.01
Kionen
2.95
ència
2.92
atge
2.77
tschechisch ě
4.14
R
3.94

3.65
ů
3.59
Re
3.55
dänisch Øj
2.82
Æng
2.77
wie G
2.73
Skab
2.67
Øge
2.67
Niederländisch ijk
3.51
lijk
3.45
Elijk
3.29
Ijke
3.04
voor
3.04
Englisch Verbündete
2.79
tly
2.64
SOM
2.54
Ying
2.54
CTED
2.52
finnisch ää
3.74
ään
3.33
Tää
3.27
llä
3.13
ssä
3.13
Französisch êt
2.83
Eux
2.78
Rése
2.73
Dép
2.68
Prése
2.64
Deutsch Eich
3.03
tlic
2.98
tlich
2.98
Schl
2.98
Ichen
2.90
ungarisch O
3.80
ű
3.17
Gye
3.16
Szá
3.14
ész
3.09
isländisch D
4.32
Ausweis
3.74
Anzeige
3.64
Þ
3.63
ði
3.60
Italienisch Zione
3.41
Azion
3.29
Zion
3.07
Aggi
2.90
Zioni
2.87
lettisch A
4.50
ich
4.20
ē
4.10

3.66
n / A
3.64
litauisch ė
4.11
ų
4.03

3.58
ich
3.57
ės
3.56
norwegisch sjon
3.17
ASJ
2.93
Øy
2.88
Asjon
2.88
Asjo
2.88
Polieren ł
4.13
S
3.79
C
3.77
ż
3.69

3.59
Portugiesisch ão
3.73
Çã
3.53
Ção
3.53
Ação
3.32
Açã
3.32
rumänisch A
4.31
T
4.01
ți
3.86
S
3.64

3.60
Spanisch Ción
3.51
Ación
3.29
Ion
3.14
Sión
2.86
Iento
2.85
Schwedisch förs
2.89
Stall
2.72
Ställe
2.72
Ång
2.68
Öra
2.68
Türkisch ich
4.52
S
4.10
G
3.83
In
3.80

3.60

Diskussion

Im Folgenden finden Sie einige interessante Interpretationen der Ergebnisse. Dies ist keine umfassende Analyse, nur einige Beobachtungen, die ich bemerkenswert fand:

  • Viele der Charaktermuster mit den höchsten Wahrscheinlichkeitsverhältnissen sind einzelne Charaktere, die für ihre Sprache einzigartig sind, wie das zuvor erwähnte isländische „ð“ und „Þ“, Rumänische „ă“, „ț“ und „ș“ oder türkische „ı“, „ş“ und „ğ“. Da diese Zeichen im Wesentlichen in allen anderen Sprachen im Datensatz fehlen, hätten sie unendliche Wahrscheinlichkeitsverhältnisse erzeugt, wenn nicht die additive Glättung.
  • In einigen Sprachen, vor allem Niederländisch, sind viele der Prime -Ergebnisse untereinander. Zum Beispiel erscheint das obere Muster „IJK“ auch in den nächsthöheren Mustern: „Lijk“, „Elijk“ und „Ijke“. Dies zeigt, wie bestimmte Kombinationen von Buchstaben in längeren Worten häufig wiederverwendet werden, was sie für diese Sprache noch unverwechselbarer macht.
  • Das Englisch hat einige der am wenigsten charakteristischen Charaktermuster aller analysierten Sprachen mit einem maximalen logarithmischen Wahrscheinlichkeitsverhältnis von nur 2,79. Dies kann auf das Vorhandensein englischer Darlehenswörter in vielen anderen Pay attention von 5.000 Sprachen zurückzuführen sein, die die Einzigartigkeit von englischspezifischen Mustern verdünnen.
  • Es gibt mehrere Fälle, in denen die Prime -Charaktermuster gemeinsame grammatikalische Strukturen über Sprachen hinweg widerspiegeln. Zum Beispiel fungieren die spanischen „-ción“, italienischen „-zione“ und norwegischen „-sjon“ alle als Nominalisierungssuffixe, ähnlich wie die englische „Tion“-verwandeln Verben oder Adjektive in Substantive. Diese Endungen sind in jeder Sprache stark hervorgegangen und zeigen, wie unterschiedliche Sprachen mit unterschiedlichen Schreibweisen ähnliche Muster folgen können.

Abschluss

Dieses Projekt begann mit einer einfachen Frage: Wie sieht eine Sprache aus wie sich selbst? Durch die Analyse der 5000 häufigsten Wörter in 20 europäischen Sprachen und den Vergleich der von ihnen verwendeten Charaktermuster entdeckten wir einzigartige ‚Fingerabdrücke‘ für jede Sprache – von Akzentschreiben wie „ş“ und „Ø“ bis hin zu wiederkehrenden Briefkombinationen wie „IJK“ oder „Ción“. Obwohl die Ergebnisse nicht endgültig sind, bieten sie eine unterhaltsame und statistisch geerdete Möglichkeit, zu untersuchen, was Sprachen visuell auszeichnet, auch ohne ein einziges Wort zu verstehen.

Siehe mein Github -Repository Für die vollständige Code -Implementierung dieser Technik.

Danke fürs Lesen!

Referenzen

wordfreq Python Library:

  • Robyn Speer. (2022). rspeer/wordfreq: v3.0 (v3.0.2). Zenodo. https://doi.org/10.5281/zenodo.7199437

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert