2017-03-21 7 views
1

Ich schreibe einen Text Spinner, die gut funktioniert, wie es sollte. Aber die Genauigkeit der lesbaren Sätze ist sehr gering, da es nur ein Wörterbuch verwendet, das ich aus der Datenbank bekomme. Die Rückkehr spintax ähnlicheText Spinner mit Naive Bayes

{Your} {home| house| residence| property} {is} {your} {castle| mansion| fortress| palace} 

und ist mit einer Funktion übergeben, die zufällig Satz Synonym und Ausgabe wählt auf der Grundlage der ursprünglichen Eingabe des Benutzers. Zum Beispiel für die Eingabe:

Your home is your castle. 

kehren

Your property is your mansion. 

Jetzt will ich Künstliche Intelligenz enthalten, wie es meinen Ausgang Sätze besser lesbar machen. Ich möchte wissen, wie man mit naiven Bayes eine bessere Auswahl treffen kann. Ich weiß, dass ich wahrscheinlich trainieren muss, damit bessere Ergebnisse erzielt werden.

Hier ist meine aktuelle Methode für die Auswahl des Wortes, die im Moment wirklich einfach ist.

def spin(spintax): 
    while True: 
     word, n = re.subn('{([^{}]*)}',lambda m: random.choice(m.group(1).split("|")),spintax) 
     if n == 0: break 
return word.strip() 

Vielen Dank im Voraus, wenn Sie Jungs mich brauchen mehr Code zu schreiben mich

wissen lassen, wahrscheinlich geschlossen Dieses

Antwort

1

Vielleicht könnten Sie den Datensatz herunterladen Google von allen englischen Bücher gesammelt und zufällige Sätze erzeugen ngrams mit? https://books.google.com/ngrams

Die Implementierung ist eine Markov chain, wo diese heruntergeladenen Daten bietet Ihnen Wahrscheinlichkeiten für das nächste Wort zu wählen.

+0

danke für den Vorschlag werde ich es untersuchen. –

Verwandte Themen