Wie kann ich einem Wort „a“ und „an“ richtig voranstellen?

92

Ich habe eine .NET-Anwendung, in der bei einem bestimmten Substantiv das Wort "a" oder "an" korrekt vorangestellt werden soll. Wie würde ich das machen?

Bevor Sie glauben, dass die Antwort darin besteht, einfach zu überprüfen, ob der erste Buchstabe ein Vokal ist, sollten Sie folgende Sätze berücksichtigen:

  • ein ehrlicher Fehler
  • ein Gebrauchtwagen
Ryeguy
quelle
4
Sie müssen auch Abkürzungen berücksichtigen, die auch zu Verwirrungen bei "a" oder "an" wie "einer NHL" führen können, bei denen auch der Ton eines Buchstabens mit einem Vokal beginnt, jedoch nicht, wenn die Abkürzung als solches Wort ausgesprochen werden kann als "NAS-Gerät" oder "NASCAR-Ereignis"
JB King
5
Denken Sie auch daran, dass die Verwendung von a oder an von der jeweiligen Aussprache in der Vielfalt des gesprochenen Englisch abhängen kann. Die britische und amerikanische Aussprache von Kraut ist ein solches Beispiel.
Eric
12
@ Eric: In der Tat ist mein Lieblingsbeispiel dafür (auch nerdig) "SQL". Einige Leute sagen die Buchstaben "SQL", andere sprechen sie wie das Wort "Fortsetzung" aus. Jeder bekommt ein anderes "a" oder "an". zB ist es "eine Fortsetzung Anweisung" Verse "es ist eine SQL-Anweisung"
Binary Worrier
Noch schwieriger ist, dass sich die Meinungen innerhalb desselben englischen Dialekts sogar unterscheiden! So sagt uns beispielsweise offizielles (UK) Englisch, dass "ein Hotel" die richtige Struktur ist, aber die meisten Leute würden "ein Hotel" in alltäglichen Gesprächen verwenden. Wenn Sie eine schreiben, wäre dies für den Rest von uns sehr nützlich!
h4xxr
Ah ... der "Aspirant H". Ich erinnere mich lebhaft an meine erste Begegnung damit. Ein sozialwissenschaftliches Buch der zweiten Klasse mit dem Titel "An Historical Society", ein Buch über das koloniale Williamsburg.
Bob Kaufman

Antworten:

137
  1. Laden Sie Wikipedia herunter
  2. Entpacken Sie es und schreiben Sie ein schnelles Filterprogramm, das nur Artikeltext ausspuckt (der Download erfolgt im Allgemeinen im XML-Format, zusammen mit Metadaten, die keine Artikel sind).
  3. Suchen Sie alle Instanzen von a (n) .... und erstellen Sie einen Index für das folgende Wort und alle seine Präfixe (Sie können hierfür ein einfaches Suffix verwenden). Hierbei sollte zwischen Groß- und Kleinschreibung unterschieden werden, und Sie benötigen eine maximale Wortlänge - 15 Buchstaben?
  4. (optional) Verwerfen Sie alle Präfixe, die weniger als fünfmal vorkommen oder bei denen "a" vs. "an" weniger als 2/3 der Mehrheit erreicht (oder einige andere Schwellenwerte - hier anpassen). Behalten Sie vorzugsweise das leere Präfix bei, um Eckfälle zu vermeiden.
  5. Sie können Ihre Präfixdatenbank optimieren, indem Sie alle Präfixe verwerfen, deren übergeordnetes Element dieselbe Annotation "a" oder "an" aufweist.
  6. Wenn Sie festlegen, ob "A" oder "AN" verwendet werden soll, suchen Sie das am längsten passende Präfix und folgen Sie dessen Anweisungen. Wenn Sie das leere Präfix in Schritt 4 nicht verworfen haben, gibt es immer ein übereinstimmendes Präfix (nämlich das leere Präfix). Andernfalls benötigen Sie möglicherweise einen Sonderfall für eine vollständig nicht übereinstimmende Zeichenfolge (eine solche Eingabe sollte sehr selten sein). .

