Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sprache erkennen (https://www.delphipraxis.net/86205-sprache-erkennen.html)

XHelp 10. Feb 2007 21:45


Sprache erkennen
 
Hallo!

Ich muss ein Programm machen, welches die Sprache von einem Text (deutsch, englisch etc.) erkennt.
Bis jetzt habe ich 2 Möglichkeiten gefunden:

1. Für jede Sprache, die das Programm erkennen muss, 10-20 am häufigsten benutzen Wörter spreichern und dann einfach in Text dannach suchen.
2. Nach sprachspezifischen Buchstaben suchen: wenn z.b. viele kyrilische Zeichen im Text sind, dann kann es schon mal kein Deutsch sein. So kann man die Sprache nicht genau erkennen, aber zumindestens die Sprachgruppe.

Hat jemand weitere Ideen?

Danke im Vorraus!

JasonDX 10. Feb 2007 22:01

Re: Sprache erkennen
 
Buchstaben(tupel)haeufigkeiten koennten auch Aufschluss geben. D.h. welche Buchstaben in einer Sprache sehr oft genutzt werden, welche weniger, welche Buchstabenkombinationen oft vorkommen, ect. Dabei ist es nicht wichtig zu vergleichen, welche Buchstaben genau wie oft vorkommen, sondern das Hauptaugenmerk auf bestimmte Buchstaben legen. Das y ist bspw. im Englischen mehr benutzt als im Deutschen, waehrend Umlaute ein relativ sicheres Zeichen der deutschen Sprache sind.
Und was auch ein grosser Unterschied zwischen Deutsch und Englisch ist: Im Englischen schreibt man fast alles klein, nur Eigennamen nicht, im Deutschen beginnt min. jedes Nomen mit einem Grossbuchstaben ;)

Eine coole Idee waere folgendes: du nimmst dir beliebige Woerter aus dem Text, und fuegst sie in die url einer Suchmaschine ein. bspw. fuer google:
Code:
http://www.google.com/search?q=wort1+wort2+wort3&lr=lang_sprache
fuer Sprache setzt du dann bspw. de fuer Deutschland, en fuer Englisch ect. ein, und vergleichst, wo du am meisten Treffer findest. Das ist dann ziemlich sicher die Sprache, in der der Text geschrieben ist. Dafuer braeuchte man aber eine Internetverbindung.

greetz
Mike

Meflin 10. Feb 2007 22:05

Re: Sprache erkennen
 
Moin,

http://xxx.uni-augsburg.de/PS_cache/...08/0108530.pdf das könnte dich interessieren...

Vielleicht lässt sich auch irgendwie die Funktionalität der ctfmon.exe gebrauchen, die bei Windows von Haus aus dabei ist und genau das macht (also Sprache erkennen, wie weiß ich nicht, besonders gut jedenfalls nicht :roll: )...


XHelp 10. Feb 2007 23:04

Re: Sprache erkennen
 
Also was Internet betrifft, habe ich eine andere Möglichkeit schon umgesetzt.
Mal angenomen ich vermute, dass der Text auf Italienisch ist. Ich übersetze den Text mit Bubelfish von Italienisch > Englisch und gucke, ob sich viel verändert hat.

Was Windowsfunktionen betrifft, fällt das aus, weil das Programm in Java sein soll.

Chris1986 11. Feb 2007 00:53

Re: Sprache erkennen
 
Wie lang ist denn so ein Text?
Wenn er relativ lang ist dürfte deine erste Idee gut funktionieren. Wichtig ist, das du mit Gewichten arbeitest und häufig auftretende Wörter / Buchstabentupel entsprechend stärker berücksichtigst. Sonst kann es z.B. bei Eigennamen oder Zitaten zu problemen kommen.

LG
Christian

k-weddige 12. Feb 2007 14:53

Re: Sprache erkennen
 
Häufige Worte, Buchstabengruppen, ect. sind viel zu aufwändig.
Wenn man nur Häufigkeit der einzelnen Buchstaben nimmt, reicht das vollkommen aus.

Sowas habe ich in Kryptix verwendet. Der kennt zwar nur DE und EN, ab ordnet auch caesarverschlüsselte Texte richtig zu. Die Trefferwskt. ist IMHO sehr gut. :arrow: In 99% aller Anendungen kannst du dich auf die Buchstabenverteilung verlassen.

Konstantin


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz