/ / Sprache der Website-Inhalte festlegen - sprachunabhängig

Bestimmen Sie die Sprache der Website-Inhalte - sprachunabhängig

Für eine meiner Anwendungen muss ich die Sprache einer Website anhand des Inhalts ermitteln.

Ich würde gerne Ihre Meinung darüber wissen, wie man ein Skript für die Sprache bestimmt. Welche Methoden würden Sie verwenden? Welche Skriptsprache? usw.

In diesem Moment habe ich mit ein paar Methoden Code in PHP geschrieben;

  • Bestimmen Sie die Sprache anhand des Meta-Tags Content-Language
  • Bestimmen Sie die Sprache, indem Sie Titel, Beschreibung und Schlüsselwörter abrufen und vergleichen Sie diese mit Wortlisten wie Englisch, Niederländisch, Deutsch
  • Ermitteln Sie die Sprache anhand des HTML-Sprachentags "
  • Bestimmen Sie die Sprache, indem Sie den gesamten Seiteninhalt (getrennte Wörter in Array) abrufen und diese mit den Wortlisten mit array_search vergleichen (das Array mit der höchsten übereinstimmenden Sprache ist die Sprache des Inhalts).
  • Bestimmen Sie die Sprache anhand der Sprachüberschriften

Diese Schritte mache ich jetzt, um die Sprache zu bestimmen, auch genau in dieser Reihenfolge. Wenn es einer Methode gelingt, die Sprache zu bestimmen, bringe ich die nächsten Funktionen auf.

Diese Methode funktioniert, ist aber nicht immer so genau. Gibt es jemanden, der mir mehr über Dinge erzählen kann, die ich überprüfen kann? Vielleicht eine andere Möglichkeit, die Sprache zu überprüfen (ich möchte keine APIs verwenden).

(am Ende muss ich diese Sprachen auf eine MySql-Datenbank setzen)

Wir freuen uns auf ein paar Vorschläge!

Danke im Voraus.

Nick

Antworten:

0 für die Antwort № 1

Das hängt davon ab, wie lange dein Text ist ..

Analysieren Sie zunächst alle HTML-Dateien und extrahieren Sie nur den Text.

Wenn es lang ist, können Sie eine billige Methode verwendensuche nur nach stoppwörtern. Holen Sie sich eine Liste von Stoppwörtern für jede Sprache und ermitteln Sie, wie viele davon in Ihrem Text enthalten sind. Sie können eine schöne Liste von Stoppwörtern im NLTK-Corpus (Python) erhalten und einige gute Funktionen nutzen, um Sätze und Wörter zu kennzeichnen.

import nltk

ENGLISH_STOPWORDS = set(nltk.corpus.stopwords.words("english"))
NON_ENGLISH_STOPWORDS = set(nltk.corpus.stopwords.words()) - ENGLISH_STOPWORDS

STOPWORDS_DICT = {lang: set(nltk.corpus.stopwords.words(lang)) for lang in
nltk.corpus.stopwords.fileids()}

def get_language(text):
words = set(nltk.wordpunct_tokenize(text.lower()))
return max(((lang, len(words & stopwords)) for lang, stopwords in STOPWORDS_DICT.items()),
key = lambda x: x[1])[0]
lang = get_language("This is my test text")

Weitere Erklärung zu http://www.algorithm.co.il/blogs/programming/python/cheap-language-detection-nltk/

Wenn Sie durch Python + nltk gehen möchten, vergessen Sie nicht, nltk corpus nach der Installation herunterzuladen.

import nltk
nltk.download()