Sie können wahrscheinlich nicht viel besser werden - und es wird sicherlich die meisten regelbasierten Systeme schlagen.

Edit: Ich habe dies in JS / C # implementiert . Sie können es in Ihrem Browser versuchen oder die kleine, wiederverwendbare Javascript-Implementierung herunterladen, die es verwendet. Die .NET-Implementierung ist ein Paket AvsAnauf Nuget . Die Implementierungen sind trivial, daher sollte es bei Bedarf einfach sein, sie in eine andere Sprache zu portieren.

Es stellt sich heraus, dass die "Regeln" etwas komplexer sind als ich dachte:

  • es ist ein unerwartetes Ergebnis, aber es ist eine einstimmige Abstimmung
  • es ist eine ehrliche Entscheidung, aber ein Geißblattstrauch
  • Symbole: Es ist eine 0800-Zahl oder ein ∞ Oregano.
  • Akronyme: Es ist ein NASA-Wissenschaftler, aber ein NSA-Analyst;ein FIAT-Auto, aber eine FAA-Politik.

... was nur unterstreicht, dass es schwierig wäre, ein regelbasiertes System aufzubauen!

Eamon Nerbonne
quelle
Und wenn in dieser Ausgabe ein Substantiv fehlt, können Sie sicherlich auf die einfache Regelengine zurückgreifen.
John Fisher
26
Angesichts der Tatsache, dass der Wikipedia-Download auf (derzeit) 2,8 Terabyte dekomprimiert wird, wäre es großartig, wenn jeder, der diese Methode verwendet, die resultierenden Daten öffentlich veröffentlichen würde, sodass der Vorgang nicht viel wiederholt werden muss.
Nathan Long
10
Diese Antwort war nicht ganz ernst, aber ich habe so etwas getan, und die XML-Datei von Wikipedia mit rohem Wikimarkup liegt nur in der Größenordnung von 40 GB (die neueste ist immer etwas größer), nicht 2,8 TB - alles in einer Datei - Laden Sie nicht die erweiterte HTML-Version oder Bilder herunter. Vielleicht ist das die Version mit 2,8 TB? In jedem Fall ist das Parsen durchaus machbar, solange Sie nicht wählerisch in Bezug auf das Markup sind.
Eamon Nerbonne
1
Es ist einer der größten leicht verfügbaren, aktuellen Datensätze in natürlicher Sprache, die ich mir vorstellen kann. Natürlich ist auch jede zusätzliche Datenquelle in Ordnung - der Algorithmus hängt schließlich nicht von Wikipedia ab. Sie können die Online-Implementierung unter home.nerbonne.org/A-vs-An oder in meinem Blog
Eamon Nerbonne
1
Ich war darüber hinaus von dieser Lösung überzeugt. Ich dachte ehrlich, es wäre viel einfacher als Wikipedia in seiner Gesamtheit herunterzuladen. Gut gemacht, Sir. +1
Kehlan Krumme
15

Sie müssen eine Liste von Ausnahmen verwenden. Ich denke nicht, dass alle Ausnahmen gut definiert sind, da dies manchmal vom Akzent der Person abhängt, die das Wort sagt.

Eine dumme Möglichkeit besteht darin, Google nach den beiden Möglichkeiten zu fragen (mithilfe der Such-APIs) und die beliebtesten zu verwenden:

Oder:

Daher sind "ein Europa" und "ein ehrlicher" die richtigen Versionen.

