{"id":16650937,"url":"https://github.com/swabhs/joint-lstm-parser","last_synced_at":"2025-09-03T14:32:01.060Z","repository":{"id":42419387,"uuid":"61764430","full_name":"swabhs/joint-lstm-parser","owner":"swabhs","description":"Transition-based joint syntactic dependency parser and semantic role labeler using a stack LSTM RNN architecture.","archived":false,"fork":false,"pushed_at":"2017-04-05T00:41:10.000Z","size":6042,"stargazers_count":61,"open_issues_count":2,"forks_count":10,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-03T22:41:28.390Z","etag":null,"topics":["conll","dynet","joint-parser","natural-language-processing","nlp","semantic-parser","syntactic-parser","transition-based-parser"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swabhs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-23T01:49:26.000Z","updated_at":"2025-03-21T16:06:00.000Z","dependencies_parsed_at":"2022-09-20T20:51:54.347Z","dependency_job_id":null,"html_url":"https://github.com/swabhs/joint-lstm-parser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/swabhs/joint-lstm-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swabhs%2Fjoint-lstm-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swabhs%2Fjoint-lstm-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swabhs%2Fjoint-lstm-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swabhs%2Fjoint-lstm-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swabhs","download_url":"https://codeload.github.com/swabhs/joint-lstm-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swabhs%2Fjoint-lstm-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273456424,"owners_count":25109061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conll","dynet","joint-parser","natural-language-processing","nlp","semantic-parser","syntactic-parser","transition-based-parser"],"created_at":"2024-10-12T09:23:06.230Z","updated_at":"2025-09-03T14:32:00.233Z","avatar_url":"https://github.com/swabhs.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lstm-parser\nTransition-based joint syntactic dependency parser and semantic role labeler using stack LSTM RNN architecture\n\n#### Required software\n\n * A C++ compiler supporting the [C++11 language standard](https://en.wikipedia.org/wiki/C%2B%2B11)\n * [Boost](http://www.boost.org/) libraries\n * [Eigen](http://eigen.tuxfamily.org) (newer versions strongly recommended)\n * [CMake](http://www.cmake.org/)\n * This runs with the older version of cnn/dynet : `cnn-v1`\n\n#### Checking out the project for the first time\n\nThe first time you clone the repository, you need to sync the `cnn/` submodule.\n\n    git submodule init\n    git submodule update\n\n#### Build instructions\n\n    mkdir build\n    cd build\n    cmake .. -DEIGEN3_INCLUDE_DIR=/path/to/eigen\n    make -j2\n\n#### Train a parsing model\n\nThe data must be in the [CoNLL 2009 format](https://ufal.mff.cuni.cz/conll2009-st/task-description.html). For best performance, it is suggested to [projectivize the treebank data](http://www.maltparser.org/userguide.html#singlemalt_info). As a preprocessing step, first convert the treebank data (in CoNLL 2009 format) into transitions, \\*.transitions (this is a format usable by the joint parser), using the following commands.\n\n    java -jar ../jointOracle.jar -inp train.conll -lemmas true \u003e train.transitions\n    java -jar ../jointOracle.jar -inp dev.conll \u003e dev.transitions\n\nNote that it is required to set the option ``lemmas'' to true for the training data, so that an auxilliary file, train.conll.pb.lemmas is generated, which saves the lemmas of all the predicate words. The joint parser can now run on the generated files.\n\n    parser/lstm-parse -T train.transitions -d dev.transitions -w sskip.100.vectors --propbank_lemmas train.conll.pb.lemmas -g dev.conll -e ../eval09.pl -s dev.predictions.conll --out_model joint.model -t\n    \nLink to the word vectors that we used in the ACL 2015 paper for English: [sskip.100.vectors](https://drive.google.com/file/d/0B8nESzOdPhLsdWF2S1Ayb1RkTXc/view?usp=sharing). The evaluation script, eval09.pl, is provided by [CoNLL 2009](https://ufal.mff.cuni.cz/conll2009-st/scorer.html). The model is written to the current directory.\n\nNote-1: you can also run it without word embeddings by removing the -w option for both training and parsing.\n\nNote-2: the training process should be stopped when the development Macro F1 does not substantially improve anymore.\n\nNote-3: the default hyperparameters are the same as in the [paper](http://arxiv.org/abs/1606.08954) for the CoNLL 2009 English model. These can be changed by altering the command-line options provided in the lstm-parse.cc code.\n\n#### Parse data with your parsing model\n\nThe test.conll file must also be in to the [CoNLL 2009 data format](https://ufal.mff.cuni.cz/conll2009-st/task-description.html) .\n\n    java -jar ../jointOracle.jar -inp test.conll \u003e test.transitions\n\n    parser/lstm-parse -T train.transitions -d test.transitions -w sskip.100.vectors --propbank_lemmas train.conll.pb.lemmas -m joint.model -s test.predictions.conll -g test.conll -e ../eval09.pl \n\nThe parser will output a file test.predictions.conll with predicted syntax and SRL dependencies.\n\n#### Citation\n\nIf you make use of this software, please cite the following:\n\n    @inproceedings{swayamdipta:2016conll,\n    author={Swabha Swayamdipta and Miguel Ballesteros and Chris Dyer and Noah A. Smith},\n    title={Greedy, Joint Syntactic-Semantic Parsing with Stack LSTMs},\n    booktitle={Proc. of CoNLL},\n    year={2016}\n    }\n\n#### Contact\n\nFor questions and usage issues, please contact swabha@cs.cmu.edu\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswabhs%2Fjoint-lstm-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswabhs%2Fjoint-lstm-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswabhs%2Fjoint-lstm-parser/lists"}