NLP für Java (NLP4J) (2)

Ich habe einen Code erstellt, mit dem Sie Text Mining genießen können, indem Sie ein einfaches Java-Programm wie das folgende schreiben. Daher denke ich darüber nach, es bald als Open Source zu veröffentlichen. Wir richten uns an Personen, die eine Verarbeitung natürlicher Sprache und Text Mining durchführen möchten.

Der Webdienst von Yahoo Japan wird als morphologische Analyse-Engine verwendet. Gibt charakteristische Schlüsselwörter im Dokument unter Verwendung der Ergebnisse der morphologischen Analyse aus

Verarbeitung und Eingabe

		List<Document> docs = new ArrayList<Document>();
		{
			docs.add(createDocument("Toyota", "Ich mache ein Hybridauto."));
			docs.add(createDocument("Toyota", "Wir verkaufen Hybridautos."));
			docs.add(createDocument("Toyota", "Ich mache ein Auto."));
			docs.add(createDocument("Toyota", "Ich verkaufe Autos."));
			docs.add(createDocument("Nissan", "Ich mache einen EV."));
			docs.add(createDocument("Nissan", "Ich verkaufe EV."));
			docs.add(createDocument("Nissan", "Ich verkaufe Autos."));
			docs.add(createDocument("Nissan", "Wir sind mit Renault verbunden."));
			docs.add(createDocument("Nissan", "Ich verkaufe leichte Autos."));
			docs.add(createDocument("Honda", "Ich mache ein Auto."));
			docs.add(createDocument("Honda", "Ich verkaufe Autos."));
			docs.add(createDocument("Honda", "Ich mache ein Fahrrad."));
			docs.add(createDocument("Honda", "Ich verkaufe Fahrräder."));
			docs.add(createDocument("Honda", "Ich verkaufe leichte Autos."));
			docs.add(createDocument("Honda", "Ich mache ein leichtes Auto."));
		}
		Annotator annotator = new YJpMaAnnotator();{
			//Morphologische Analyseverarbeitung
			annotator.annotate(docs);
		}
		Index index = new SimpleDocumentIndex();{
			//Indizierungsprozess für Schlüsselwörter
			index.addDocuments(docs);
		}
		{
			//Erwerb von Keywords mit hoher Koexistenz
			List<Keyword> kwds = index.getKeywords("Substantiv", "item=Nissan");
			System.out.println("Keywords(Substantiv) for Nissan");
			for (Keyword kwd : kwds) {
				System.out.println(String.format("%.1f,%s", kwd.getCorrelation(), kwd.getLex()));
			}
		}
		{
			//Erwerb von Keywords mit hoher Koexistenz
			List<Keyword> kwds = index.getKeywords("Substantiv", "item=Toyota");
			System.out.println("Keywords(Substantiv) for Toyota");
			for (Keyword kwd : kwds) {
				System.out.println(String.format("%.1f,%s", kwd.getCorrelation(), kwd.getLex()));
			}
		}
		{
			//Erwerb von Keywords mit hoher Koexistenz
			List<Keyword> kwds = index.getKeywords("Substantiv", "item=Honda");
			System.out.println("Keywords(Substantiv) for Honda");
			for (Keyword kwd : kwds) {
				System.out.println(String.format("%.1f,%s", kwd.getCorrelation(), kwd.getLex()));
			}
		}
	}

Ausgabe: Zeigt die für Nissan charakteristischen Schlüsselwörter in absteigender Reihenfolge des Koeffizienten an.

Keywords for Nissan
3.0,EV
3.0,Renault
3.0,Allianz
1.0,Leichtes Auto
0.6,Wagen

Klicken Sie hier für Toyota und Honda

Keywords(Substantiv) for Toyota
3.8,Hybrid
3.8,Wagen
1.5,Wagen
Keywords(Substantiv) for Honda
2.5,Fahrrad
1.7,Leichtes Auto
1.0,Wagen

Recommended Posts

NLP für Java (NLP4J) (2)
NLP für Java (NLP4J) (1)
Für JAVA-Lernen (2018-03-16-01)
Java für Anweisung
[Java] für Anweisung, während Anweisung
[Java] für Anweisung / erweitert für Anweisung
Gegenmaßnahmen für OutOfMemoryError in Java
(Memo) Java für Anweisung
Java-Debug-Ausführung [für Java-Anfänger]
[Java] Grundlegende Aussage für Anfänger
Bücher zum Erlernen von Java
2018 Java Proficiency Test für Newcomer-Basics-
Java-Thread sicher für Sie
Java für Anfänger, Daten verstecken
[Java] Tipps zum Schreiben der Quelle
Java-Installationsort für Mac
Java-Anwendung für Anfänger: Stream
Java während und für Anweisungen
C # Spickzettel für Java-Techniker
Neue Syntax für Java 12 Switch-Anweisungen
[Für Anfänger] Zusammenfassung des Java-Konstruktors
AWS SDK für Java 1.11.x und 2.x.
Anfänger spielen Janken-Spiele in Java
Java für Anfänger, Ausdrücke und Operatoren 1
[Java] Memo zum Benennen von Klassennamen
[Für Anfänger] Führen Sie Selenium auf Java aus
Hallo Welt für ImageJ Java Plugin
[OpenCV3.2.0] Eclipse (Java) -Einstellungen (für Mac)
Java für Anfänger, Ausdrücke und Operatoren 2
Aktivieren Sie OpenCV mit Java8. (Für mich)
Spring Framework-Tools für Java-Entwickler
Java (Klassentyp für Feld verwenden)
Erstellen einer Java-Entwicklungsumgebung (für Mac)
Java
[Java & SpringBoot] Umgebungskonstruktion für Mac
Einstellungen für das SSL-Debugging in Java
Kotlin-Generika für Java-Entwickler
Java
Tagebuch für Java SE 8 Silber Qualifikation
[Für Java-Anfänger] Informationen zur Ausnahmebehandlung
Klassen und Instanzen Java für Anfänger
Moderne Best Practices für Java-Tests
GraalVM für Java-Leistung (Windows Developer Build)
[Bis 5. März 2020] Erneuern Sie das RDS-Zertifikat für Java
Erste Schritte mit Ruby für Java-Ingenieure
[Java Spring MVC] Entwicklungsbestätigungscontroller
Speichermessung für Java-Apps mit jstat
Einführung in Java zum ersten Mal # 2
Erste Schritte für tiefes Lernen in Java
Java für alle! Ich habe jedermanns Java #minjava gelesen
Ich habe Cassandras Object Mapper für Java ausprobiert
Wichtige Punkte für die Einführung von gRPC in Java
Lernen Sie aus "Na und", den Grundlagen von Java [für Anfänger]
Über das Verfahren, damit Java funktioniert
[Java + jsoup] Scraping Mercaris Produkte zum Verkauf
[Für Anfänger] Unterschied zwischen Java und Kotlin