rjmunro
quelle
6
Ist das tatsächlich erlaubt oder soll dies verboten werden? Regelmäßige solche Verwendung ist IIRC sicherlich verpönt.
Eamon Nerbonne
1
@Eamon: Interessanter Punkt. Was ist, wenn die Anwendung alle zuvor gegoogelten Wörter aufzeichnet und nur einmal für jedes neue Wort googeln muss? Wäre das immer noch eine fragwürdige Verwendung von Google?
Gnovice
2
Abgesehen von den offensichtlichen technischen Schwierigkeiten (die Verwendung einer solchen Suchmaschinenausgabe auf automatisierte Weise ist nicht zulässig und wird ziemlich schnell blockiert), löst dies das Problem nicht auf die richtige Weise - im schlimmsten Fall wird es den häufigen Missbrauch von duplizieren Syntax.
Guss
6
Schlimmstenfalls? Es gibt ein ziemlich starkes Argument dafür, dass das Duplizieren von "häufigem Missbrauch" genau das ist, wonach ein System in natürlicher Sprache streben sollte. Siehe David Foster Wallaces Aufsatz "Authority and American Usage" in Consider the Lobster . Es gibt bessere Korpora als Google, aber das ist ein anderes Problem.
Robert Rossney
2
"ein Hotel" und "eine Heldin" scheinen mir beide richtig zu sein. Ich denke, Sie kommen aus einer Perspektive mit leichtem Cockney-Akzent. Unterschiedliche Akzente bedeuten, dass es auf einige dieser Wörter keine richtige Antwort gibt.
rjmunro
15

Wenn Sie eine Quelle für Wortschreibweisen für Wortaussprachen finden könnten, wie:

"honest":"on-ist"
"horrible":"hawr-uh-buhl, hor-"

Sie können Ihre Entscheidung auf das erste Zeichen der buchstabierten Aussprache stützen. Aus Gründen der Leistung könnten Sie möglicherweise eine solche Suche verwenden, um Ausnahmesätze vorab zu generieren und stattdessen diese kleineren Suchsätze während der Ausführung zu verwenden.

Bearbeitet, um hinzuzufügen:

!!! - Ich denke, Sie könnten dies verwenden, um Ihre Ausnahmen zu generieren: http://www.speech.cs.cmu.edu/cgi-bin/cmudict

Natürlich wird nicht alles im Wörterbuch enthalten sein - was bedeutet, dass nicht jede mögliche Ausnahme in Ihren Ausnahmesätzen auftaucht -, aber in diesem Fall können Sie einfach eine für Vokale / eine für Konsonanten verwenden oder eine andere Heuristik mit besseren Gewinnchancen verwenden.

(Als ich das CMU-Wörterbuch durchgesehen habe, war ich erfreut zu sehen, dass es Eigennamen für Länder und einige andere Orte enthält. Es enthält also Beispiele wie "ein Ukrainer", "eine Zeitung von USA Today", "ein vom Ural inspiriertes Gemälde".)

Nochmals bearbeiten, um hinzuzufügen: Das CMU-Wörterbuch enthält keine gebräuchlichen Akronyme, und Sie müssen sich um diejenigen kümmern, die mit s, f, l, m, n, u und x beginnen. Aber es gibt viele Akronymlisten, wie in Wikipedia, die Sie verwenden können, um die Ausnahmen zu ergänzen.

Anon
quelle
2
Kann mir nicht helfen, aber das hawr-uh-buhlbringt mich immer zum Lachen.
IllidanS4 will Monica
9

Sie müssen manuell implementieren und die gewünschten Ausnahmen hinzufügen, z. B. wenn der erste Buchstabe "H" ist und gefolgt von einem "O" wie "ehrlich", "Stunde" ... und auch die entgegengesetzten wie "Europa", "Universität", "verwendet" ...

Ahmad Farid
quelle
1
Ja, wahrer Mann. Ich glaube, ich habe mich darin geirrt. Es hat überhaupt keine Regel
Ahmad Farid
8

Da "a" und "an" durch phonetische Regeln und nicht durch Rechtschreibkonventionen bestimmt werden, würde ich es wahrscheinlich so machen:

  1. Wenn der erste Buchstabe des Wortes ein Konsonant ist -> 'a'
  2. Wenn der erste Buchstabe des Wortes ein Vokal ist-> 'an'
  3. Führen Sie eine Liste der Ausnahmen (Herz, Röntgen, Haus), wie rjumnro sagt .
