2016/2/19 Correction de code / mise à jour de fichier requise 2016/2/19 Ajout du dépannage
Pourquoi dans Windows en premier lieu? Je pense qu'il y a une histoire, mais il y a une raison. Windows a un puissant IDE, Visual Studio.
Complétion de code, extraits de code, débogage ... Bien que ce soit un IDE qui a de nombreux avantages, il y a beaucoup de difficultés à construire un environnement sous Windows, et il semble que les problèmes liés à Python causent souvent des problèmes de construction. Il y a plusieurs raisons, mais les commandes Unix ne fonctionnent pas et le chemin du fichier est écrit différemment.
Cette fois, nous allons surmonter un tel obstacle et installer la bibliothèque Python de MeCab, qui est un favori des processeurs de langage naturel.
__Qu'est-ce que MeCab? __ [MeCab] [* 0] est un outil d'analyse morphologique. Les éléments morphologiques signifient quelque chose comme le plus petit bloc de mots significatifs. Par exemple, «l'écriture séparée avec python» peut être décomposée en «écriture séparée avec python». De plus, il est multifonctionnel, comme l'analyse des mots des pièces et la restauration du prototype. C'est incroyable. Il existe d'autres outils d'analyse morphologique tels que [JUMAN] [* 1] et [KAKASI] [* 2] de l'Université de Kyoto.
En gros, reportez-vous aux deux articles [mecab-python -Python] [* 3] [Build MeCab for 64-bit Windows (using Visual Studio 2010) -iPentec] [* 4] on Windows 64bit. Je procéderai. Merci. .. .. ..
Cela semble facile d'écrire comme ça!
Installation de MeCab lui-même. Tout ce que vous avez à faire est d'exécuter le programme d'installation et d'écrire les variables d'environnement.
C: \ Mecab \ bin
à la variable d'environnement PATH.C: \ MeCab \ etc \ mecabrc
Les variables d'environnement changent en fonction de la destination d'installation, veuillez donc vérifier par vous-même.
Modifiez et créez le fichier source. Puisqu'il s'agit de 32 bits, corrigez-le pour 64 bits. Après cela, j'ai corrigé quelque chose qui semble être une petite erreur.
Makefile.msvc.in 6ème ligne (* Mise à jour 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ème ligne
<! -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ème ligne
<! -DVERSION=""@VERSION@"" -DPACKAGE=""mecab""
!>-DVERSION=""0.996"" -DPACKAGE=""mecab""
```
Makefile.msvc.en ligne 11
<! -DMECAB_DEFAULT_RC=""c:\Program Files\mecab\etc\mecabrc"" !>-DMECAB_DEFAULT_RC=""d:\Programs\mecab\etc\mecabrc"" ```
feature_index.cpp Ligne 356
<! case 't': os_ << (size_t)path->rnode->char_type; break; !>case 't': os_ << (unsigned int)path->rnode->char_type; break; ```
writer.cpp Ligne 260
<! case 'L': *os << lattice->size(); break; !>case 'L': *os << (unsigned int)lattice->size(); break; ```
mecab.h ligne 1125
<! #ifndef SIWG !>#ifndef SWIG ```
Ajouté à common.h include part
!>#include
Construisez. Exécutez dans le dossier mecab-0.996 \ src. Il semble que l'invite de commande doit être démarrée avec des privilèges d'administrateur.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64 nmake -f Makefile.msvc.in ```
libmecab.dll
, mecab-cost-train.exe
, mecab-dict-gen.exe
, mecab-dict-index.exe
, mecab-system dans MeCab \ bin du corps Mecab Remplacez la copie de -eval.exe
et de mecab-test-gen.exe
.mecab.h
et libmecab.lib
dans MeCab \ sdk de l'unité principale MeCab. Copiez également le même fichier dans le dossier mecab-python-0.996. (* Mise à jour des étapes nécessaires)C'est tout pour construire MeCab! C'est tout un problème parce que différentes personnes disent des choses différentes.
__Supplément __ ~~ 5. est suffisant mais peut ne pas être le minimum requis. Je le vérifierai à une date ultérieure ~~ (Confirmé! Voir ci-dessus.)
Enfin Python! Il existe un script qui ne fonctionne que sous Unix, alors réécrivons-le pour Windows.
Extrait mecab-python-0.996.tar.gz
Réécrivez setup.py comme suit. Veuillez modifier la destination d'installation comme il convient.
#!/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"]) ]) ```
Construisez. créer un dossier de construction
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++J'utilise la gestion des exceptions, mais je me détend La sémantique n'est pas activée./Veuillez spécifier EHsc. 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:exportation'init_MeCab'Est spécifié plusieurs fois. Appliquez la toute première spécification. Construction de la bibliothèque\temp.win-amd64-2.7\Release_MeCab.construction de lib et d'objet\t emp.win-amd64-2.7\Release_MeCab.Créer exp ```
Installation. Divers fichiers sont copiés dans Lib \ site-packages où python est installé
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 ```
Ceci termine la configuration de python! Comme pour la procédure précédente, en raison de la différence de spécifications entre le terminal Unix et l'invite de commande, il est nécessaire de spécifier directement la version et la destination de l'installation.
__1. Dans python setup.py build
, ʻerror: Impossible de trouver vcvarsall.bat` __
Je n'arrive pas à lire le fichier Visual Studio. Reportez-vous à [stack overflow] [* 5].
SET VS90COMNTOOLS=%VS140COMNTOOLS%`
Si vous faites quelque chose comme ça, ça devrait marcher. VS14 pour Visual Studio 2015. Pour Visual Studio 2014, c'est VS13, déroutant mais soyez prudent.
__2. Il n'y a pas de vcvarsall.bat
en premier lieu ... __
Corrigeons et installons Visual Studio.
Lancez le programme d'installation de Visual Studio. Si vous l'avez déjà installé, il devrait y avoir un élément appelé Change
.
Alors, allez dans Programming Language-> Visual C ++
et vérifiez-le. Appuyez ensuite sur Mettre à jour.
Cela devrait être bien.
Quand tout est fait, vous pouvez enfin utiliser MeCab! Essayons-le immédiatement
test.txt
Bonjour. Je suis Baymax. Protégez votre santé.
Tout d'abord, préparez le fichier de test ci-dessus. Et avec 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()
comme ça!
Puis le fichier de test que j'ai mentionné plus tôt
Salut . Je suis Bay Max. Protégez votre santé.
À plus! C'est écrit correctement! Cependant, à cause du dictionnaire de MeCab, Baymax est divisé. .. .. .. .. .. ..
__ (• ー •) <Avez-vous vraiment besoin d'un robot de soins capable d'effectuer correctement l'analyse morphologique? __
Vous devriez pouvoir le faire! Alors la prochaine fois, ajoutons un dictionnaire.
MeCab: Yet Another Part-of-Speech and Morphological Analyzer [Programme de conversion KAKASI --Kanji → Kana (Romaji)] [* 1] [Système d'analyse morphologique japonais JUMAN] [* 2] [Windows 64 bits, mecab-python -Python] [* 3] [Créer MeCab pour Windows 64 bits (à l'aide de Visual Studio 2010) -iPentec] [* 4] Ce qui est resté bloqué avec l'introduction de MeCab Python Add Star - Début de l'exploration de données et de l'apprentissage automatique stack overflow -error: Unable to find vcvarsall.bat
<! - Liste de références->
Recommended Posts