Die Verarbeitung natürlicher Sprache - Ideen für Anfänger Projekte [geschlossen]

StackOverflow https://stackoverflow.com/questions/2572301

  •  24-09-2019
  •  | 
  •  

Frage

Ich bin ein Anfänger in NLP und NLTK. Ich bin sehr interessiert in NLP und damit ein Wochenendkurs auf AI in einigen lokalen Institution verbunden, die mir verlangt ein Projekt zur Beendigung des Kurses zu tun, und ich beschloss, es in NLP zu tun. Das Problem ist, der Lehrer überhaupt für diesen Kurs ist nicht gut (nach mir, dass sie ist nur ein Scharlatan) (oder nicht ganz in der Lehre interessiert sein als dies ist ihre letzte Partie hier, nach der das Institut zu senden wird Sie ist raus). Also habe ich in einer Situation stecken bin, wo, wo ich bis zum Ende bekam dieses Projekt in einem Monat eineinhalb Monate Zeit, sondern als naives Person im Bereich Ich fühle mich ist es sehr schwierig, das zu begreifen Dinge erforderlich auf Projekt zu entscheiden. (Auch, wie ich arbeite Voll Zeit, ich bin nicht genug Zeit, um dedicate auf diesem Befund).

als ich aus folgenden Gründen NLTK Toolkit in Python für das Projekt verwenden. (1) Python ist bekannt für einfache Bedienung, Rapid Prototyping und sehr aktive Community (unter Berücksichtigung sehr kurze Zeit ich habe, und wie ich einen C-Programmierer von Beruf bin, ich brauche eine Sprache, die ich schnell lernen kann, und ist einfach zu Verwendung).

(2) NLTK hat eine gute Bewertung und eine umfangreiche Dokumentation und eine sehr aktive Community.

Das Problem ist also, was Projekt soll ich nehmen, damit ich etwas lernen kann und in der Lage, Projekt rechtzeitig fertig zu stellen. (Ich weiß so gut wie nichts in NLP, nicht einmal wissen, was genau Corpora ist ... :()

So schlagen Sie mir einige Themen, die ich für das Projekt in Betracht ziehen sollte.

Grüße,

Microkernel:)

War es hilfreich?

Lösung

Die meisten „Anfänger“ Projekte zielen gut bekannte Algorithmen auf Neuimplementierung, so dass die Anfänger durch die Überprüfung ihrer Ergebnisse mit bekannten Lösungen lernen können. Dazu würde ich etwas Einfaches wie ein E-Mail-Spam-Filter empfehlen. Sie würden zunächst eine Trainingsdatei zu erstellen, das heißt kopieren Sie den Text von mehreren real E-Mails in eine CSV-Datei und manuell Spam oder nicht Spam kennzeichnen, wie:

text|is_spam
hi bob! how are you?|0
what time are you coming over|0
how to buy viagra now!|1

Als nächstes würden Sie eine Testdatei erstellen, in dem identischen Format in die Trainingsdatei, aber offensichtlich mit verschiedenen Beispielen.

Dann würden Sie Ihre Klassifikator / Spam-Filter erstellen. Es gibt viele verschiedene Möglichkeiten, um einen Spam-Filter zu implementieren, aber die einfachste ist, indem einfach die Häufigkeit, mit der ein Wort mit is_spam erscheint = 0 und is_spam = 1. Zum Beispiel auf der Grundlage der Trainingsdatei über das Wort „Viagra“ ist mit 1 Spam-Klassifizierung verbunden, aber 0 Nicht-Spam-Einstufungen, so ist es wahrscheinlich künftig E-Mails mit dem Wort „Viagra“ sind auch als Spam klassifiziert werden. In ähnlicher Weise wird das Wort „wie“ erscheint in 1 Spam und 1 Nicht-Spam-E-Mail, so dass es weniger wahrscheinlich, eine endgültige Einstufung anzuzeigen.

Sie würden dann trainieren Sie Ihren Klassifikator auf der Trainingsdatei, und es die Genauigkeit berechnen, indem sie auf der Testdatei ausgeführt wird.

Wenn das obige Verfahren zu einfach ist, können Sie die Komplexität durch Zählen n-Gramm (Wortgruppen) erhöhen oder sogar grammatische Struktur, indem zuerst Tagging die Part-of-Speech (zB viele Spam ist in der Regel zufällige Müll bevölkert mit Keywords, wo nicht-Spam macht in der Regel einen Sinn). Sie könnten möglicherweise mehrere verschiedene Klassifizierer implementieren und ihre Genauigkeit vergleichen.

Zugegeben, es ist ein bisschen mehr zu bieten als das, aber diese Methoden sind gut im Internet dokumentiert, und es ist Ihr Projekt, so dass es an Sie, um es weiter zu erforschen. Viel Glück.

Andere Tipps

Einige Ideen:

  • Ein Programm, das die Sprache vermutet, dass eine Eingabedatei in geschrieben Sie bräuchten einige Proben von verschiedenen Sprachen. Wikipedia ist eine ausgezeichnete Quelle.

  • Ein Programm, das auf der Basis eines Textkorpus, konstruiert Wörter oder Sätze ähnlich denen im Korpus.

  • etwas interessant finden, zu tun mit der Voynich Manuskript . Sie können finden Transkriptionen hier .

(By the way, "Corpus" ist nur ein ausgefallenes Wort für "Bündel von Text". Aus Wikipedia : „ein großer und strukturierte Satz von Texten (heute in der Regel elektronisch gespeichert und verarbeitet)“ das Wort bezieht sich in der Regel auf die Texte, die Sie zu trainieren verwenden und Ihren Algorithmus zu testen, wie zu den unbekannten Texte gegenüber, dass es begegnen in dem Feld ein.)

Versuchen Sie, auf Herausforderungen der Arbeit auf Websites wie Kaggle geschrieben. Sie haben interessante Herausforderungen wie Erfassungs Beleidigungen in sozialen Kommentar , für die Daten sind frei verfügbar.

Sie könnten NLP verwenden, um einige Teile eines Kunden-Support-Anruf auf einem VoIP-Telefon aufzeichnen. Die anderen Optionen Eingabe durch den Benutzer könnte von der Tastatur genommen werden. Mit diesem System an Ort und Stelle, könnte man die Notwendigkeit einer Unterstützung personnel.For Beispiel beseitigen -. Zurücksetzen des Kennworts auf eine E-Mail in einer Organisation mit sprachbasierten Autorisierung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top