Patrik Svensson
quelle
5

Sie müssen sich die grammatikalischen Regeln für unbestimmte Artikel ansehen (es gibt nur zwei unbestimmte Artikel in der englischen Grammatik - "a" und "an"). Sie stimmen diesen möglicherweise nicht zu, aber die Regeln der englischen Grammatik sind sehr klar :

"Die Wörter a und an sind unbestimmte Artikel. Wir verwenden den unbestimmten Artikel an vor Wörtern, die mit einem Vokalton beginnen (a, e, i, o, u), und den unbestimmten Artikel a vor Wörtern, die mit einem Konsonantenton beginnen (alle andere Buchstaben). "

Hinweis Dies bedeutet einen Vokal - Sound , und nicht einen Vokal Brief . Zum Beispiel werden Wörter, die mit einem stillen "h" beginnen, wie "Ehre" oder "Erbe", als Vokale behandelt und daher mit "einem" fortgeführt - zum Beispiel "Es ist eine Ehre, Sie kennenzulernen". Wörter, die mit einem Konsonantenton beginnen, werden mit einem vorangestellt - weshalb Sie "ein Gebrauchtwagen" anstelle von "einem Gebrauchtwagen" sagen -, weil "gebraucht" eher einen "Joose" -Ton als einen "uhh" -Ton hat.

Als Programmierer sind dies die Regeln, die befolgt werden müssen. Sie müssen nur herausfinden, mit welchem ​​Ton ein Wort beginnt und nicht mit welchem ​​Buchstaben. Ich habe Beispiele dafür gesehen, wie dieses in PHP von Jaimie Sirovich:

function aOrAn($next_word) 
{ 
    $_an = array('hour', 'honest', 'heir', 'heirloom'); 
    $_a = array('use', 'useless', 'user'); 
    $_vowels = array('a','e','i','o','u'); 

    $_endings = array('ly', 'ness', 'less', 'lessly', 'ing', 'ally', 'ially'); 
    $_endings_regex = implode('|', $_endings); 

    $tmp = preg_match('#(.*?)(-| |$)#', $next_word, $captures); 
    $the_word = trim($captures[1]); 
    //$the_word = Format::trimString(Utils::pregGet('#(.*?)(-| |$)#', $next_word, 1)); 

    $_an_regex = implode('|', $_an); 
    if (preg_match("#($_an_regex)($_endings_regex)#i", $the_word)) { 
        return 'an'; 
    } 

    $_a_regex = implode('|', $_a); 
    if (preg_match("#($_a_regex)($_endings_regex)#i", $the_word)) { 
        return 'a'; 
    } 

    if (in_array(strtolower($the_word{0}), $_vowels)) { 
        return 'an';     
    } 

    return 'a'; 
}

Es ist wahrscheinlich am einfachsten, die Regel zu erstellen und dann eine Liste von Ausnahmen zu erstellen und diese zu verwenden. Ich kann mir nicht vorstellen, dass es so viele geben wird.

Dan Diplo
quelle
4

Mann, mir ist klar, dass dies wahrscheinlich ein festes Argument ist, aber ich denke, es kann einfacher beigelegt werden, als Ad-hoc-Grammatikregeln aus Wikipedia zu verwenden, die bestenfalls die einheimische Grammatik ableiten würden.

Die beste Lösung scheint darin zu bestehen, ein phonembasiertes Matching des folgenden Wortes mit einem oder einem Trigger zu verwenden, wobei bestimmte Phoneme immer mit "an" assoziiert sind und die verbleibenden zu "a" gehören.

Die Carnegie Mellon University bietet ein großartiges Online-Tool für diese Art von Überprüfungen - http://www.speech.cs.cmu.edu/cgi-bin/cmudict - und 125.000 Wörter mit den passenden 39 Phonemen. Das Einstecken eines Wortes liefert den gesamten phonemischen Satz, von dem nur der erste wichtig ist.

