MeCab von Python

Aufgabe

Methode

Annahme

Inhalt

1. Erstellen Sie die Build-Umgebung

2. Erstellen Sie libmecab.lib und libmecab.dll (erstellen Sie MeCab)

:feature_index.cpp.patch


--- mecab-0.996.org/src/feature_index.cpp	Sun Nov 25 14:35:33 2012
+++ mecab-0.996/src/feature_index.cpp	Sat Mar  1 11:19:20 2014
@@ -353,7 +353,7 @@
               if (!r) goto NEXT;
               os_ << r;
             } break;
-            case 't':  os_ << (size_t)path->rnode->char_type;     break;
+            case 't':  os_ << (unsigned int)path->rnode->char_type;     break;
             case 'u':  os_ << ufeature; break;
             case 'w':
               if (path->rnode->stat == MECAB_NOR_NODE) {

:writer.cpp.patch


--- mecab-0.996.org/src/writer.cpp	Sun Sep 30 01:44:27 2012
+++ mecab-0.996/src/writer.cpp	Sat Mar  1 11:20:32 2014
@@ -257,7 +257,7 @@
             // input sentence
           case 'S': os->write(lattice->sentence(), lattice->size()); break;
             // sentence length
-          case 'L': *os << lattice->size(); break;
+          case 'L': *os << (unsigned int)lattice->size(); break;
             // morph
           case 'm': os->write(node->surface, node->length); break;
           case 'M': os->write(reinterpret_cast<const char *>

:Makefile.msvc.in.patch


--- mecab-0.996.org/src/Makefile.msvc.in	Sun Sep 30 01:44:27 2012
+++ mecab-0.996/src/Makefile.msvc.in	Thu Mar  6 02:36:41 2014
@@ -3,7 +3,7 @@
 LINK=link.exe
 
 CFLAGS = /EHsc /O2 /GL /GA /Ob2 /nologo /W3 /MT /Zi /wd4800 /wd4305 /wd4244
-LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X86 ADVAPI32.LIB
+LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X86_amd64 ADVAPI32.LIB
 DEFS =  -D_CRT_SECURE_NO_DEPRECATE -DMECAB_USE_THREAD \
         -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=@DIC_VERSION@ \
         -DVERSION="\"@VERSION@\"" -DPACKAGE="\"mecab\"" \
> call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" X86_amd64
> nmake -f Makefile.msvc.in

3. Erstellen eines Installationsprogramms (Erstellen von Python-Bindungen)

setup.py


#!/usr/bin/env python

from distutils.core import setup,Extension

setup(name = "mecab-python",
	version = "0.996",
	py_modules=["MeCab"],
	ext_modules = [
		Extension("_MeCab",
			["MeCab_wrap.cxx",],
			include_dirs=['C:/Program Files (x86)/MeCab/sdk'],
			library_dirs=['C:/Program Files (x86)/MeCab/sdk'],
			libraries=["libmecab"])
			])
> python setup.py bdist_wininst

4. Installation (Ausführen des Installationsprogramms)

5. Funktionsprüfung

> python test.py
0.996
Taro Substantiv,Proprietäre Nomenklatur,Name der Person,Name,*,*,Taro,Taro,Taro
Ist ein Hilfswort,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Dieser Zusatz,*,*,*,*,*,Dies,Dies,Dies
Buchnomenklatur,Allgemeines,*,*,*,*,Buch,Hong,Hong
Hilfswörter,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Zwei Nomenklaturen,Nummer,*,*,*,*,zwei,D.,D.
Ro Substantiv,Allgemeines,*,*,*,*,Ro,Rowe,Niedrig
Hilfswörter,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Siehe Verb,Unabhängigkeit,*,*,Ein Schritt,Kontinuierlicher Typ,sehen,Mi.,Mi.
Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta
Weibliche Nomenklatur,Allgemeines,*,*,*,*,Weiblich,Josei,Josei
Ni,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Verb übergeben,Unabhängigkeit,*,*,Godan / Sa Linie,Kontinuierlicher Typ,aushändigen,ich,ich
Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta
.. Symbol,Phrase,*,*,*,*,。,。,。
EOS

  	BOS/EOS,*,*,*,*,*,*,*,*
Taro Substantiv,Proprietäre Nomenklatur,Name der Person,Name,*,*,Taro,Taro,Taro
Ist ein Hilfswort,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Dieser Zusatz,*,*,*,*,*,Dies,Dies,Dies
Buchnomenklatur,Allgemeines,*,*,*,*,Buch,Hong,Hong
Hilfswörter,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Zwei Nomenklaturen,Nummer,*,*,*,*,zwei,D.,D.
Ro Substantiv,Allgemeines,*,*,*,*,Ro,Rowe,Niedrig
Hilfswörter,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Siehe Verb,Unabhängigkeit,*,*,Ein Schritt,Kontinuierlicher Typ,sehen,Mi.,Mi.
Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta
Weibliche Nomenklatur,Allgemeines,*,*,*,*,Weiblich,Josei,Josei
Ni,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Verb übergeben,Unabhängigkeit,*,*,Godan / Sa Linie,Kontinuierlicher Typ,aushändigen,ich,ich
Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta
.. Symbol,Phrase,*,*,*,*,。,。,。
  	BOS/EOS,*,*,*,*,*,*,*,*
EOS
EOS
filename: C:\Program Files (x86)\MeCab\etc\..\dic\ipadic\sys.dic
charset: UTF-8
size: 392126
type: 0
lsize: 1316
rsize: 1316
version: 102

Referenz

Recommended Posts

MeCab von Python
Stellen Sie MeCab in Python 3 zur Verfügung
Hinweise zur Verwendung von MeCab aus Python
SQL zu SQL
Von Python bis zur Verwendung von MeCab (und CaboCha)
Verwenden Sie thingspeak aus Python
Berühren Sie MySQL in Python 3
Bedienen Sie Filemaker von Python aus
Verwenden Sie fließend Python
Greifen Sie über Python auf Bitcoind zu
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Python aus oder importieren
Verwenden Sie MySQL aus Python
Verwenden Sie Mecab mit Python 3
Führen Sie Python aus Excel aus
Installieren Sie Python von der Quelle
Bedienen Sie Neutronen von Python!
Verwenden Sie MySQL aus Python
Betreiben Sie LXC von Python aus
Manipuliere Riak aus Python
Erzwinge Python aus Fortran
Verwenden Sie BigQuery aus Python.
Führen Sie den Befehl von Python aus
[Python] Von Stdin lesen
Verwenden Sie mecab-ipadic-neologd von Python
Mit Python abflachen
Rufen Sie CPLEX von Python aus auf (DO cplex)
Deep Python hat von DEAP gelernt
Post von Python nach Slack
Grammatikfunktionen aus Python3.6 hinzugefügt
Flirte von PHP nach Python
Python
Informationen von tweet_id (Python)
OCR aus PDF in Python
Sammeln von Informationen von Twitter mit Python (morphologische Analyse mit MeCab)
Führen Sie das Illustrator-Skript von Python aus
Verwenden Sie MySQL von Anaconda (Python)
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Studie aus Python Hour4: Objektorientiert ②
Fragen Sie Athena von Lambda Python ab
Greifen Sie über Python auf Oracle DB zu
Studie aus Python Hour3: Funktionen
Keyword-Extraktion mit MeCab (Python)
Stoppen Sie Omxplayer vom Python-Code
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Stellen Sie von Python aus eine Verbindung zu SQLite her
Installieren Sie pyenv von Homebrew, installieren Sie Python von pyenv
Studie aus Python Hour4: Objektorientiert ①
Python-Namenskonvention (ab PEP8)
Mit Skype benachrichtigen Sie mit Skype von Python!
Verwenden Sie die e-Stat-API von Python
Registrieren Sie das Redmine-Problem von Python
Rufen Sie Matlab von Python zur Optimierung auf
Führen Sie das Python-Skript aus der Batchdatei aus
Python: Tags von HTML-Daten ausschließen
Verwenden Sie Stanford Core NLP von Python
Berühren Sie Python-Objekte in Elixir
Hit Schatzdaten von Python Pandas
Verwenden von Rstan aus Python mit PypeR