19.02.2016 Codekorrektur / erforderliche Dateiaktualisierung 19.02.2016 Zusätzliche Fehlerbehebung
Warum überhaupt in Windows? Ich denke, es gibt eine Geschichte, aber es gibt einen Grund. Windows hat eine leistungsstarke IDE, Visual Studio.
Code-Vervollständigung, Snippets, Debugging ... Obwohl es sich um eine IDE handelt, die viele Vorteile hat, gibt es viele Schwierigkeiten beim Erstellen einer Umgebung unter Windows, und es scheint, dass Python-bezogene Probleme häufig Build-Probleme verursachen. Es gibt verschiedene Gründe, aber die Unix-Befehle funktionieren nicht und der Dateipfad ist anders geschrieben.
Dieses Mal werden wir eine solche Hürde überwinden und die Python-Bibliothek von MeCab installieren, die bei Prozessoren für natürliche Sprachen beliebt ist.
__Was ist MeCab? __ __ [MeCab] [* 0] ist ein morphologisches Analysewerkzeug. Morphologische Elemente bedeuten so etwas wie den kleinsten Block bedeutungsvoller Wörter. Beispielsweise kann "separates Schreiben mit Python" in "separates Schreiben mit Python" zerlegt werden. Darüber hinaus ist es multifunktional, z. B. das Analysieren von Teilwörtern und das Wiederherstellen des Prototyps. Es ist wunderbar. Es gibt andere morphologische Analysewerkzeuge wie [JUMAN] [* 1] und [KAKASI] [* 2] von der Universität Kyoto.
Grundsätzlich finden Sie in beiden Artikeln [mecab-python -Python] [* 3] [Build MeCab für 64-Bit-Windows (mit Visual Studio 2010) -iPentec] [* 4] unter Windows 64bit. Ich werde fortfahren. Vielen Dank. .. .. ..
Es scheint einfach so zu schreiben!
Installation von MeCab selbst. Sie müssen lediglich das Installationsprogramm ausführen und die Umgebungsvariablen schreiben.
C: \ Mecab \ bin
hinzu.C: \ MeCab \ etc \ mecabrc
Umgebungsvariablen ändern sich je nach Installationsziel. Überprüfen Sie dies daher selbst.
Ändern und erstellen Sie die Quelldatei. Da es sich um 32-Bit handelt, beheben Sie es für 64-Bit. Danach habe ich etwas behoben, das ein kleiner Fehler zu sein scheint.
Makefile.msvc.in 6. Zeile (* Update amd86-> X64)
<! LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X86 ADVAPI32.LIB !>LDFLAGS = /nologo /OPT:REF /OPT:ICF /LTCG /NXCOMPAT /DYNAMICBASE /MACHINE:X64 ADVAPI32.LIB ```
Makefile.msvc.in 8. Zeile
<! -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=@DIC_VERSION@
!>-DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=102 \
```
Makefile.msvc.in 9. Zeile
<! -DVERSION=""@VERSION@"" -DPACKAGE=""mecab""
!>-DVERSION=""0.996"" -DPACKAGE=""mecab""
```
Makefile.msvc.in Zeile 11
<! -DMECAB_DEFAULT_RC=""c:\Program Files\mecab\etc\mecabrc"" !>-DMECAB_DEFAULT_RC=""d:\Programs\mecab\etc\mecabrc"" ```
feature_index.cpp Zeile 356
<! case 't': os_ << (size_t)path->rnode->char_type; break; !>case 't': os_ << (unsigned int)path->rnode->char_type; break; ```
writer.cpp Zeile 260
<! case 'L': *os << lattice->size(); break; !>case 'L': *os << (unsigned int)lattice->size(); break; ```
mecab.h Zeile 1125
<! #ifndef SIWG !>#ifndef SWIG ```
Hinzugefügt zu common.h include part
!>#include
Bauen. Führen Sie den Ordner mecab-0.996 \ src aus. Es scheint, dass die Eingabeaufforderung mit Administratorrechten gestartet werden sollte.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64 nmake -f Makefile.msvc.in ```
und
mecab-test-gen.exe` überschreiben.mecab.h
und libmecab.lib
in MeCab \ sdk der MeCab-Haupteinheit. Kopieren Sie dieselbe Datei auch in den Ordner mecab-python-0.996. (* Notwendige Schritte aktualisiert)Das war's für den Bau von MeCab! Es ist ein ziemliches Problem, weil verschiedene Leute verschiedene Dinge sagen.
__Ergänzung __ ~~ 5. ist ausreichend, aber möglicherweise nicht das erforderliche Minimum. Ich werde es zu einem späteren Zeitpunkt erneut überprüfen ~~ (Bestätigt! Siehe oben.)
Endlich Python! Es gibt ein Skript, das nur unter Unix funktioniert. Schreiben wir es also für Windows neu.
Extrahieren Sie mecab-python-0.996.tar.gz
Schreiben Sie setup.py wie folgt neu. Bitte ändern Sie das Installationsziel entsprechend.
#!/usr/bin/env python from distutils.core import setup,Extension,os setup(name = "mecab-python", version = "0.996", py_modules=["MeCab"], ext_modules = [ Extension("_MeCab", ["MeCab_wrap.cxx",], include_dirs=[r"C:\MeCab\sdk"], library_dirs=[r"C:\MeCab\sdk"], libraries=["libmecab"]) ]) ```
Bauen. Erstellen Sie einen Build-Ordner
python setup.py build running build running build_py running build_ext building '_MeCab' extension C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\cl.exe /c /nolo go /Ox /MD /W3 /GS- /DNDEBUG -ID:\Programs\MeCab\sdk -IC:\Develop\python27\inclu de -IC:\Develop\python27\PC /TpMeCab_wrap.cxx /Fobuild\temp.win-amd64-2.7\Releas e\MeCab_wrap.obj MeCab_wrap.cxx MeCab_wrap.cxx(3747) : warning C4530: C++Ich verwende die Ausnahmebehandlung, aber entspanne mich Semantik ist nicht aktiviert./Bitte geben Sie EHsc an. C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:D:\Programs\MeCab\sdk /LIBPATH:C:\Develop\python27\libs /LIBPATH:C:\Develop\python27\PCbuild\amd64 libmecab.lib /EXPORT:init_MeCab build\temp.win-amd64-2.7\Release\MeCab_wrap.obj /OUT:build\lib.win-amd64-2.7_MeCab.pyd /IMPLIB:build\temp.win-amd64-2.7\Release_MeCab.lib/MANIFESTFILE:build\temp.win-amd64-2.7\Release_MeCab.pyd.manifest MeCab_wrap.obj : warning LNK4197:Export'init_MeCab'Wird mehrfach angegeben. Wenden Sie die allererste Spezifikation an. Bibliotheksaufbau\temp.win-amd64-2.7\Release_MeCab.lib und object build\t emp.win-amd64-2.7\Release_MeCab.Erstellen von exp ```
Installation. Verschiedene Dateien werden in Lib \ site-Pakete kopiert, in denen Python installiert ist
python setup.py install running install running build running build_py running build_ext running install_lib copying build\lib.win-amd64-2.7\MeCab.py -> C:\Develop\python27\Lib\site-packages copying build\lib.win-amd64-2.7_MeCab.pyd -> C:\Develop\python27\Lib\site-packages byte-compiling C:\Develop\python27\Lib\site-packages\MeCab.py to MeCab.pyc running install_egg_info Writing C:\Develop\python27\Lib\site-packages\mecab_python-0.996-py2.7.egg-info ```
Damit ist das Python-Setup abgeschlossen! Wie beim vorherigen Verfahren ist es aufgrund der unterschiedlichen Spezifikationen zwischen dem Unix-Terminal und der Eingabeaufforderung erforderlich, die Version und das Installationsziel direkt anzugeben.
__1. In python setup.py build
wird es Fehler: vcvarsall.bat
kann nicht gefunden werden __
Ich kann die Visual Studio-Datei scheinbar nicht lesen. Siehe [Stapelüberlauf] [* 5].
SET VS90COMNTOOLS=%VS140COMNTOOLS%`
Wenn Sie so etwas tun, sollte es funktionieren. VS14 für Visual Studio 2015. Für Visual Studio 2014 ist es VS13, verwirrend, aber seien Sie vorsichtig.
__2. Es gibt überhaupt keine vcvarsall.bat
... __
Lassen Sie uns Visual Studio reparieren und installieren.
Starten Sie das Visual Studio-Installationsprogramm. Wenn Sie es bereits installiert haben, sollte es ein Element namens "Ändern" geben.
Gehen Sie also zu Programmiersprache-> Visual C ++
und überprüfen Sie es. Drücken Sie dann Aktualisieren.
Das sollte in Ordnung sein.
Wenn alles erledigt ist, können Sie endlich MeCab verwenden! Lass es uns sofort versuchen
test.txt
Hallo. Ich bin Baymax. Schützen Sie Ihre Gesundheit.
Bereiten Sie zunächst die obige Testdatei vor. Und mit Python,
> python
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MeCab
>>> import sys
>>> m = MeCab.Tagger("-Owakati")
>>> f = open('test.txt','r')
>>> text = f.read().decode('utf-8')
>>> f.close()
>>> f = open('test.txt','w')
>>> f.write(m.parse(text.encode('utf-8')))
>>> f.close()
so was!
Dann die Testdatei, die ich zuvor erwähnt habe
Hallo . Ich bin Bay Max. Schützen Sie Ihre Gesundheit.
Wir sehen uns! Es ist richtig geschrieben! Aufgrund des MeCab-Wörterbuchs ist Baymax jedoch aufgeteilt. .. .. .. .. .. ..
__ (• ー •) <Benötigen Sie wirklich einen Pflegeroboter, der die morphologische Analyse korrekt durchführen kann? __ __
Sie sollten es können! Fügen wir also das nächste Mal ein Wörterbuch hinzu.
MeCab: Yet Another Part-of-Speech and Morphological Analyzer [KAKASI - Kanji → Kana (Romaji) Konvertierungsprogramm] [* 1] [Japanisches morphologisches Analysesystem JUMAN] [* 2] [Windows 64bit, Mecab-Python-Python] [* 3] [MeCab für 64-Bit-Windows erstellen (mit Visual Studio 2010) -iPentec] [* 4] Was blieb bei der Einführung von MeCab Python Add Star hängen - Beginn des Data Mining und des maschinellen Lernens stack overflow -error: Unable to find vcvarsall.bat
<! - Referenzliste->