Wenn das Wort nicht im Wörterbuch angezeigt wird, z. B. "NSA", und alle groß geschrieben sind, kann das System annehmen, dass das Wort ein Akronym ist, und anhand des ersten Buchstabens anhand des gleichen ursprünglichen Regelsatzes bestimmen, welcher unbestimmte Artikel verwendet werden soll.

bekannter Mensch
quelle
1
In Bezug auf die Ressourcenökonomie ist dies die beste Antwort, und ich sehe nicht ein, warum dies schlechter abschneiden würde als die weitaus datenintensiveren vorgeschlagenen Methoden.
Chthonic Project
3

@ Nathan Long: Das Herunterladen von Wikipedia ist eigentlich keine schlechte Idee. Alle Bilder, Videos und anderen Medien werden nicht benötigt.

Ich habe ein (beschissenes) Programm in PHP und Javascript (!) Geschrieben, um die gesamte schwedische Wikipedia zu lesen (oder zumindest alle Artikel, die über den Artikel über Mathematik erreicht werden konnten, was der Anfang für meine Spinne war.)

Ich sammelte alle Wörter und internen Links in einer Datenbank und verfolgte auch die Häufigkeit jedes Wortes. Ich verwende das jetzt als Wortdatenbank für verschiedene Aufgaben: * Finden aller Wörter, die aus einem bestimmten Satz von Buchstaben (einschließlich Platzhalter) erstellt werden können. * Erstellt eine einfache Syntaxdatei für Schwedisch (alle Wörter, die nicht in der Datenbank enthalten sind, werden als falsch angesehen).

Oh, und das Herunterladen des gesamten Wikis dauerte ungefähr eine Woche, wobei mein Laptop die meiste Zeit mit einer 10-Mbit-Verbindung lief.

Wenn Sie gerade dabei sind, protokollieren Sie alle Vorkommnisse, die nicht mit der englischen Sprache übereinstimmen, und prüfen Sie, ob einige davon Fehler sind. Repariere sie und gib der Community etwas zurück.

Per Alexandersson
quelle
2

Beachten Sie, dass es Unterschiede zwischen amerikanischen und britischen Dialekten gibt, wie Grammar Girl in ihrer Episode A Versus An hervorhob .

Eine Komplikation ist, wenn Wörter im britischen und amerikanischen Englisch unterschiedlich ausgesprochen werden. Zum Beispiel wird das Wort für eine bestimmte Pflanzenart im amerikanischen Englisch "erb" und im britischen Englisch "herb" ausgesprochen. Verwenden Sie in den seltenen Fällen, in denen dies ein Problem darstellt, das Formular, das in Ihrem Land oder von der Mehrheit Ihrer Leser erwartet wird.

Jan Aagaard
quelle
2

Schauen Sie sich Perls Lingua :: EN :: Inflect an . Siehe sub _indef_articleim Quellcode.

Sinan Ünür
quelle
Die Ausnahmen befinden sich in inflections.t. Es scheint mir, dass die Liste ziemlich unvollständig ist.
Jan Aagaard
1

Könnten Sie ein englisches Wörterbuch bekommen, in dem die Wörter unseres regulären Alphabets und das Internationale Phönetische Alphabet gespeichert sind? ?

Verwenden Sie dann die Phönetik, um den Anfangston des Wortes herauszufinden und ob „a“ oder „an“ angemessen ist?

Ich bin mir nicht sicher, ob das tatsächlich einfacher wäre (oder genauso viel Spaß macht wie) der statistische Wikipedia-Ansatz.

Paul D. Waite
quelle
0

Ich würde einen regelbasierten Algorithmus verwenden, um so viele wie möglich abzudecken, und dann eine Liste von Ausnahmen verwenden. Wenn Sie Lust haben, können Sie versuchen, einige neue "Regeln" aus Ihrer Ausnahmeliste zu ermitteln.

