Von Python bis zur Verwendung von MeCab (und CaboCha)

Umgebung

Mac OS 10.9.4 Python 2.7

Cabocha installieren

MeCab ist erforderlich, um CaboCha zu verwenden

CRF ++ Installation

Die neueste Version zum Zeitpunkt des Schreibens ist 0,58 http://crfpp.googlecode.com/svn/trunk/doc/index.html#download

Entpacken

$ cd CRF++-0.58
$ ./configure
$ make
$ make install

$ cd python
$ sudo python setup.py install

Installieren Sie MeCab

Die neueste Version zum Zeitpunkt des Schreibens ist 0.996 https://code.google.com/p/mecab/

Aus Downloads

--mecab-0.996.tar.gz (Mecab-Körper)

Herunterladen und entpacken.

$ cd mecab-0.996
$ ./configure
$ make
$ sudo make install

$ cd ..
$ cd mecab-python-0.996
$ sudo python setup.py install

$ cd ..
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure
$ make
$ sudo make install

Es gibt keine solche Datei oder kein solches Verzeichnis


 Wenn es dir gesagt wird

#### **`sudo apt-get install python2.7-dev`**
```7-dev


 Versuche dich zu bewegen

```bash
$ mecab
Ich bin Sakamoto und
Sakamoto?	????,????,*,*,*,*,*
??	̾??,??ͭ̾??,?ȿ?,*,*,*,*
??Aber????,????,*,*,*,*,*
EOS

Die Charaktere sind verstümmelt. Es scheint, dass es nicht utf-8 ist, wenn der Zeichencode des Wörterbuchs die Standardeinstellung ist.

Wechseln Sie in das Verzeichnis mecab-ipadic und konfigurieren Sie es neu in UTF-8. Reinigen und dann neu konfigurieren

$ make clean
$ ./configure --with-charset=utf8
$ make 
$ sudo make install

Ubuntu

libmecab.so.2: cannot open shared object file: No such file or directory


 Wenn es dir gesagt wird
```sudo ldconfig ```
 Es scheint gut zu sein

 Versuchen Sie es.

