Skip to main content

Python binding for J.DepP(C++ implementation of Japanese Dependency Parsers)

Project description

jdepp-python

Python binding for J.DepP(C++ implementation of Japanese Dependency Parsers) https://www.tkl.iis.u-tokyo.ac.jp/~ynaga/jdepp/

Install

$ python -m pip install jdepp

Precompiled model files

pip install does not install the model(dictionary).

You can get precompiled model files(MeCab POS tagging + train with KNBC copus) from

https://github.com/lighttransport/jdepp-python/releases/tag/v0.1.0

Precompiled KNBC model file is licensed under 3-clause BSD license.

Build configuration

  • MeCab style POS format: FEATURE_SEP ','
  • See jdepp/typedf.h for more info about ifdef macros.

Example

Download precompiled model file.

$ wget https://github.com/lighttransport/jdepp-python/releases/download/v0.1.0/knbc-mecab-jumandic-2ndpoly.tar.gz
$ tar xvf knbc-mecab-jumandic-2ndpoly.tar.gz
import jdepp

model_path = "model/knbc"

parser = jdepp.Jdepp()
parser.load_model(model_path)

# NOTE: Mecab format: surface + TAB + feature(comma separated 7 fields)
input_postagged = """吾輩	名詞,普通名詞,*,*,吾輩,わがはい,代表表記:我が輩/わがはい カテゴリ:人
は	助詞,副助詞,*,*,は,は,*
猫	名詞,普通名詞,*,*,猫,ねこ,*
である	判定詞,*,判定詞,デアル列基本形,だ,である,*
。	特殊,句点,*,*,。,。,*
名前	名詞,普通名詞,*,*,名前,なまえ,*
は	助詞,副助詞,*,*,は,は,*
まだ	副詞,*,*,*,まだ,まだ,*
ない	形容詞,*,イ形容詞アウオ段,基本形,ない,ない,*
。	特殊,句点,*,*,。,。,*
EOS
"""

sent = parser.parse_from_postagged(input_postagged)
print(sent)

Print in tree

print(jdepp.to_tree(str(sent)))
# S-ID: 1; J.DepP
  0:  吾輩は━━┓   
  1:   猫である。━━┓
  2:     名前は━━┫
  3:      まだ━━┫
  4:        ない。EOS

Graphviz dot export

jdepp.to_dot is provided to export graph as dot(Graphviz)

dot_text = jdepp.to_dot(str(sentence))

# feed output text to graphviz viewer, e.g. https://dreampuf.github.io/GraphvizOnline/

See examples/ for more details

POS tagged input format

MeCab style. surface + TAB + feature(comma separated 7 fields)

With jagger

You can use jagger-python for POS tagging.

import jagger
import jdepp

jagger_model_path = "model/kwdlc/patterns"
tokenizer = jagger.Jagger()
tokenizer.load_model(jagger_model_path)

text = "吾輩は猫である。名前はまだない。"
toks = tokenizer.tokenize(text)

pos_tagged_input = ""
for tok in toks:
    pos_tagged_input += tok.surface() + '\t' + tok.feature() + '\n'
pos_tagged_input += "EOS\n"


jdepp_model_path = "model/knbc"
parser.load_model(jdepp_model_path)

parser.parse_from_postagged(pos_tagged_input)

Build standalone C++ app + training a model

If you just want to use J.DepP from cli(e.g. batch processing), you can build a standalone C++ app using CMake.

We modified J.DepP source code to improve portablily(e.g. Ours works well on Windows)

Training a model from Python binding is also not yet supported. For a while, you can train a model by using standalone C++ jdepp app.

Standalone python module(For developer)

This is for developer usecase. Use setup.py(pyproject.toml) to build python module for end users.

Install pybind11 devkit.

$ python -m pip install pybind11

Then invoke cmake with -DJDEPP_WITH_PYTHON and pybind11_DIR

$ pybind11_DIR=/path/to/pybind11 cmake -DJDEPP_WITH_PYTHON=1 ...

Releasing

  • tag it: git tag vX.Y.Z
  • push tag: git push --tags

Versioning is automatically done through setuptools_scm

TODO

License

jdepp-python is licensed under 2-Clause BSD license.

J.DepP https://www.tkl.iis.u-tokyo.ac.jp/~ynaga/jdepp/ is licensed under GPLv2/LGPLv2.1/BSD triple license.

Thrird party license

  • pacco, cedar, opal(subcompoennts of J.DepP): GPLv2/LGPLv2.1/BSD triple license. We choose BSD license.
  • io-util: MIT license.
  • optparse: Unlicense https://github.com/skeeto/optparse

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jdepp-0.1.8.tar.gz (480.2 kB view hashes)

Uploaded Source

Built Distributions

