Installez Cabocha 0.68 et effectuez une analyse des dépendances avec Python
Faire installer Mecab https://code.google.com/p/mecab/downloads/list
Ici, on suppose que mecab-0.996.exe est installé avec UTF-8.
Téléchargez cabocha-0.68.exe http://code.google.com/p/cabocha/downloads/list
Exécutez le fichier EXE téléchargé. À ce stade, le code de caractère à sélectionner doit être le même que le code de caractère de Mecab.
Rendez possible l'exécution de cabocha via "C: \ Program Files (x86) \ CaboCha \ bin" dans le chemin de la variable d'environnement. Il est également nécessaire pour python d'accéder à la DLL.
Confirmer l'exécution Créez un fichier UTF8 appelé input.txt, entrez la chaîne de caractères que vous souhaitez analyser et exécutez ce qui suit à partir de l'invite de commande.
cabocha < input.txt > out.txt
S'il peut être analysé correctement, le fichier suivant sera généré.
ici---D
Marisa-D
C'est un endroit lent!
EOS
Notez que la raison pour laquelle le fichier est acheminé ici est que UTF-8 ne peut pas être géré à l'invite de commande.
C'est l'endroit lent de Marisa!
EOS
Si cela se produit, le code de caractère de input.txt peut ne pas être utf-8. (Notez que la valeur par défaut est ANSI lorsqu'elle est créée avec le Bloc-notes)
En outre, l'erreur suivante peut se produire.
svm.cpp(140) [version == MODEL_VERSION] incompatible version: 101
svm.cpp(751) [size >= 2] dep.cpp(79) [!failed] no such file or directory: C:\Program Files (x86)\CaboCha\etc\..\model\dep.ipa.model
Dans ce cas, la version de cabocha n'a pas été correctement mise à jour, supprimez donc le dossier suivant.
C:\Users\Nom d'utilisateur\AppData\Local\VirtualStore\Program Files(x86)\CaboCha
Téléchargez cabocha-0.68.tar.bz http://code.google.com/p/cabocha/downloads/list Ce fichier peut être décompressé avec Lhaplus etc.
Déplacez le répertoire actuel dans le dossier python dans le dossier décompressé et exécutez la commande suivante.
python setup.py install
Traceback (most recent call last):
File "setup.py", line 13, in <module>
version = cmd1("cabocha-config --version"),
File "setup.py", line 7, in cmd1
return os.popen(str).readlines()[0][:-1]
IndexError: list index out of range
Cela se produit car cabocha-config n'est pas installé sur Windows
Changer avant
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return string.split (cmd1(str))
setup(name = "cabocha-python",
version = cmd1("cabocha-config --version"),
py_modules=["CaboCha"],
ext_modules = [
Extension("_CaboCha",
["CaboCha_wrap.cxx",],
include_dirs=cmd2("cabocha-config --inc-dir"),
library_dirs=cmd2("cabocha-config --libs-only-L"),
libraries=cmd2("cabocha-config --libs-only-l"))
])
Réécrire la version et le contenu des ext_modules avec les informations installées.
Après le changement
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return string.split (cmd1(str))
setup(name = "cabocha-python",
version = "0.68",
py_modules=["CaboCha"],
ext_modules = [
Extension("_CaboCha",
["CaboCha_wrap.cxx",],
include_dirs=[r"C:\Program Files (x86)\CaboCha\sdk"],
library_dirs=[r"C:\Program Files (x86)\CaboCha\sdk"],
libraries=['libcabocha'])
])
python setup.py install
#!/usr/bin/python
# -*- coding: utf-8 -*-
import CaboCha
# c = CaboCha.Parser("");
c = CaboCha.Parser("")
sentence = "Retourner le chapeau"
#print c.parseToString(sentence)
#tree = c.parse(sentence)
#
tree = c.parse(sentence)
print tree.toString(CaboCha.FORMAT_TREE)
print tree.toString(CaboCha.FORMAT_LATTICE)
#print tree.toString(CaboCha.FORMAT_XML)
for i in range(tree.chunk_size()):
chunk = tree.chunk(i)
print 'Chunk:', i
print ' Score:', chunk.score
print ' Link:', chunk.link
print ' Size:', chunk.token_size
print ' Pos:', chunk.token_pos
print ' Head:', chunk.head_pos #Adresse principale
print ' Func:', chunk.func_pos #Mot fonctionnel
print ' Features:',
for j in range(chunk.feature_list_size):
print ' ' + chunk.feature_list(j)
print
print 'Text'
for ix in range(chunk.token_pos,chunk.token_pos + chunk.token_size):
print ' ', tree.token(ix).surface
print
for i in range(tree.token_size()):
token = tree.token(i)
print 'Surface:', token.surface
print ' Normalized:', token.normalized_surface
print ' Feature:', token.feature
print ' NE:', token.ne #Expression unique
print ' Info:', token.additional_info
print ' Chunk:', token.chunk
print
Chapeau-D
revenir
EOS
* 0 1D 0/1 0.000000
Chapeau substantif,Général,*,*,*,*,chapeau,Arc,Boshi
Auxiliaire,Assistant de cas,Général,*,*,*,À,Wo,Wo
* 1 -1D 0/0 0.000000
Verbe retourner,Indépendance,*,*,Ligne Godan / Sa,Forme basique,revenir,Kaes,Kaes
EOS
Chunk: 0
Score: 0.0
Link: 1
Size: 2
Pos: 0
Head: 0
Func: 1
Features: FCASE:À
FHS:chapeau
FHP0:nom
FHP1:Général
FFS:À
FFP0:Particule
FFP1:Assistant de cas
FFP2:Général
FLS:chapeau
FLP0:nom
FLP1:Général
FRS:À
FRP0:Particule
FRP1:Assistant de cas
FRP2:Général
LF:À
RL:chapeau
RH:chapeau
RF:À
FBOS:1
GCASE:À
A:À
Text
chapeau
À
Chunk: 1
Score: 0.0
Link: -1
Size: 1
Pos: 2
Head: 0
Func: 0
Features: FHS:revenir
FHP0:verbe
FHP1:Indépendance
FHF:Forme basique
FFS:revenir
FFP0:verbe
FFP1:Indépendance
FFF:Forme basique
FLS:revenir
FLP0:verbe
FLP1:Indépendance
FLF:Forme basique
FRS:revenir
FRP0:verbe
FRP1:Indépendance
FRF:Forme basique
LF:revenir
RL:revenir
RH:revenir
RF:revenir
FEOS:1
A:Forme basique
Text
revenir
Surface:chapeau
Normalized:chapeau
Feature:nom,Général,*,*,*,*,chapeau,Arc,Boshi
NE: None
Info: None
Chunk: <CaboCha.Chunk; proxy of <Swig Object of type 'CaboCha::Chunk *' at 0x0274A170> >
Surface:À
Normalized:À
Feature:Particule,Assistant de cas,Général,*,*,*,À,Wo,Wo
NE: None
Info: None
Chunk: None
Surface:revenir
Normalized:revenir
Feature:verbe,Indépendance,*,*,Ligne Godan / Sa,Forme basique,revenir,Kaes,Kaes
NE: None
Info: None
Chunk: <CaboCha.Chunk; proxy of <Swig Object of type 'CaboCha::Chunk *' at 0x0274A170> >
Recommended Posts