[JAVA] Analyse morphologique chinoise comme Mecab avec FNLP

Aperçu

Je veux faire des choses comme l'analyse morphologique japonaise (MeCab) en chinois, donc j'utilise FNLP

environnement

OS : Windows7 64bit Langue: Java8 IDE: Ecplise4.8.0

Objectif

Identique à analyse morphologique anglaise comme MeCab avec OpenNLP

Je veux faire de la "morphologie", "une partie des mots" et une "forme de base" qui peuvent être obtenues en appliquant des phrases japonaises à Mecab en chinois. Utilisez l'open source «Fudan NLP (FNLP)» pour acquérir des «éléments de formulaire» et des «parties» de la partie chinoise.

table des matières

  1. Connaissance préalable du chinois
  2. Implémentation Java
  3. Préparation
  4. Séparation
  5. Décomposition en mot partiel

1. Connaissance préalable du chinois

Deux types de personnages

Dans cet article, nous nous limiterons aux phrases simplifiées.

Il n'y a pas de système horaire

Par conséquent, dans cet article, nous supposons que toute la morphologie chinoise peut être obtenue sous la "forme de base".

2. Implémentation Java

1. Préparation

Si vous spécifiez fnlp-core dans MavenRepository directement dans pom.xml, une erreur se produira, alors générez le code source une fois et créez le fichier fnlp-core-2.1-SNAPSHOT.jar.

Créez un projet maven et placez le fichier fnlp-core-2.1-SNAPSHOT.jar créé sous le dossier dic.

Ajoutez ce qui suit à pom.xml

<dependency>
	<groupId>net.sf.trove4j</groupId>
	<artifactId>trove4j</artifactId>
	<version>3.0.3</version>
</dependency>
<dependency>
	<groupId>commons-cli</groupId>
	<artifactId>commons-cli</artifactId>
	<version>1.2</version>
</dependency>
<dependency>
	<groupId>org.fnlp</groupId>
	<artifactId>core</artifactId>
	<version>2.1</version>
</dependency>
<dependency>
    <groupId>org.fnlp</groupId>
    <artifactId>core</artifactId>
    <version>2.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/dic/fnlp-core-2.1-SNAPSHOT.jar</systemPath>
</dependency>

Téléchargez également les trois fichiers de modèle (pos.m, seg.m, dep.m) publiés sur https://github.com/xpqiu/fnlp/releases et placez-les dans le dossier dic.

2. Séparation

CNFactory factory = null;
//Spécifiez le chemin du fichier modèle et appelez l'analyseur morphologique
try {
    factory = CNFactory.getInstance("./dic");
} catch (LoadModelException lme) {
    lme.printStackTrace();
}
String message = "Maintenant Tentenga Mayoshi!";
String[][] tokens = factory.tag(message);
System.out.println(Arrays.asList(tokens[0]));
>> [Imaten,Tianqi,vrai,Bien,啊, !]

3. Décomposition en mot partiel

CNFactory factory = null;
//Spécifiez le chemin du fichier modèle et appelez l'analyseur morphologique
try {
    factory = CNFactory.getInstance("./dic");
} catch (LoadModelException lme) {
    lme.printStackTrace();
}
String message = "Maintenant Tentenga Mayoshi!";
String[][] tokens = factory.tag(message);
System.out.println(Arrays.asList(tokens[1]));
>> [Temps courts mots,Célèbre,Adjoint,Forme,Langue,Point cible]

Lien de référence

Recommended Posts

Analyse morphologique chinoise comme Mecab avec FNLP
Analyse morphologique anglaise comme MeCab avec OpenNLP
J'ai essayé l'analyse morphologique avec MeCab
Analyse morphologique en Java avec Kuromoji
NLP4J [006-030] 100 coups de traitement du langage avec NLP4J # 30 Lecture des résultats d'analyse morphologique
Obtenez des résultats détaillés de l'analyse morphologique avec Apache Solr 7.6 + SolrJ