Installieren Sie Cabocha 0.68 und führen Sie eine Abhängigkeitsanalyse mit Python durch
Habe Mecab installiert https://code.google.com/p/mecab/downloads/list
Hier wird davon ausgegangen, dass mecab-0.996.exe mit UTF-8 installiert ist.
Laden Sie cabocha-0.68.exe herunter http://code.google.com/p/cabocha/downloads/list
Führen Sie die heruntergeladene EXE-Datei aus. Zu diesem Zeitpunkt sollte der auszuwählende Zeichencode mit dem Zeichencode von Mecab übereinstimmen.
Ermöglichen Sie die Ausführung von Cabocha über "C: \ Programme (x86) \ CaboCha \ bin" im Pfad der Umgebungsvariablen. Python wird auch benötigt, um auf die DLL zuzugreifen.
Bestätigen Sie die Ausführung Erstellen Sie eine UTF8-Datei mit dem Namen input.txt, geben Sie die zu analysierende Zeichenfolge ein und führen Sie an der Eingabeaufforderung Folgendes aus.
cabocha < input.txt > out.txt
Wenn es richtig analysiert werden kann, wird die folgende Datei ausgegeben.
Hier---D
Marisa-D
Es ist ein langsamer Ort!
EOS
Beachten Sie, dass der Grund, warum die Datei hier weitergeleitet wird, darin besteht, dass UTF-8 nicht an der Eingabeaufforderung verarbeitet werden kann.
Dies ist Marisas langsamer Ort!
EOS
In diesem Fall lautet der Zeichencode von input.txt möglicherweise nicht utf-8. (Beachten Sie, dass der Standardwert ANSI ist, wenn Sie mit Notepad erstellt werden.)
Außerdem kann der folgende Fehler auftreten.
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
In diesem Fall wurde die Version von Cabocha nicht ordnungsgemäß aktualisiert. Löschen Sie daher den folgenden Ordner.
C:\Users\Nutzername\AppData\Local\VirtualStore\Program Files(x86)\CaboCha
Laden Sie cabocha-0.68.tar.bz herunter http://code.google.com/p/cabocha/downloads/list Diese Datei kann mit Lhaplus usw. dekomprimiert werden.
Verschieben Sie das aktuelle Verzeichnis in den Python-Ordner im entpackten Ordner und führen Sie den folgenden Befehl aus.
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
Dies liegt daran, dass cabocha-config unter Windows nicht installiert ist
Vorher ändern
#!/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"))
])
Schreiben Sie die Version und den Inhalt von ext_modules mit den installierten Informationen neu.
Nach der veränderung
#!/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 = "Gib den Hut zurück"
#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 #Hauptadresse
print ' Func:', chunk.func_pos #Funktionswort
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 #Einzigartiger Ausdruck
print ' Info:', token.additional_info
print ' Chunk:', token.chunk
print
Hut-D
Rückkehr
EOS
* 0 1D 0/1 0.000000
Hut Nomen,Allgemeines,*,*,*,*,Hut,Bogen,Boshi
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
* 1 -1D 0/0 0.000000
Verb, um zurückzukehren,Unabhängigkeit,*,*,Godan / Sa Linie,Grundform,Rückkehr,Kaes,Kaes
EOS
Chunk: 0
Score: 0.0
Link: 1
Size: 2
Pos: 0
Head: 0
Func: 1
Features: FCASE:Zu
FHS:Hut
FHP0:Substantiv
FHP1:Allgemeines
FFS:Zu
FFP0:Partikel
FFP1:Fallassistent
FFP2:Allgemeines
FLS:Hut
FLP0:Substantiv
FLP1:Allgemeines
FRS:Zu
FRP0:Partikel
FRP1:Fallassistent
FRP2:Allgemeines
LF:Zu
RL:Hut
RH:Hut
RF:Zu
FBOS:1
GCASE:Zu
A:Zu
Text
Hut
Zu
Chunk: 1
Score: 0.0
Link: -1
Size: 1
Pos: 2
Head: 0
Func: 0
Features: FHS:Rückkehr
FHP0:Verb
FHP1:Unabhängigkeit
FHF:Grundform
FFS:Rückkehr
FFP0:Verb
FFP1:Unabhängigkeit
FFF:Grundform
FLS:Rückkehr
FLP0:Verb
FLP1:Unabhängigkeit
FLF:Grundform
FRS:Rückkehr
FRP0:Verb
FRP1:Unabhängigkeit
FRF:Grundform
LF:Rückkehr
RL:Rückkehr
RH:Rückkehr
RF:Rückkehr
FEOS:1
A:Grundform
Text
Rückkehr
Surface:Hut
Normalized:Hut
Feature:Substantiv,Allgemeines,*,*,*,*,Hut,Bogen,Boshi
NE: None
Info: None
Chunk: <CaboCha.Chunk; proxy of <Swig Object of type 'CaboCha::Chunk *' at 0x0274A170> >
Surface:Zu
Normalized:Zu
Feature:Partikel,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
NE: None
Info: None
Chunk: None
Surface:Rückkehr
Normalized:Rückkehr
Feature:Verb,Unabhängigkeit,*,*,Godan / Sa Linie,Grundform,Rückkehr,Kaes,Kaes
NE: None
Info: None
Chunk: <CaboCha.Chunk; proxy of <Swig Object of type 'CaboCha::Chunk *' at 0x0274A170> >