AL Flanagan
quelle
0

Ich sehe nur aus wie eine Reihe von Heuristiken. Es muss etwas komplizierter sein und einige Dinge beantworten, auf die ich nie eine gute Antwort bekommen habe, zum Beispiel, wie man Abkürzungen behandelt ("eine Drehzahl" oder "eine Drehzahl"? Ich dachte immer, die letztere ist sinnvoller).

Eine schnelle Suche ergab Sprachbibliotheken, die über den Umgang mit dem englischen Singularpräfix sprechen, aber Sie können wahrscheinlich etwas finden, wenn Sie genug Dip graben. Und wenn nicht - Sie können jederzeit Ihre eigene Flexionsbibliothek schreiben und Weltruhm erlangen :-).

Guss
quelle
Abkürzungen wie RPM sind kein Problem. Wie Sie sagen, können sie so oder so behandelt werden. Daher liegt die Lösung auf der Hand: Ignorieren Sie sie.
Andrew J. Brehm
Ich würde nicht zustimmen, da dies zu inkonsistenten Präfixen führt. Das bloße Ignorieren würde "eine Drehzahl" und "eine UGC" verursachen, was eindeutig falsch ist.
Guss
0

Ich nehme nicht an, dass Sie einfach ein paar Kesselplatten wie 'a / an' als einstufiges Deckblatt ausfüllen können. Andernfalls kommt es zu Vermutungsfehlern wie bei allen Wörtern mit 'h'. Fahren Sie fort mit 'o' get 'an' anstelle von 'a' like 'home' - (a home?). Grundsätzlich werden Sie am Ende die Logik der englischen Sprache einbeziehen oder gelegentlich seltene Fälle finden, die Sie dumm aussehen lassen.


quelle
0

Überprüfen Sie, ob ein Wort mit einem Vokal oder einem Konsonenten beginnt. Ein "u" ist im Allgemeinen ein Konsonant und ein Vokal ("yu") und gehört daher für Ihre Zwecke zur Konsonantengruppe.

Der Buchstabe "h" steht für einen gottalen Stopp (einen Konsonanten) in Französisch und in französischen Wörtern, die im Englischen verwendet werden. Sie können eine Liste dieser Vokale erstellen (in der Tat können "Ehre", "Ehre" und "Stunde" ausreichend sein) und sie als mit Vokalen beginnend zählen (da Englisch keinen Stimmritzenstopp erkennt).

Zählen Sie auch "eu" als Konsonanten usw.

Es ist nicht zu schwierig.

Andrew J. Brehm
quelle
0

Die Wahl von a oder a hängt davon ab, wie das Wort ausgesprochen wird. Wenn Sie sich das Wort ansehen, können Sie nicht unbedingt die korrekte Aussprache erkennen, z. B. einen Jargon oder eine Abkürzung usw. Eine Möglichkeit besteht darin, ein Wörterbuch mit Unterstützung für Phoneme zu haben und anhand der mit dem Wort verknüpften Phoneminformationen zu bestimmen, ob ein "a "oder ein" an "sollte verwendet werden.

Rohin
quelle
0

Ich kann nicht sicher sein, ob es die entsprechenden Informationen enthält, um "a" und "an" zu unterscheiden, aber die WordNet- Datenbank von Princeton existiert genau für ähnliche Aufgaben, daher halte ich es für wahrscheinlich, dass sich die Daten dort befinden . Es hat einige Zehntausende von Wörtern und Hunderttausende von Beziehungen zwischen diesen Wörtern (IIRC; ich kann die aktuellen Statistiken auf der Website nicht finden). Schau es dir an. Es kann kostenlos heruntergeladen werden.

rmeador
quelle
0

Wie? Wie wäre es wann? Holen Sie sich das Substantiv mit Artikel im Anhang. Fragen Sie in einer bestimmten Form danach.

