Mechthild: Sprache erkennen

Hi,
ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist. Ich habe mir dazu eine kleine Funktion gebastelt, die auf regex und gängigen Begriffen basiert. Allerdings ist die nicht ganz optimal, manche Texte werden nicht erkannt. Kennt jemand eine Standardlösung für dieses Problem?

danke!

  1. Hi!

    ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist.

    http://lmgtfy.com/?q=php+detect+language+of+text

    Gruß Gunther

  2. Hallo,

    ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist. Ich habe mir dazu eine kleine Funktion gebastelt, die auf regex und gängigen Begriffen basiert. Allerdings ist die nicht ganz optimal, manche Texte werden nicht erkannt. Kennt jemand eine Standardlösung für dieses Problem?

    nein, aber ich könnte mir verschiedene Ansätze vorstellen.

    * Erstelle ein Histogramm der Buchstaben-Häufigkeiten. Ich vermute, dass das
       einen Rückschluss auf die Sprache zulässt, zumindest Wahrscheinlichkeiten
       für Sprachen.

    * Modifiziere die obige Idee, erstelle das Histogramm aber nicht nach einzelnen
       Buchstaben, sondern nach typischen Buchstabengruppen.

    * Durchsuche den Text nach bestimmten, für eine Sprache charakteristischen
       kurzen Wörten wie "sich", "und", "ein", "the", "but", "sans", "alors", ...

    * Lass ein Dictionary mit verschiedenen voreingestellten Sprachen auf den Text
       los und schau nach, bei welcher Voreinstellung die wenigsten Fehler auftreten.

    Das wären zumindest mal ein paar Ansätze, die mir spontan einfallen.

    Ciao,
     Martin

    --
    Lieber arm dran als Arm ab.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. * Erstelle ein Histogramm der Buchstaben-Häufigkeiten. Ich vermute, dass das
         einen Rückschluss auf die Sprache zulässt, zumindest Wahrscheinlichkeiten
         für Sprachen.

      * Modifiziere die obige Idee, erstelle das Histogramm aber nicht nach einzelnen
         Buchstaben, sondern nach typischen Buchstabengruppen.

      * Durchsuche den Text nach bestimmten, für eine Sprache charakteristischen
         kurzen Wörten wie "sich", "und", "ein", "the", "but", "sans", "alors", ...

      * Lass ein Dictionary mit verschiedenen voreingestellten Sprachen auf den Text
         los und schau nach, bei welcher Voreinstellung die wenigsten Fehler auftreten.

      Das wären zumindest mal ein paar Ansätze, die mir spontan einfallen.

      Das werden wohl auch die besten dafür sein.

      Allerdings hat man da ein ähnliches Problem wie bei regulären Ausdrücken

      Man stelle sich vor das Zitat im Zitat im Zitat wäre in einer anderen Sprache.

      Desweiteren die stellen Tippfehler wohl auch eine relativ große Fehlerquelle dar, eine Bekannte von mir hat arge Probleme das Word "nicht" andauernd falsch zu tippen, wenn sie recht schnell schreibt. nihct, nicth, usw.

      Für anderssprachige Zitate müsste man wohl einen Parser o.ä. heran ziehen.

      Den Tippfehlern kommt man annähernd auf die schliche, wenn man zum einen die Anzahl der verschiedenen Buchstaben vergleicht und eventuell auch noch die Levenstein-Distanz berücksichtigt.

      Oder (wie es Google macht, IIRC) erstmal das Wort in Lautschrift umwandeln und dann das korrekt geschriebene Wort ermitteln und dann damit durchlaufen.

      Ouh, und warum ich eigentlich antworten wollte, jetzt aber fast wieder vergessen hab:

      Wenn die Fehlerquoten der verschiedenen Sprachen zu nah bei einander liegen, könnte man doch eigentlich den Accept-Language hinzuziehen oder? Ich meine die meisten werden wohl in den Browser in ihrer Muttersprache eingestellt haben und wahrscheinlich auch in der (oder englisch) schreiben.

      MfG
      bubble

      --
      If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
      1. Hallo,

        Oder (wie es Google macht, IIRC) erstmal das Wort in Lautschrift umwandeln und dann das korrekt geschriebene Wort ermitteln und dann damit durchlaufen.

        kann man die Lautschrift ermitteln, ohne die Sprache zu kennen?

        Gruß
        Kalk

        1. Hi,

          Oder (wie es Google macht, IIRC) erstmal das Wort in Lautschrift umwandeln und dann das korrekt geschriebene Wort ermitteln und dann damit durchlaufen.

          kann man die Lautschrift ermitteln, ohne die Sprache zu kennen?

          ggf. nicht mal, wenn man die Sprache kennt:

          Yesterday, I read a book.
          Today, I read a book.
          I read a book.

          Wie lautet die Lautschrift für das "read" im dritten Satz? So wie im ersten oder so wie im zweiten?

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
          1. Hallo,

            Yesterday, I read a book.
            Today, I read a book.
            I read a book.

            Wie lautet die Lautschrift für das "read" im dritten Satz? So wie im ersten oder so wie im zweiten?

            schreib' doch: "I'm reading a book", dann ists eindeutig. :)

            scnr
            Kalk

          2. Oder (wie es Google macht, IIRC) erstmal das Wort in Lautschrift umwandeln und dann das korrekt geschriebene Wort ermitteln und dann damit durchlaufen.

            kann man die Lautschrift ermitteln, ohne die Sprache zu kennen?

            Das war darauf bezogen, wenn man das Wort X für die Sprache Y testet und nichts im Wörterbuch findet, so könnte man für Sprache Y dann probieren, dass Wort Z (welches X sein sollte) via Lautschrift zu finden und dann auf Wort Z zu testen.

            ggf. nicht mal, wenn man die Sprache kennt:

            Yesterday, I read a book.
            Today, I read a book.
            I read a book.

            Wie lautet die Lautschrift für das "read" im dritten Satz? So wie im ersten oder so wie im zweiten?

            Dann findet man halt mehrere Lautschriften und hat ein paar mehr Wörter zu testen, falls unterschiedliche Wörter herauskommen (mit unterschiedlichen meine ich rein von der Zeichenfolge her)

            Im großen und ganzen glaube ich aber, dass das ganze generell ein wenig overhead ist :D

            MfG
            bubble

            --
            If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
      2. Hallo,

        eine Bekannte von mir hat arge Probleme das Word "nicht" andauernd falsch zu tippen, wenn sie recht schnell schreibt. nihct, nicth, usw.

        ja, genau diese Buchstabenfolge ist bei mir auch ein häufiger Kandidat für Tippfehler. Besonders die Variante "nihct" kommt bei mir oft vor. Interessant finde ich in dem Zusammenhang, dass mir solche Tippfehler, die durch feinmotorische Pannen der Finger entstehen, bei englischer Sprache wesentlich seltener passieren. Anscheinend ist das Tatsaturlayout auf Buchstabensequenzen wie "ight" oder "the" besser abgestimmt als auf die deutschen Kombinationen wie etwa "icht".

        Und den Tippfehler beim Wort "Tastatur" im obigen Absatz lasse ich bewusst stehen - das ist nämlich auch einer, der mir häufiger passiert.

        Für anderssprachige Zitate müsste man wohl einen Parser o.ä. heran ziehen.

        Oder davon ausgehen, dass fremdsprachige Zitate nur einen geringen Prozentsatz des gesamten Textes ausmachen, der das Ergebnis zwar ein wenig verschmiert, also unscharf macht, aber nur geringfügig verändert.

        Den Tippfehlern kommt man annähernd auf die schliche, wenn man zum einen die Anzahl der verschiedenen Buchstaben vergleicht und eventuell auch noch die Levenstein-Distanz berücksichtigt.

        Nein. Wie die beiden Folgeposter schon gezeigt haben, muss man zuerst die Sprache kennen, um von der Schreibweise auf die Aussprache schließen zu können, also ein klassisches Henne-Ei-Problem. Und selbst mit Kenntnis der Sprache geht es nicht immer gut.

        Oder (wie es Google macht, IIRC) erstmal das Wort in Lautschrift umwandeln und dann das korrekt geschriebene Wort ermitteln und dann damit durchlaufen.

        Das erscheint mir doch weit hergeholt. Ich vermute, die Fehlertoleranz bei der Eingabe rührt eher daher, dass Google parallel mehrere leicht veränderte Varianten der Eingaben sucht, und bei einer nennenswerten Trefferquote "neben der Spur" die allseits bekannte Frage einblendet: "Did you mean ..."

        Wenn die Fehlerquoten der verschiedenen Sprachen zu nah bei einander liegen, könnte man doch eigentlich den Accept-Language hinzuziehen oder? Ich meine die meisten werden wohl in den Browser in ihrer Muttersprache eingestellt haben und wahrscheinlich auch in der (oder englisch) schreiben.

        Das fällt aus, wenn man, wie im OP beschrieben, "Content schon vorliegen hat".

        Ciao,
         Martin

        --
        Lieber eine Stumme im Bett, als eine Taube auf dem Dach.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    2. Hallo!

      * Durchsuche den Text nach bestimmten, für eine Sprache charakteristischen
         kurzen Wörten wie "sich", "und", "ein", "the", "but", "sans", "alors", ...

      So mache ich das zur Zeit. Leider hat sich diese Methode als relativ fehleranfällig erwiesen. Danke für deine anderen Vorschläge

  3. હેલો

    ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist.

    Google kann das.

    બાય

    --
     .
    ..:
    1. Hallo!

      ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist.

      Google kann das.

      kostet aber, soweit ich informiert bin...?

      1. હેલો

        Google kann das.
        kostet aber, soweit ich informiert bin...?

        Tatsächlich, schade. Gehört zu den wenigen APIs, die Geld kosten.

        બાય

        --
         .
        ..:
  4. @@Mechthild:

    nuqneH

    ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist.

    Ich hab irgendwie schon mal von einer automatischen Erkennung der Sprache eines Textes gehört; mir ist so, als wäre es sogar hier im Forum gewesen. Vielleicht gibt das Archiv was her?

    Ansonsten hab ich die Frage mal an die W3C-Mailingliste www-international weitergeleitet. Siehe dortige Antworten. (Leider nicht besonders nutzerfreundlich, das Web-Interface.)

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. @@Mechthild:

      nuqneH

      ich habe Content vorliegen, bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist.

      Ich hab irgendwie schon mal von einer automatischen Erkennung der Sprache eines Textes gehört; mir ist so, als wäre es sogar hier im Forum gewesen. Vielleicht gibt das Archiv was her?

      das probiere ich nochmal aus, danke für den Tip.

      Ansonsten hab ich die Frage mal an die W3C-Mailingliste www-international weitergeleitet. Siehe dortige Antworten. (Leider nicht besonders nutzerfreundlich, das Web-Interface.)

      Das ist ja mal freundlich von dir! Ich google gleich mal nach MOzilla chardet, danke!

      1. Hallo!

        Ich google gleich mal nach MOzilla chardet, danke!

        Das dürfte kaum das sein, was du suchst.
        AFAIS dient das zur Erkennung des Charsets und nicht der Sprache.

        Gruß Gunther

        PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.
        Es würde ggf. auch helfen, wenn du uns mal verraten könntest, um "was" (welche Art, Herkunft, Thema etc.) für Texte es sich handelt.

        1. Hallo,

          PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.

          Türkisch, Finnisch und Ungarisch wären drei weitere Sprachen, die mir da ganz spontan einfallen (und das sind sicher keine Varianten von Deutsch). Wobei Finnisch und Ungarisch bekanntlich eng verwandt sind. Aber ich bin relativ zuversichtlich, dass es da noch weitere gibt. Ich erinnere mich dunkel, dass zumindest 'ä' auch im Schwedischen vorkommt.

          Es würde ggf. auch helfen, wenn du uns mal verraten könntest, um "was" (welche Art, Herkunft, Thema etc.) für Texte es sich handelt.

          Inwiefern könnte das helfen?

          So long,
           Martin

          --
          Niemand lebt allein von seinen Träumen.
          Aber wer träumt, lebt noch.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. [latex]Mae  govannen![/latex]

            PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.

            Türkisch, Finnisch und Ungarisch wären drei weitere Sprachen, die mir da ganz spontan einfallen (und das sind sicher keine Varianten von Deutsch). Wobei Finnisch und Ungarisch bekanntlich eng verwandt sind. Aber ich bin relativ zuversichtlich, dass es da noch weitere gibt. Ich erinnere mich dunkel, dass zumindest 'ä' auch im Schwedischen vorkommt.

            Ja. Ümläüte (Wikipedia).

            Stur lächeln und winken, Männer!

            Kai

            --
            Array(16).join("x" - 1) + " Batman!"
            Unsere Identität entnehmen Sie bitte dem beigefügten Auszug aus den Personenstandsbüchern. Gegen die Assimilierung in unser Kollektiv ist nach dem ABGB (§666, Abs. 3/IV) kein Rechtsmittel zulässig. Wir bitten um Ihr Verständnis.
            SelfHTML-Forum-Stylesheet
          2. @@Der Martin:

            nuqneH

            Ich erinnere mich dunkel, dass zumindest 'ä' auch im Schwedischen vorkommt.

            Im Slowakischen auch (im Gegensatz zum Tschechischen).

            Qapla'

            --
            „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          3. Hallo,

            PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.

            Türkisch, Finnisch und Ungarisch wären drei weitere Sprachen, die mir da ganz spontan einfallen (und das sind sicher keine Varianten von Deutsch). Wobei Finnisch und Ungarisch bekanntlich eng verwandt sind. Aber ich bin relativ zuversichtlich, dass es da noch weitere gibt. Ich erinnere mich dunkel, dass zumindest 'ä' auch im Schwedischen vorkommt.

            Estnisch scheint auch ein heißer Kandidat zu sein. Aber es werden sich doch weitere Kriterien finden lassen, danach weiter zu unterscheiden. Z.B. noch das ß. Außerdem gibt es im Deutschen keine Doppelumlaute, oder? Im Finnischen jedoch häufig. Usw.

            Gruß
            Kalk

            1. Hi,

              Aber es werden sich doch weitere Kriterien finden lassen, danach weiter zu unterscheiden. Z.B. noch das ß.

              ja, das ist AFAIK im Deutschen einzigartig - allerdings wird es in der Variante "Schweiz" gar nicht verwendet.

              Außerdem gibt es im Deutschen keine Doppelumlaute, oder? Im Finnischen jedoch häufig.

              Stimmt. Als Schüler fand ich es immer sehr merkwürdig, dass beim Diminutiv von Worten mit Doppelvokal der daraus entstehende Umlaut nur einmal geschrieben wird (z.B. Paar/Pärchen, Boot/Bötchen).

              Im Finnischen ist vor allem Doppel-ä sehr häufig, und Finnisch zeigt ebenso eine auffällige Häufung von Doppel-k. Finnisch dürfte überhaupt beim Buchstaben-Histogramm deutlich auffallen.

              Ciao,
               Martin

              --
              Husten kann böse Folgen haben.
              Besonders im Kleiderschrank.
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Hi,

                Stimmt. Als Schüler fand ich es immer sehr merkwürdig, dass beim Diminutiv von Worten mit Doppelvokal der daraus entstehende Umlaut nur einmal geschrieben wird (z.B. Paar/Pärchen, Boot/Bötchen).

                Die Umlaute sind ja nur Kurzschreibweisen für ae, oe, ue - es bleibt also eigentlich ein Doppelvokal.
                Bei ganz alten Druckwerken sieht man es manchmal, daß über dem a, o, u ein kleines e steht (etwas später dann liegt das kleine e über dem a, o, u).
                Mit zunehmender Verkleinerung der Druck-Lettern blieben dann von dem e irgendwann nur noch 2 kleine Striche bzw. Punkte übrig.

                Aus Platzgründen war das bei Großbuchstaben nicht möglich - es gibt einige Ortsnamen, die immer noch mit Ae, Oe, Ue beginnen (Aegidienberg, Oettingen, Uelzen ...)

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                O o ostern ...
                Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
                1. @@MudGuard:

                  nuqneH

                  es gibt einige Ortsnamen, die immer noch mit Ae, Oe, Ue beginnen (Aegidienberg, Oettingen, Uelzen ...)

                  Oder Familiennamen, die ae, oe, ue in sich haben. ;-)

                  Qapla'

                  --
                  „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
                  1. Hi,

                    es gibt einige Ortsnamen, die immer noch mit Ae, Oe, Ue beginnen (Aegidienberg, Oettingen, Uelzen ...)
                    Oder Familiennamen, die ae, oe, ue in sich haben. ;-)

                    das liegt aber nicht am fehlenden Platz über den Großbuchstaben.
                    Da ist eher die Frage, ob man als Familie jeden neumodischen Quatsch wie Umlaute gleich mitmachen muß ... ;-)

                    cu,
                    Andreas

                    --
                    Warum nennt sich Andreas hier MudGuard?
                    O o ostern ...
                    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
                    1. @@MudGuard:

                      nuqneH

                      Da ist eher die Frage, ob man als Familie jeden neumodischen Quatsch wie Umlaute gleich mitmachen muß ... ;-)

                      Oder als Individuum jeden neumodischen Quatsch wie Doppel-s. ;-)

                      Qapla'

                      --
                      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
                      1. Hi,

                        Oder als Individuum jeden neumodischen Quatsch wie Doppel-s. ;-)

                        Das müssen Sie mir jetzt mal erklären ;-)
                        Ich verweigere das Doppel-s nicht - ich verwende es dort, wo es hingehört, nicht dort, wo einige Sprachdeformer [sic!] meinen, daß es stehen müßte.

                        cu,
                        Andreas

                        --
                        Warum nennt sich Andreas hier MudGuard?
                        O o ostern ...
                        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        2. હેલો

          PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.

          Geschätzte 6.500 Sprachen nach Umlauten zu Unterscheiden dürfte sich als etwas schwieriger erweisen.

          બાય

          --
           .
          ..:
          1. હેલો

            PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.

            Geschätzte 6.500 Sprachen nach Umlauten zu Unterscheiden dürfte sich als etwas schwieriger erweisen.

            Davon ist aber übrhaupt nicht die Rede.
            Zitat OP (Ausgangsposting):"... bei dem automatisiert erkannt werden soll, ob es ein deutscher Text ist.".

            Es geht also lediglich darum zu erkennen, ob der vorliegende Text auf Deutsch ist.

            Gruß Gunther

            1. હેલો

              Es geht also lediglich darum zu erkennen, ob der vorliegende Text auf Deutsch ist.

              Ich hatte angenommen, die anderen Texte sollen auch erkannt werden.

              બાય

              --
               .
              ..:
          2. @@Malcolm Beck´s:

            nuqneH

            PS: Wenn Wörter mit Umlauten im Text vorkommen, dürfte es sich mit ziemlicher Sicherheit um eine "Variante" von Deutsch handeln, denn AFAIK gibt es Umlaute nur im Deutschen.

            Geschätzte 6.500 Sprachen nach Umlauten zu Unterscheiden dürfte sich als etwas schwieriger erweisen.

            Wieviele davon haben überhaupt eine Schriftsprache?

            Einige Sprachen kan man tatsächlich anhand characteristischer Zeichen erkennen.

            Zum ersten an der Schrift: Griechische Schrift wird wohl nur für Griechisch verwendet. Ebenso japanische (Kanji + Hiragana + Katakana) für Japanisch. (Soll heißen: Wenn außer Kanji auch Hiragana- oder Katakana-Zeichen vorkommen, dann ist es Japanisch und nicht etwa Chinesisch.) Armenisch, Thai, …

            Aber auch bei lateinischer Schrift gibt es Unikate: ż im Polnischen (ł gibt es auch in den sorbischen Sprachen), ů im Tschechischen, ő im Ungarischen, Zeichen mit mehreren diakritischen Zeichen im Vietnamesischen.

            Und wie bereits gesagt: ä, ö, ü gehören nicht dazu. Aber ß.

            Qapla'

            --
            „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
            1. હેલો

              Einige Sprachen kan man tatsächlich anhand characteristischer Zeichen erkennen.

              Viele Zeichen werden mir (auf meinem normalen Rechner) garnicht angezeigt, weil ich entsprechende Sprachpakete nicht installiert habe. Wie ist das bei Servern? Müsste man nicht alle Sprachen auf den Server installieren, um überhaupt mit Zeichen arbeiten zu können? Wobei man die ja eigentlich auch bräuchte, wenn man mit Worten arbeitet?

              Ansich stimme ich dir zu, nur, um etwas gescheites mit Zeichenvergleich auf die Beine zu stellen, wird wohl, selbst wenn wir nur von 200 Sprachen ausgehen, eine Jahresaufgabe für eine einzelne Person. Bei reinem Wörtervergleich wird's vermutlich „Die Unendliche Geschichte“.

              બાય

              --
               .
              ..:
              1. @@Malcolm Beck´s:

                nuqneH

                Viele Zeichen werden mir (auf meinem normalen Rechner) garnicht angezeigt, weil ich entsprechende Sprachpakete nicht installiert habe. Wie ist das bei Servern?

                Wird auf Servern denn irgendwas *angezeigt*?

                Müsste man nicht alle Sprachen auf den Server installieren, um überhaupt mit Zeichen arbeiten zu können?

                Nein. Mit Zeichen (d.h. mit Codepoints, also Bytesequenzen) kann man immer arbeiten. Nur zur Darstellung braucht man Schriftarten. Fehlen dir ein paar Grundlagen?

                Ansich stimme ich dir zu, nur, um etwas gescheites mit Zeichenvergleich auf die Beine zu stellen, wird wohl, selbst wenn wir nur von 200 Sprachen ausgehen, eine Jahresaufgabe für eine einzelne Person.

                Nein. Ein Algorithmus, um alle vorkommenden Zeichen und ihre Kombinationen zu zählen, ist schnell geschrieben. Sich damit Sprachcharakteristiken zu erstellen, kann auch automatisiert werden.

                Qapla'

                --
                „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
            2. હેલો

              Wieviele davon haben überhaupt eine Schriftsprache?

              Wenn wir Wikipedia glauben schenken, noch viel zu viele. Die Japanischen Zeichen gleichen den Chinesischen sehr, nur haben die Japaner, wenn ich mich recht erinnere, um die 20 Zeichen mehr (das sind die Zeichen mit den schönen Formen, die im Chinesischen nicht existieren). Wie willst du nun einen Chinesischen Text von einem Japanischen unterscheiden? Du darfst sie nicht in die gleiche Schublade stecken, da werden die echt pissig.

              Im Türkischen Alphabet (Krass, die haben kein „W“, arme Türken ;)) sind alle Zeichen, die es im Deutschen gibt, und ein paar mehr. Wie willst du nun einen Deutschen Text von einem Türkischen unterscheiden?

              બાય

              --
               .
              ..:
              1. Tach!

                Wenn wir Wikipedia glauben schenken, noch viel zu viele. Die Japanischen Zeichen gleichen den Chinesischen sehr, nur haben die Japaner, wenn ich mich recht erinnere, um die 20 Zeichen mehr (das sind die Zeichen mit den schönen Formen, die im Chinesischen nicht existieren). Wie willst du nun einen Chinesischen Text von einem Japanischen unterscheiden? Du darfst sie nicht in die gleiche Schublade stecken, da werden die echt pissig.

                Die Japaner haben sich die traditionellen chinesischen Zeichen genommen. Vielleicht haben sie hier und da mal ein paar Striche geändert. Zusätzlich haben sie die typischen Kringel-Zeichen Hiragana und die Wenig-Strich-Zeichen Katakana in Verwendung. Und das mixen sie fleißig.

                In der VR China gab es mal eine Vereinfachung, bei der eine Menge Striche weggefallen sind. Die traditionellen Zeichen werden weiterhin in einigen Gegenden verwendet. Damit gibt es nun Chinesisch traditionell, Chinesisch vereinfacht, Japanisch.

                Im Türkischen Alphabet (Krass, die haben kein „W“, arme Türken ;)) sind alle Zeichen, die es im Deutschen gibt, und ein paar mehr. Wie willst du nun einen Deutschen Text von einem Türkischen unterscheiden?

                Der deutsche hat nicht so viele ü.

                dedlfix.

              2. @@Malcolm Beck´s:

                nuqneH

                Wenn wir Wikipedia glauben schenken, noch viel zu viele.

                Warum „zu viele“?

                Es war aber auch nicht die Frage, wie viele Schriften es gibt, sondern wieviele der rund 6500 Sprachen überhaupt geschrieben werden (und nicht etwa nur gesprochen).

                Die Japanischen Zeichen gleichen den Chinesischen sehr

                Di Kanji, ja.

                nur haben die Japaner, wenn ich mich recht erinnere, um die 20 Zeichen mehr (das sind die Zeichen mit den schönen Formen, die im Chinesischen nicht existieren).

                Mehr als 20. Hiragana und Katakana, wie ich bereits sagte.

                Wie willst du nun einen Chinesischen Text von einem Japanischen unterscheiden?

                Anhand der Hiragana- und Katakana-Zeichen, wie ich bereits sagte.

                (Krass, die haben kein „W“, arme Türken ;))

                Die Tschechen auch nicht. Dafür haben die Polen kein V. Wozu sollte man auch beide Zeichen brauchen?

                Wie willst du nun einen Deutschen Text von einem Türkischen unterscheiden?

                Anhand der Häufigkeit der Zeichen. Auch das sagte ich schon.

                ğ, ı und ş sind im Deutschen recht selten.

                Qapla'

                --
                „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
                1. હેલો

                  Wie willst du nun einen Deutschen Text von einem Türkischen unterscheiden?

                  Anhand der Häufigkeit der Zeichen. Auch das sagte ich schon.

                  ğ, ı und ş sind im Deutschen recht selten.

                  Du kannst aber nicht davon ausgehen, dass in jedem Satz Zeichen vorkommen, die es Typischerweise nur in einer einzigen Sprache gibt. Da nützt es auch nichts, die Zeichen zu zählen.

                  Schwieriger wird's, wenn man nur mal eben ein Wort checken will: „Araba“, welche Sprache ist das? Google erkennt es sofort.

                  બાય

                  --
                   .
                  ..:
                  1. @@Malcolm Beck´s:

                    nuqneH

                    Du kannst aber nicht davon ausgehen, dass in jedem Satz Zeichen vorkommen, die es Typischerweise nur in einer einzigen Sprache gibt.

                    Natürlich wird die Treffsicherheit umso besser, je länger der fragliche Text ist.

                    Da nützt es auch nichts, die Zeichen zu zählen.

                    Sagte ich was von Zeichenkombinationen zählen? Ja, sagte ich.

                    Qapla'

                    --
                    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
              3. Hi,

                Im Türkischen Alphabet (Krass, die haben kein „W“, arme Türken ;)) sind alle Zeichen, die es im Deutschen gibt

                Du widersprichst Dir hier selbst.

                Wie willst du nun einen Deutschen Text von einem Türkischen unterscheiden?

                Am Vorhandensein eines w (oder x, q, ä, ß). Bzw. am Vorhandensein von ç, ğ, oder ş.

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                O o ostern ...
                Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
                1. હેલો

                  Du widersprichst Dir hier selbst.

                  Nein, nicht wirklich.

                  Wie willst du nun einen Deutschen Text von einem Türkischen unterscheiden?

                  Am Vorhandensein eines w (oder x, q, ä, ß). Bzw. am Vorhandensein von ç, ğ, oder ş.

                  Du kannst aber nicht davon ausgehen, dass in jedem Wort/Satz Zeichen/Zeichenkombinationen vorkommen, die es Typischerweise nur in einer einzigen Sprache gibt. Als ich das von dir oben zitierte schrieb, hatte ich immer diesen Gedanken im Hinterkopf.

                  બાય

                  --
                   .
                  ..:
                  1. Hi,

                    Du widersprichst Dir hier selbst.

                    Nein, nicht wirklich.

                    Doch:

                    Im [> Türkischen Alphabet <] (Krass, die haben kein „W“, arme Türken ;)) sind alle Zeichen, die es im Deutschen gibt

                    Du sagst, daß im türkischen Alphabet alle Zeichen drin sind, die es im deutschen Alphabet gibt. Und Du sagst gleichzeitig, daß sie kein W haben. Das steht im Widerspruch zur ersten Aussage, da es im deutschen Alphabet ein W gibt.

                    cu,
                    Andreas

                    --
                    Warum nennt sich Andreas hier MudGuard?
                    O o ostern ...
                    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
                    1. હેલો

                      Nein, nicht wirklich.

                      Doch:

                      Nein, immer noch nicht.

                      Warum beachtest du nicht den Absatz, den ich hinten dran gehangen hatte? Ich habe doch geschrieben, wie ich darauf kam?

                      Wenn du was sagen willst, dann bitte zum Gesamten Post:

                      Du kannst aber nicht davon ausgehen, dass in jedem Wort/Satz Zeichen/Zeichenkombinationen vorkommen, die es Typischerweise nur in einer einzigen Sprache gibt. Als ich das von dir oben zitierte schrieb, hatte ich immer diesen Gedanken im Hinterkopf.

                      Da bleibe ich dabei, und jetzt bin ich mir sogar Sicher, dass es mit Zeichen und Zeichenkombis Praktisch unmöglich ist, eine Sprache _zuverlässig_* zu erkennen. So!

                      Wird schon seinen Grund haben, warum Google bei über 30 API-Diensten für die Übersetzungstools Kohle will. Weil es eben nicht so Trivial ist, wie hier dargestellt. Die meisten Dienste lassen sich zumindest begrenzt Kostenlos nutzen, Translator überhaupt nicht.

                      Translate API, Courtesy limit: 0 characters/day

                      બાય
                      * Eine Erkennunsgrate von vllt. 70-80%, die man damit treffen _könnte_, ist nicht zuverlässig

                      --
                       .
                      ..:
                      1. Hi,

                        Nein, immer noch nicht.

                        Du redest wirr.

                        Wenn du was sagen willst, dann bitte zum Gesamten Post:

                        Du schreibst mir nicht vor, wozu ich einen Kommentar abzugeben habe und wozu nicht.

                        Aber da Du wirr redest, klinke ich mich hier aus, hat ja keinen Sinn.

                        cu,
                        Andreas

                        --
                        Warum nennt sich Andreas hier MudGuard?
                        O o ostern ...
                        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
                        1. હેલો

                          Du redest wirr.

                          Wenn du meinst ...

                          Wenn du was sagen willst, dann bitte zum Gesamten Post:
                          Du schreibst mir nicht vor, wozu ich einen Kommentar abzugeben habe und wozu nicht.

                          Natürlich nicht, war ja auch nur eine bitte ;)

                          Aber da Du wirr redest, klinke ich mich hier aus, hat ja keinen Sinn.

                          Is klar.

                          બાય

                          --
                           .
                          ..:
  5. Hallo,

    es gibt das PEAR-Package "Text_LanguageDetect"; es wird zwar offensichtlich nicht mehr weiterentwickelt, aber evtl. ist es dennoch brauchbar oder ein Ansatz für eine eigene Entwicklung.

    Gruss,
    Worf

  6. @@Mechthild:

    nuqneH

    Ich habe mir dazu eine kleine Funktion gebastelt, die auf regex und gängigen Begriffen basiert.

    IIRC arbeiten gängige Lösungen nicht auf Wörtern, sondern auf Heuristiken von Zeichen und Zeichenkombinationen.

    So dürfte die relative Häufigkeit der einzelnen Buchstaben für jede Sprache anders ausfallen. Treffsicherer wird die Erkennung, wenn auch jeweils 2 Zeichen (die Kombination th bspw. dürfte im Englischen häufiger auftreten als in anderen Sprachen) oder 3 Zeichen betrachtet werden (die Kombination sch bspw. dürfte im Deutschen häufiger auftreten als in anderen Sprachen).

    Also im eigenen Text die relativen Häufigeiten der Buchstaben und Buchstabenkombinationen aus 2, 3 Zeichen bestimmen und mit den charakteristischen Werten verschiederner Sprachen (ermittelt aus vielen Texten) vergleichen dürfte mit einiger Sicherheit die Sprache des Textes ergeben.

    Qapla'

    PS: Das kam heute übern Ticker: Context of Diacritics

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  7. Hi,

    ein möglicher Ansatz ist wohl N-Gramm.

    Siehe u.a.:

    Gruß Gunther