jdepp-0.1.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (435.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (435.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (436.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (436.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp312-cp312-win_arm64.whl (320.8 kB view hashes)

Uploaded CPython 3.12 Windows ARM64

jdepp-0.1.8-cp312-cp312-win_amd64.whl (333.9 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

jdepp-0.1.8-cp312-cp312-win32.whl (305.3 kB view hashes)

Uploaded CPython 3.12 Windows x86

jdepp-0.1.8-cp312-cp312-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp312-cp312-musllinux_1_1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

jdepp-0.1.8-cp312-cp312-musllinux_1_1_aarch64.whl (987.2 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (502.0 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (528.6 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (486.1 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp312-cp312-macosx_11_0_arm64.whl (424.3 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

jdepp-0.1.8-cp312-cp312-macosx_10_9_x86_64.whl (463.4 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

jdepp-0.1.8-cp312-cp312-macosx_10_9_universal2.whl (752.8 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

jdepp-0.1.8-cp311-cp311-win_arm64.whl (323.8 kB view hashes)

Uploaded CPython 3.11 Windows ARM64

jdepp-0.1.8-cp311-cp311-win_amd64.whl (334.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

jdepp-0.1.8-cp311-cp311-win32.whl (306.6 kB view hashes)

Uploaded CPython 3.11 Windows x86

jdepp-0.1.8-cp311-cp311-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp311-cp311-musllinux_1_1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

jdepp-0.1.8-cp311-cp311-musllinux_1_1_aarch64.whl (988.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (502.3 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (528.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (486.3 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp311-cp311-macosx_11_0_arm64.whl (425.9 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

jdepp-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl (464.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

jdepp-0.1.8-cp311-cp311-macosx_10_9_universal2.whl (756.1 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

jdepp-0.1.8-cp310-cp310-win_arm64.whl (323.0 kB view hashes)

Uploaded CPython 3.10 Windows ARM64

jdepp-0.1.8-cp310-cp310-win_amd64.whl (333.8 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

jdepp-0.1.8-cp310-cp310-win32.whl (305.7 kB view hashes)

Uploaded CPython 3.10 Windows x86

jdepp-0.1.8-cp310-cp310-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp310-cp310-musllinux_1_1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

jdepp-0.1.8-cp310-cp310-musllinux_1_1_aarch64.whl (987.3 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (501.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (527.5 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (485.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp310-cp310-macosx_11_0_arm64.whl (424.7 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

jdepp-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl (463.0 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

jdepp-0.1.8-cp310-cp310-macosx_10_9_universal2.whl (752.8 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

jdepp-0.1.8-cp39-cp39-win_arm64.whl (321.2 kB view hashes)

Uploaded CPython 3.9 Windows ARM64

jdepp-0.1.8-cp39-cp39-win_amd64.whl (333.8 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

jdepp-0.1.8-cp39-cp39-win32.whl (305.7 kB view hashes)

Uploaded CPython 3.9 Windows x86

jdepp-0.1.8-cp39-cp39-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp39-cp39-musllinux_1_1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

jdepp-0.1.8-cp39-cp39-musllinux_1_1_aarch64.whl (987.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (501.3 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (527.6 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (485.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp39-cp39-macosx_11_0_arm64.whl (424.9 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

jdepp-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl (463.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

jdepp-0.1.8-cp39-cp39-macosx_10_9_universal2.whl (753.2 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

jdepp-0.1.8-cp38-cp38-win_amd64.whl (333.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

jdepp-0.1.8-cp38-cp38-win32.whl (305.6 kB view hashes)

Uploaded CPython 3.8 Windows x86

jdepp-0.1.8-cp38-cp38-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp38-cp38-musllinux_1_1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

jdepp-0.1.8-cp38-cp38-musllinux_1_1_aarch64.whl (987.3 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (501.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (527.4 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (485.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp38-cp38-macosx_11_0_arm64.whl (424.7 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

jdepp-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl (463.0 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

jdepp-0.1.8-cp38-cp38-macosx_10_9_universal2.whl (752.7 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

jdepp-0.1.8-cp37-cp37m-win_amd64.whl (333.9 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

jdepp-0.1.8-cp37-cp37m-win32.whl (306.4 kB view hashes)

Uploaded CPython 3.7m Windows x86

jdepp-0.1.8-cp37-cp37m-musllinux_1_1_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp37-cp37m-musllinux_1_1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

jdepp-0.1.8-cp37-cp37m-musllinux_1_1_aarch64.whl (990.6 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (503.5 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (532.1 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (490.3 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl (462.2 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

jdepp-0.1.8-cp36-cp36m-win_amd64.whl (209.0 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

jdepp-0.1.8-cp36-cp36m-win32.whl (182.6 kB view hashes)

Uploaded CPython 3.6m Windows x86

jdepp-0.1.8-cp36-cp36m-musllinux_1_1_x86_64.whl (886.3 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

jdepp-0.1.8-cp36-cp36m-musllinux_1_1_i686.whl (948.1 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

jdepp-0.1.8-cp36-cp36m-musllinux_1_1_aarch64.whl (863.3 kB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ ARM64

jdepp-0.1.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (375.6 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

jdepp-0.1.8-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (405.0 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686

jdepp-0.1.8-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (362.9 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

jdepp-0.1.8-cp36-cp36m-macosx_10_9_x86_64.whl (335.1 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page