SynCha-CaboCha-MeCab wrapper for spaCy
Project description
spaCy-SynCha
SynCha-CaboCha-MeCab wrapper for spaCy
Basic Usage
>>> import spacy_syncha
>>> nlp=spacy_syncha.load()
>>> doc=nlp("太郎は花子が読んでいる本を次郎に渡した")
>>> for t in doc:
... print(t.i,t.orth_,t.lemma_,t.pos_,t.tag_,t.head.i,t.dep_,t.norm_,t.ent_iob_,t.ent_type_)
...
0 太郎 太郎 PROPN 名詞-固有名詞-人名-名 12 nsubj タロウ B PERSON
1 は は ADP 助詞-係助詞 0 case ハ O
2 花子 花子 PROPN 名詞-固有名詞-人名-名 4 nsubj ハナコ B PERSON
3 が が ADP 助詞-格助詞-一般 2 case ガ O
4 読ん 読む VERB 動詞-自立 7 acl ヨン O
5 で で CCONJ 助詞-接続助詞 4 mark デ O
6 いる いる AUX 動詞-非自立 4 aux イル O
7 本 本 NOUN 名詞-一般 12 obj ホン O
8 を を ADP 助詞-格助詞-一般 7 case ヲ O
9 次 次 NOUN 名詞-一般 10 compound ツギ O
10 郎 郎 NOUN 名詞-一般 12 iobj ロウ O
11 に に ADP 助詞-格助詞-一般 10 case ニ O
12 渡し 渡す VERB 動詞-自立 12 ROOT ワタシ O
13 た た AUX 助動詞 12 aux タ O
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
太郎 PROPN ═╗<══════════╗ nsubj(主語)
は ADP <╝ ║ case(格表示)
花子 PROPN ═╗<╗ ║ nsubj(主語)
が ADP <╝ ║ ║ case(格表示)
読ん VERB ═══╝═╗═╗<╗ ║ acl(連体修飾節)
で CCONJ <════╝ ║ ║ ║ mark(標識)
いる AUX <══════╝ ║ ║ aux(動詞補助成分)
本 NOUN ═╗═══════╝<╗ ║ obj(目的語)
を ADP <╝ ║ ║ case(格表示)
次 NOUN <╗ ║ ║ compound(複合)
郎 NOUN ═╝═╗<╗ ║ ║ iobj(間接目的語)
に ADP <══╝ ║ ║ ║ case(格表示)
渡し VERB ═╗═══╝═════╝═╝ ROOT(親)
た AUX <╝ aux(動詞補助成分)
>>> from deplacy.deprelja import deprelja
>>> for b in spacy_syncha.bunsetu_spans(doc):
... for t in b.lefts:
... print(spacy_syncha.bunsetu_span(t),"->",b,"("+deprelja[t.dep_]+")")
...
花子が -> 読んでいる (主語)
読んでいる -> 本を (連体修飾節)
太郎は -> 渡した (主語)
本を -> 渡した (目的語)
次郎に -> 渡した (間接目的語)
spacy_syncha.load(UniDic)
loads spaCy Language pipeline for SynCha-CaboCha-MeCab. Available UniDic
options are:
UniDic="gendai"
: Use 現代書き言葉UniDic.UniDic="spoken"
: Use 現代話し言葉UniDic.UniDic="novel"
: Use 近現代口語小説UniDic.UniDic="qkana"
: Use 旧仮名口語UniDic.UniDic="kindai"
: Use 近代文語UniDic.UniDic="kinsei"
: Use 近世江戸口語UniDic.UniDic="kyogen"
: Use 中世口語UniDic.UniDic="wakan"
: Use 中世文語UniDic.UniDic="wabun"
: Use 中古和文UniDic.UniDic="manyo"
: Use 上代語UniDic.UniDic=None
: Use IPADic (default).
You can simply use syncha2ud
on the command line to get Universal Dependencies:
echo 太郎は花子が読んでいる本を次郎に渡した | syncha2ud
Installation for Linux (Debian)
First, install MeCab and necessary packages:
sudo apt update
sudo apt install mecab libmecab-dev mecab-ipadic-utf8 python3-pip python3-dev g++ make curl lp-solve
pip3 install gdown --user
cd /tmp
curl -L 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ' | tar xzf -
cd CRF++-0.58
./configure --prefix=/usr --libdir=`mecab-config --libs-only-L`
make && sudo make install
Second, install CaboCha:
cd /tmp
gdown 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7SDd1Q1dUQkZQaUU'
tar xjf cabocha-0.69.tar.bz2
cd cabocha-0.69
./configure --prefix=/usr --libdir=`mecab-config --libs-only-L` --with-charset=UTF8
make && sudo make install
Third, install SynCha:
cd /tmp
curl -L https://raw.githubusercontent.com/KoichiYasuoka/spaCy-SynCha/master/backup/syncha-0.3.1.1.tgz | tar xzf -
sudo mkdir -p /usr/local/bin
sudo mv syncha-0.3.1.1 /usr/local/syncha
( echo '#! /bin/sh' ; echo 'exec /usr/local/syncha/syncha "$@"' ) > syncha
sudo install syncha /usr/local/bin
And last, install spaCy-SynCha:
pip3 install spacy_syncha --user
Installation for Linux (Ubuntu)
Same as Debian.
Installation for Linux (Kali)
Same as Debian.
Installation for Linux (CentOS)
First, install MeCab and necessary packages:
sudo yum update
sudo yum install python3-pip python3-devel gcc-c++ make curl bzip2 lpsolve epel-release
pip3 install gdown --user
sudo rpm -ivh https://packages.groonga.org/centos/latest/groonga-release-latest.noarch.rpm
sudo yum install mecab mecab-devel mecab-ipadic
cd /tmp
curl -L 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ' | tar xzf -
cd CRF++-0.58
./configure --prefix=/usr --libdir=`mecab-config --libs-only-L`
make && sudo make install
Second, third, and last are same as Debian.
Installation for Cygwin
Make sure to get python37-devel
python37-pip
python37-cython
python37-numpy
git
gcc-g++
perl
, and then:
pip3.7 install git+https://github.com/KoichiYasuoka/syncha-cygwin
pip3.7 install spacy_syncha
Installation for Google Colaboratory
Try notebook.
Benchmarks
Results of 舞姬/雪國/荒野より-Benchmarks
舞姬 | LAS | MLAS | BLEX |
---|---|---|---|
UniDic="kindai" | 84.91 | 70.37 | 74.07 |
UniDic="qkana" | 81.13 | 66.67 | 70.37 |
UniDic="kinsei" | 72.22 | 57.14 | 57.14 |
雪國 | LAS | MLAS | BLEX |
---|---|---|---|
UniDic="qkana" | 87.50 | 81.63 | 77.55 |
UniDic="kinsei" | 85.71 | 83.33 | 75.00 |
UniDic="kindai" | 83.19 | 77.55 | 73.47 |
荒野より | LAS | MLAS | BLEX |
---|---|---|---|
UniDic="kindai" | 67.02 | 32.43 | 43.24 |
UniDic="qkana" | 63.87 | 32.88 | 43.84 |
UniDic="kinsei" | 63.54 | 29.73 | 40.54 |
Reference
- 安岡孝一: 形態素解析部の付け替えによる近代日本語(旧字旧仮名)の係り受け解析, 情報処理学会研究報告, Vol.2020-CH-124「人文科学とコンピュータ」, No.3 (2020年9月5日), pp.1-8.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file spacy_syncha-0.9.3-py3-none-any.whl
.
File metadata
- Download URL: spacy_syncha-0.9.3-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30e73c780c55d9fc2ec83101232e9361dadfc08ff86f902832bfa80c0db2fc78 |
|
MD5 | 8c1fbd3e33396a61a01ccb6e7f5d178e |
|
BLAKE2b-256 | e62ed3ff7ec478d780b2f33c6fbe16c1a061f07d7ca13c20ea67f9ea982eac29 |