Web-API zum Abfragen von Worthäufigkeitsdaten

Es gibt viele Algorithmen, die auf vergleichender Worthäufigkeit basieren, die beim Clustering , der Schlüsselwortanalyse , tf-idf usw. verwendet werden.

Normalerweise müssen Sie Ihre eigenen Worthäufigkeiten aus Ihrem eigenen Korpus berechnen. Sehr große Korpora sind besser, aber das kostet natürlich viel Arbeit, Platz, Zeit usw. und lenkt von der anstehenden Aufgabe ab.

Ich frage mich, ob es Web-API-Anbieter gibt, die all dies für Sie erledigt haben und programmgesteuerten Zugriff auf Frequenzdaten über das Internet bereitstellen.

Anforderungen:

  • Englisch ist ein Muss, andere Sprachen sind ein großes Plus.
  • Kostenlos ist besser als bezahlt, offen ist besser als geschlossen.
  • Optionale Wortstammbildung und/oder Lemmatisierung wäre ein Plus, aber nicht erforderlich.
  • Alle Anforderungen für Registrierung, Drosselung, Tageslimits usw. sind in Ordnung.
  • Jedes Format ist in Ordnung, aber urlencoded und JSON werden erwartet.
  • Unicode-Unterstützung ist eine sehr starke Präferenz. (Sollte nicht bei Wörtern wie Café, naiv usw. in die Luft jagen.)
Tut mir leid, das sagen zu müssen, aber das würde definitiv den Rahmen dieser Seite sprengen. Bei "Softwareempfehlungen" geht es um die Empfehlung von Software , nicht um die Empfehlung von Anbietern/Diensten. Ich fürchte, das gilt auch für Ihre andere Frage, obwohl das vielleicht grenzwertig ist.
Wenn alles andere fehlschlägt, können Sie immer noch die Daten für den Google n-gram-Viewer ( books.google.com/ngrams ) herunterladen und Ihre eigene Benutzeroberfläche erstellen. Der Korpus ist groß.
@Izzy Das ist schade, denn das Fragen nach APIs ist auch bei Stackoverflow kein Thema (und vielleicht auch programrs.se und superuser.se, ich habe es nicht überprüft).
@JanDoggen: Ja, es ist zu groß, um es auf diesem Netbook oder auf den Smartphones und Tablets zu installieren, die die meisten App-Benutzer heutzutage zu haben scheinen. Es ist in Ordnung, wenn die Frage keine API findet, zumindest gibt es jetzt einen Ort zum Beobachten und Überwachen, falls eine erscheint, und andere Leute werden dies dank der Auffindbarkeit von Stack Exchange durch Google (ironischerweise) auch finden.
@Izzy: Dann interessiert Sie vielleicht die Frage, die ich mir speziell die Mühe gemacht habe, sie auf Meta zu stellen, um eine Gewissheit zu bekommen, dass sie zum Thema gehört, bevor ich weiterging und fragte!
Bitte unterscheiden Sie zwischen "Fragen nach einer API" (hier on-topic) und "Fragen nach einem Anbieter/einer Website" (off-topic). Einzelheiten finden Sie in meiner Antwort auf Ihre Frage zu Meta . Ihre Frage zu Meta suchte nach Klärung für den API-Teil – aber diese Frage hier gehört eher zur anderen: Ich frage mich, ob es Anbieter gibt , die ...
OK, wenn das das offizielle Wort zum Unterschied zwischen den Begriffen "Webdienst" und "Web-API" ist, dann werde ich ersteres entfernen, weil ich absolut nur etwas will, das programmierbar zugänglich ist, aber ich war mir nicht sicher, ob es Möglichkeiten gibt, auf einige Dienste zuzugreifen programmgesteuert, die weniger einfach sind als JSON-Aufrufe. Deshalb habe ich mich für beide Tags entschieden.
Unabhängig davon, ob Sie die Wörter API oder Service verwenden, scheint dies von Natur aus mehr mit dem Datensatz zu tun zu haben, mit dem die Software befasst ist.
Diese Seite ist also speziell für Software gedacht, die wenig oder gar keine Daten enthält? Das scheint mir eine ziemlich bizarre und unnatürliche Unterscheidung zu sein. Irgendeine pingelig Art, eine Ansicht oder Interpretation zu erzwingen. Das würde dazu führen, dass eine Menge Arten von Software nicht zum Thema gehören, einschließlich vieler Mappings, Rechtschreibprüfungen, IMEs, Flashcards, die mir spontan einfallen. Ich muss rennen, aber das ruft meiner Meinung nach nach einem Meta-Thema ...
super, das beantwortet die Frage nicht

Antworten (1)

Um die relative Häufigkeit des Wortes „Smartass“ in 1 Million Wörtern zurückzugeben, fragen Sie Folgendes ab:

https://api.datamuse.com/words?sp=smartass&md=f&max=1

Es gibt aus:

[{"word":"smartass","score":129630,"tags":["f:0.067229"]}]

Extrahieren Sie das Ergebnis aus dem zurückgegebenen json, z. B. mit python like (die Punktzahl ist NICHT die Anzahl):

import requests

_wait = 0.5

def get_freq(term):
    response = None
    while True:
        try:
            response = requests.get('https://api.datamuse.com/words?sp='+term+'&md=f&max=1').json()
        except:
            print 'Could not get response. Sleep and retry...'
            time.sleep(_wait)
            continue
        break;
    freq = 0.0 if len(response)==0 else float(response[0]['tags'][0][2:])
    return freq

Sie können dies 100.000 Mal am Tag anrufen . Es scheint, dass dies automatisch beibehalten wird, wenn Sie einen einzelnen Prozess ausführen, da die Antwort eine Verzögerung aufweist, sodass es ungefähr 100.000 Antworten pro Tag sind.

Die Zählungen stammen aus dem Google N-Gramm-Korpus.