```bash
$ mecab
Ich bin Sakamoto und
Sakamoto Substantiv,Proprietäre Nomenklatur,Name der Person,Nachname,*,*,Sakamoto,Sakamoto,Sakamoto
Ist ein Hilfsverb,*,*,*,Besonderer Tod,Grundform,ist,Tod,Tod
Ist ein Assistent,Verbindungsassistent,*,*,*,*,Aber,Ga,Ga
EOS

Fest.

Die Einstellung von Mecab ist übrigens in Mecabrc geschrieben.

$ sudo find / -name "mecabrc"
/usr/local/etc/mecabrc
$ sudo emacs /usr/local/etc/mecabrc

Es war standardmäßig so

;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir =  /usr/local/lib/mecab/dic/ipadic

; userdic = /home/foo/bar/user.dic

; output-format-type = wakati
; input-buffer-size = 8192

; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n

Es scheint, dass dicdir ein Verzeichnis von Wörterbuchdaten ist.

CaboCha installieren

Die neueste Version zum Zeitpunkt des Schreibens ist 0,68 https://code.google.com/p/cabocha/

Laden Sie cabocha-0.68.tar.bz2 von Downloads herunter und entpacken Sie es

$ cd cabocha-0.68
$ ./configure
$ make
$ sudo make install

$ cd pythin
$ sudo python setup.py install

Versuchen Sie eine morphologische Analyse mit MeCab

Funktionsprüfung mit Python

import MeCab
mt = MeCab.Tagger("-Ochasen")
print mt.parse("Ich bin Sakamoto und")
Sakamoto Sakamoto Sakamoto Nomen-Proprietäre Nomenklatur-Name der Person-Nachname
Es ist der Tod. Hilfsverb Spezial / Tod Grundform
Gaga ist Assistentin-Verbindungsassistent
EOS

Siehe den Teiletext

Es ist ärgerlich, dass ich nicht gehen kann, wenn ich nicht sehr vorsichtig mit dem Zeichencode bin.

# coding: utf-8
import MeCab

mt = MeCab.Tagger("mecabrc")
res = mt.parseToNode("Ich bin Sakamoto und")

while res:
	print res.surface
	print res.feature
	res = res.next

BOS/EOS,*,*,*,*,*,*,*,*
Sakamoto
Substantiv,固有Substantiv,Name der Person,Nachname,*,*,Sakamoto,Sakamoto,Sakamoto
ist
Hilfsverb,*,*,*,Besonderer Tod,Grundform,ist,Tod,Tod
Aber
Partikel,接続Partikel,*,*,*,*,Aber,Ga,Ga

BOS/EOS,*,*,*,*,*,*,*,*

Es gab viele Implementierungen, die res.feature mit "," aufteilten, aber ich frage mich, ob es keine andere Wahl gibt, als dies zu tun. Nun, es scheint kein Problem zu sein, also werde ich es versuchen.

# coding: utf-8
import MeCab

mt = MeCab.Tagger("mecabrc")
res = mt.parseToNode("Ich bin Sakamoto und")

while res:
	print res.surface
	arr = res.feature.split(",")
	print "Teil: " + arr[0]
	res = res.next

Teil: BOS/EOS
Sakamoto
Teil:Substantiv
ist
Teil:Hilfsverb
Aber
Teil:Partikel

Teil: BOS/EOS

Wenn Sie nicht res = res.next anstelle von res.next setzen, werden Sie natürlich eine Endlosschleife ausführen. Ich bin süchtig nach Java.

Versuchen Sie es mit CaboCha

Ich werde es wieder schreiben, wenn ich es versuche.

Recommended Posts

Von Python bis zur Verwendung von MeCab (und CaboCha)
Hinweise zur Verwendung von MeCab aus Python
MeCab von Python
Verwenden von Python und MeCab mit Azure Databricks
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Tweet-Analyse mit Python, Mecab und CaboCha
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Ich möchte mit Python eine E-Mail von Google Mail senden.
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Erstellen Sie mit Mecab aus Python3 ein Tool, das Furigana automatisch mit HTML schüttelt
Mit Python abflachen
Post von Python nach Slack
Flirte von PHP nach Python
Stellen Sie MeCab in Python 3 zur Verfügung
PUSH-Benachrichtigung von Python an Android mithilfe der Google-API
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Mit Python auf Twitter posten
MessagePack-Aufruf von Ruby to Python-Methoden (oder Python to Ruby-Methoden) mithilfe von RPC
Starten Sie mit Python zu Selen
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Stellen Sie von Python aus eine Verbindung zu SQLite her
Kopieren Sie S3-Dateien mit GSUtil von Python nach GCS
Holen Sie sich Dateien von Linux mit paramiko und scp [Python]
Abfrage von Python an Amazon Athena (unter Verwendung des benannten Profils)
Versuchen Sie es mit GUI, PyQt in Python
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
Visualisieren Sie die Pflanzenaktivität aus dem Weltraum mithilfe von Satellitendaten und Python
Lernen Sie die Grundlagen und Tipps der kanonischen Python-Ausdrücke von Grund auf neu
Herstellen einer Verbindung zu verschiedenen DBs über Python (PEP 249) und SQL Alchemy
Prognostizieren Sie das Geschlecht anhand des Namens mithilfe der Gender-API und von Pykakasi in Python
[Python] Zufällige Datenextraktion / -kombination aus DataFrame mit Random und Pandas
Nehmen Sie Zeitraffer von einer PC-Kamera mit Python, OpenCV auf
Gehen Sie zur Sprache, um Teil 8 zu sehen und sich daran zu erinnern. Rufen Sie die GO-Sprache von Python aus auf
Rufen Sie Matlab von Python zur Optimierung auf
So installieren Sie Python mit Anaconda
Python 3.6 unter Windows ... und zu Xamarin.
[Einführung in Python3 Tag 1] Programmierung und Python
Verwenden von Rstan aus Python mit PypeR
Authentifizierung mit Tweepy-User-Authentifizierung und Anwendungsauthentifizierung (Python)
Python, Ausbeute, Rückkehr und manchmal Ausbeute von
Post von Python auf Facebook Timeline
[Lambda] [Python] Von Lambda auf Twitter posten!
Lesen und verwenden Sie Python-Dateien aus Python
Über Python, aus und importieren, als
Stellen Sie von Python aus eine Verbindung zur utf8mb4-Datenbank her
Verwenden von Cloud-Speicher aus Python3 (Einführung)
Python (vom ersten Mal bis zur Ausführung)
Mecab / Cabocha / KNP unter Python + Windows
Poste ein Bild von Python auf Tumblr
Clustering und Visualisierung mit Python und CytoScape
Python-Protokollierung und Dump an JSON
So greifen Sie über Python auf Wikipedia zu
Python, um von einer anderen Sprache zu wechseln
Selen und Python zum Öffnen von Google
Führen Sie Ansible über Python mithilfe der API aus
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Greifen Sie mit OAuth 2.0 von Python aus auf Tabellenkalkulationen zu