Package: jdepp
jdepp-pythonPython 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 jdeppPrecompiled model filespip install does not install the model(dictionary).You can get precompiled model files(MeCab POS tagging + train with KNBC copus) fromhttps://github.com/lighttransport/jdepp-python/releases/tag/v0.1.0Precompiled KNBC model file is licensed under 3-clause BSD license.Build configurationMeCab style POS format:FEATURE_SEP ','Seejdepp/typedf.hfor more info about ifdef macros.ExampleDownload precompiled model file.$wgethttps://github.com/lighttransport/jdepp-python/releases/download/v0.1.0/knbc-mecab-jumandic-2ndpoly.tar.gz
$tarxvfknbc-mecab-jumandic-2ndpoly.tar.gzimportjdeppmodel_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 treeprint(jdepp.to_tree(str(sent)))# S-ID: 1; J.DepP
  0:　　吾輩は━━┓　　　
  1:　　　猫である。━━┓
  2:　　　　　名前は━━┫
  3:　　　　　　まだ━━┫
  4:　　　　　　　　ない。EOSGraphviz dot exportjdepp.to_dotis 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/Seeexamples/for more detailsPOS tagged input formatMeCab style. surface + TAB + feature(comma separated 7 fields)With jaggerYou can use jagger-python for POS tagging.importjaggerimportjdeppjagger_model_path="model/kwdlc/patterns"tokenizer=jagger.Jagger()tokenizer.load_model(jagger_model_path)text="吾輩は猫である。名前はまだない。"toks=tokenizer.tokenize(text)pos_tagged_input=""fortokintoks: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 modelIf 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 pybind11Then invoke cmake with-DJDEPP_WITH_PYTHONandpybind11_DIR$ pybind11_DIR=/path/to/pybind11 cmake -DJDEPP_WITH_PYTHON=1 ...Releasingtag it:git tag vX.Y.Zpush tag:git push --tagsVersioning is automatically done throughsetuptools_scmTODOWASM buildTraining API supportIntegrate jagger POS tagger as builtin(standalone) POS tagger in J.DepPhttps://github.com/lighttransport/jagger-pythonMMap(or SharedMemory) load of dict data to save memory in Python multiprocessingLicensejdepp-python is licensed under 2-Clause BSD license.J.DepPhttps://www.tkl.iis.u-tokyo.ac.jp/~ynaga/jdepp/is licensed under GPLv2/LGPLv2.1/BSD triple license.Thrird party licensepacco, cedar, opal(subcompoennts of J.DepP): GPLv2/LGPLv2.1/BSD triple license. We choose BSD license.io-util: MIT license.optparse: Unlicensehttps://github.com/skeeto/optparse