Fragen Sie nach dem Substantiv mit dem Artikel. Viele MUD-Codebasen speichern Elemente als Informationen, bestehend aus:

  • ein oder mehrere Schlüsselwörter
  • eine kurze Form
  • eine lange Form

Die Schlüsselwortform könnte "Kurzschwert rostig" sein. Die Kurzform wird "ein Schwert" sein. Die lange Form wird "ein rostiges Kurzschwert" sein.

Schreiben Sie einen Webdienst "a vs. an"? Machen Sie einen Schritt zurück und prüfen Sie, ob Sie dieses Leck weiter stromaufwärts angreifen können. Sie können einen Damm bauen, aber wenn Sie ihn nicht am Fließen hindern, wird er irgendwann überlaufen.

Bestimmen Sie, wie kritisch dies ist, und wählen Sie, wie andere vorgeschlagen haben, "schnell, aber grob" oder "teuer, aber robust".

maxwellb
quelle
0

Die Regel ist sehr einfach. Wenn das nächste Wort mit einem Vokalton beginnt, verwenden Sie 'an'. Wenn es mit einem Konsonanten beginnt, verwenden Sie 'a'. Das Schwierige ist, dass unsere Schulklassifikation von Vokalen und Konsonanten nicht funktioniert. Das 'h' in 'Ehre' ist ein Vokal, aber das 'h' in 'Krankenhaus' ist ein Konsonant.

Schlimmer noch, einige Wörter wie "ehrlich" beginnen mit einem Vokal oder einem Konsonanten, je nachdem, wer sie sagt. Schlimmer noch, einige Wörter ändern sich abhängig von den Wörtern um sie herum für einige Sprecher.

Das Problem ist nur dadurch begrenzt, wie viel Zeit und Mühe Sie investieren möchten. Sie können in wenigen Minuten etwas in einem Paar schreiben, indem Sie 'aeiou' als Vokale verwenden, oder Sie können Monate damit verbringen, sprachliche Analysen Ihrer Zielgruppe durchzuführen. Dazwischen gibt es eine Vielzahl von Heuristiken, die für einige Sprecher richtig und für andere falsch sind - aber da verschiedene Sprecher unterschiedliche Bestimmungen für dasselbe Wort haben, ist es einfach nicht möglich, immer richtig zu sein, egal wie Sie es tun es.

KayEss
quelle
0

Der ideale Ansatz wäre, online einen Ort zu finden, an dem Sie die Antworten erhalten, dynamisch abfragen und die Antworten zwischenspeichern können. Sie können das System zunächst mit ein paar hundert Wörtern vorbereiten.

(Ich kenne keine solche Online-Quelle, aber ich wäre nicht überrascht, wenn es eine gibt.)

Hot Licks
quelle
0

Eine vernünftige Lösung ist also möglich, ohne das gesamte Internet herunterzuladen. Folgendes habe ich getan:

Ich erinnerte mich, dass Google hier seine Rohdaten für die N-Gram-Frequenzen von Google Books veröffentlicht hat . Also habe ich die 2-Gramm-Dateien für "a_" und "an" heruntergeladen. Es sind ungefähr 26 Gigs, wenn ich mich richtig erinnere. Daraus erstellte ich eine Liste von Zeichenfolgen, denen überwiegend der entgegengesetzte Artikel vorausging, den Sie erwarten würden (wenn wir erwarten würden, dass Vokale ein "an" nehmen). Diese letzte Liste von Wörtern konnte ich in weniger als 7 Kilobyte speichern.

IngisKahn
quelle
-2

Sie verwenden "a", wenn das nächste Wort kein Vokal ist? Und Sie verwenden "ein", wenn es einen Vokal gibt?

Könnten Sie nicht einfach einen regulären Ausdruck wie "a \ s [a, e, i, o, u]. *" Machen? Und dann durch ein "an?"

Daniel
quelle
Nein, denn die Regel ist über Vokal Sounds , nicht Vokal Buchstaben . "Benutzer" beginnt mit einem Vokal, die Aussprache jedoch nicht.
Joris Groosman