[JAVA] Chinesische morphologische Analyse wie Mecab mit FNLP

Überblick

Ich möchte Dinge wie die japanische morphologische Analyse (MeCab) auf Chinesisch durchführen, also verwende ich FNLP

Umgebung

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

Zweck

Entspricht englische morphologische Analyse wie MeCab mit OpenNLP

Ich möchte "Morphologie", "Teil von Wörtern" und "Grundform" machen, die durch Anwenden japanischer Sätze auf Mecab auf Chinesisch erhalten werden können. Verwenden Sie das Open Source "Fudan NLP (FNLP)", um "Formularelemente" und "Teile" aus dem chinesischen Teil zu erhalten.

Inhaltsverzeichnis

  1. Vorkenntnisse in Chinesisch
  2. Java-Implementierung
  3. Vorbereitung
  4. Trennung
  5. Teilwortzerlegung

1. Vorkenntnisse in Chinesisch

Zwei Arten von Zeichen

In diesem Artikel beschränken wir uns auf vereinfachte Sätze.

Es gibt kein Zeitsystem

Daher gehen wir in diesem Artikel davon aus, dass die gesamte chinesische Morphologie in der "Grundform" erhalten werden kann.

2. Java-Implementierung

1. Vorbereitung

Wenn Sie fnlp-core in MavenRepository direkt in pom.xml angeben, tritt ein Fehler auf. Erstellen Sie den Quellcode daher einmal und erstellen Sie die Datei fnlp-core-2.1-SNAPSHOT.jar.

Erstellen Sie ein Maven-Projekt und platzieren Sie die erstellte Datei fnlp-core-2.1-SNAPSHOT.jar im Ordner dic.

Fügen Sie pom.xml Folgendes hinzu

<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>

Laden Sie außerdem die drei Modelldateien (pos.m, seg.m, dep.m) herunter, die unter https://github.com/xpqiu/fnlp/releases veröffentlicht wurden, und legen Sie sie im Ordner dic ab.

2. Trennung

CNFactory factory = null;
//Geben Sie den Modelldateipfad an und rufen Sie den morphologischen Analysator auf
try {
    factory = CNFactory.getInstance("./dic");
} catch (LoadModelException lme) {
    lme.printStackTrace();
}
String message = "Jetzt Tentenga Mayoshi!";
String[][] tokens = factory.tag(message);
System.out.println(Arrays.asList(tokens[0]));
>> [Imaten,Tianqi,wahr,Gut,啊, !]

3. Teilwortzerlegung

CNFactory factory = null;
//Geben Sie den Modelldateipfad an und rufen Sie den morphologischen Analysator auf
try {
    factory = CNFactory.getInstance("./dic");
} catch (LoadModelException lme) {
    lme.printStackTrace();
}
String message = "Jetzt Tentenga Mayoshi!";
String[][] tokens = factory.tag(message);
System.out.println(Arrays.asList(tokens[1]));
>> [Zeit kurze Worte,Berühmt,Stellvertreter,Gestalten,Sprache,Zielpunkt]

Referenzlink

Recommended Posts

Chinesische morphologische Analyse wie Mecab mit FNLP
Englische morphologische Analyse wie MeCab mit OpenNLP
Ich habe eine morphologische Analyse mit MeCab versucht
Morphologische Analyse in Java mit Kuromoji
NLP4J 100 Sprachverarbeitungsklopfen mit NLP4J # 30 Lesen morphologischer Analyseergebnisse
Erhalten Sie detaillierte Ergebnisse der morphologischen Analyse mit Apache Solr 7.6 + SolrJ