PNL pour Java (NLP4J) (2)

J'ai créé un code que vous pouvez apprécier de l'exploration de texte en écrivant un programme Java simple comme celui ci-dessous, donc je pense le publier bientôt en open source. Nous ciblons les personnes qui souhaitent faire du traitement du langage naturel et qui souhaitent faire du text mining.

Le service Web de Yahoo Japan est utilisé comme moteur d'analyse morphologique. Produit des mots-clés caractéristiques dans le document en utilisant les résultats de l'analyse morphologique

Traitement et saisie

		List<Document> docs = new ArrayList<Document>();
		{
			docs.add(createDocument("Toyota", "Je fabrique une voiture hybride."));
			docs.add(createDocument("Toyota", "Nous vendons des voitures hybrides."));
			docs.add(createDocument("Toyota", "Je fabrique une voiture."));
			docs.add(createDocument("Toyota", "Je vends des voitures."));
			docs.add(createDocument("Nissan", "Je fabrique un EV."));
			docs.add(createDocument("Nissan", "Je vends EV."));
			docs.add(createDocument("Nissan", "Je vends des voitures."));
			docs.add(createDocument("Nissan", "Nous sommes affiliés à Renault."));
			docs.add(createDocument("Nissan", "Je vends des voitures légères."));
			docs.add(createDocument("Honda", "Je fabrique une voiture."));
			docs.add(createDocument("Honda", "Je vends des voitures."));
			docs.add(createDocument("Honda", "Je fabrique un vélo."));
			docs.add(createDocument("Honda", "Je vends des vélos."));
			docs.add(createDocument("Honda", "Je vends des voitures légères."));
			docs.add(createDocument("Honda", "Je fabrique une voiture légère."));
		}
		Annotator annotator = new YJpMaAnnotator();{
			//Traitement de l'analyse morphologique
			annotator.annotate(docs);
		}
		Index index = new SimpleDocumentIndex();{
			//Processus d'indexation des mots-clés
			index.addDocuments(docs);
		}
		{
			//Acquisition de mots-clés à forte cooccurrence
			List<Keyword> kwds = index.getKeywords("nom", "item=Nissan");
			System.out.println("Keywords(nom) for Nissan");
			for (Keyword kwd : kwds) {
				System.out.println(String.format("%.1f,%s", kwd.getCorrelation(), kwd.getLex()));
			}
		}
		{
			//Acquisition de mots-clés à forte cooccurrence
			List<Keyword> kwds = index.getKeywords("nom", "item=Toyota");
			System.out.println("Keywords(nom) for Toyota");
			for (Keyword kwd : kwds) {
				System.out.println(String.format("%.1f,%s", kwd.getCorrelation(), kwd.getLex()));
			}
		}
		{
			//Acquisition de mots-clés à forte cooccurrence
			List<Keyword> kwds = index.getKeywords("nom", "item=Honda");
			System.out.println("Keywords(nom) for Honda");
			for (Keyword kwd : kwds) {
				System.out.println(String.format("%.1f,%s", kwd.getCorrelation(), kwd.getLex()));
			}
		}
	}

Sortie: affiche les mots-clés caractéristiques de Nissan par ordre décroissant de coefficient.

Keywords for Nissan
3.0,EV
3.0,Renault
3.0,Alliance
1.0,Voiture légère
0.6,Voiture

Cliquez ici pour Toyota et Honda

Keywords(nom) for Toyota
3.8,hybride
3.8,voiture
1.5,Voiture
Keywords(nom) for Honda
2.5,bicyclette
1.7,Voiture légère
1.0,Voiture

Recommended Posts

PNL pour Java (NLP4J) (2)
PNL pour Java (NLP4J) (1)
Pour l'apprentissage JAVA (2018-03-16-01)
Java pour instruction
[Java] pour instruction, while instruction
[Java] pour instruction / étendu pour instruction
Contre-mesures pour OutOfMemoryError en java
(Mémo) Java pour instruction
Exécution de débogage Java [pour les débutants Java]
[Java] Instruction de base pour les débutants
Livres utilisés pour apprendre Java
Test de compétence Java 2018 pour les nouveaux arrivants - Principes de base-
Java thread sans danger pour vous
Java pour les débutants, masquage des données
[Java] Conseils pour l'écriture de la source
Emplacement d'installation Java pour Mac
Application Java pour les débutants: stream
Instructions Java while et for
Aide-mémoire C # pour les techniciens Java
Nouvelle syntaxe pour les instructions Java 12 Switch
[Pour les débutants] Résumé du constructeur java
SDK AWS pour Java 1.11.x et 2.x
Les débutants jouent à des jeux Janken en Java
Java pour les débutants, les expressions et les opérateurs 1
[Java] Mémo pour nommer les noms de classe
[Pour les débutants] Exécutez Selenium sur Java
Hello World pour le plugin Java ImageJ
[OpenCV3.2.0] Paramètres Eclipse (Java) (pour Mac)
Java pour les débutants, les expressions et les opérateurs 2
Activez OpenCV avec java8. (Pour moi-même)
Outils Spring Framework pour développeur Java
java (utilisez le type de classe pour le champ)
Création d'un environnement de développement Java (pour Mac)
Java
[Java & SpringBoot] Construction de l'environnement pour Mac
Paramètres de débogage SSL dans Java
Génériques Kotlin pour les développeurs Java
Java
Agenda pour la qualification Java SE 8 Silver
[Pour les débutants en Java] À propos de la gestion des exceptions
Classes et instances Java pour les débutants
Meilleures pratiques modernes pour les tests Java
GraalVM for Java Performance (Windows Developer Build)
[Jusqu'au 5 mars 2020] Renouveler le certificat RDS pour java
Premiers pas avec Ruby pour les ingénieurs Java
[Java Spring MVC] Contrôleur de confirmation de développement
Mesure de la mémoire pour les applications Java utilisant jstat
Introduction à Java pour la première fois # 2
Premiers pas pour l'apprentissage profond en Java
Java pour tous! J'ai lu tout le monde en Java #minjava
J'ai essayé le mappeur d'objets de Cassandra pour Java
Points clés pour l'introduction de gRPC en Java
Apprenez de «Et alors», les bases de Java [pour les débutants]
À propos de la procédure pour que Java fonctionne
[Java + jsoup] Scraping des produits Mercari à vendre
[Pour les débutants] Différence entre Java et Kotlin