Skip to content

Commit 05caf94

Browse files
committed
LBP & MFVI for SDP
1 parent ba8dd54 commit 05caf94

File tree

10 files changed

+810
-14
lines changed

10 files changed

+810
-14
lines changed

supar/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,27 @@
33
from .parsers import (BiaffineDependencyParser,
44
BiaffineSemanticDependencyParser, CRF2oDependencyParser,
55
CRFConstituencyParser, CRFDependencyParser,
6-
CRFNPDependencyParser, Parser)
6+
CRFNPDependencyParser, Parser,
7+
VISemanticDependencyParser)
78

89
__all__ = ['BiaffineDependencyParser',
910
'CRFNPDependencyParser',
1011
'CRFDependencyParser',
1112
'CRF2oDependencyParser',
1213
'CRFConstituencyParser',
1314
'BiaffineSemanticDependencyParser',
15+
'VISemanticDependencyParser',
1416
'Parser']
17+
1518
__version__ = '1.0.0'
1619

1720
PARSER = {parser.NAME: parser for parser in [BiaffineDependencyParser,
1821
CRFNPDependencyParser,
1922
CRFDependencyParser,
2023
CRF2oDependencyParser,
2124
CRFConstituencyParser,
22-
BiaffineSemanticDependencyParser]}
25+
BiaffineSemanticDependencyParser,
26+
VISemanticDependencyParser]}
2327

2428
PRETRAINED = {
2529
'biaffine-dep-en': 'https://github.com/yzhangcs/parser/releases/download/v1.0.0/ptb.biaffine.dependency.char.zip',

supar/cmds/vi_semantic_dependency.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import argparse
4+
5+
from supar import VISemanticDependencyParser
6+
from supar.cmds.cmd import parse
7+
8+
9+
def main():
10+
parser = argparse.ArgumentParser(description='Create Semantic Dependency Parser using Variational Inference.')
11+
parser.set_defaults(Parser=VISemanticDependencyParser)
12+
subparsers = parser.add_subparsers(title='Commands', dest='mode')
13+
# train
14+
subparser = subparsers.add_parser('train', help='Train a parser.')
15+
subparser.add_argument('--feat', '-f', default='tag,char,lemma', help='additional features to use,separated by commas.')
16+
subparser.add_argument('--build', '-b', action='store_true', help='whether to build the model first')
17+
subparser.add_argument('--max-len', type=int, help='max length of the sentences')
18+
subparser.add_argument('--buckets', default=32, type=int, help='max num of buckets to use')
19+
subparser.add_argument('--train', default='data/sdp/DM/train.conllu', help='path to train file')
20+
subparser.add_argument('--dev', default='data/sdp/DM/dev.conllu', help='path to dev file')
21+
subparser.add_argument('--test', default='data/sdp/DM/test.conllu', help='path to test file')
22+
subparser.add_argument('--embed', default='data/glove.6B.100d.txt', help='path to pretrained embeddings')
23+
subparser.add_argument('--unk', default='unk', help='unk token in pretrained embeddings')
24+
subparser.add_argument('--n-embed', default=100, type=int, help='dimension of embeddings')
25+
subparser.add_argument('--bert', default='bert-base-cased', help='which bert model to use')
26+
subparser.add_argument('--inference', default='mfvi', choices=['mfvi', 'lbp'], help='approximate inference methods')
27+
# evaluate
28+
subparser = subparsers.add_parser('evaluate', help='Evaluate the specified parser and dataset.')
29+
subparser.add_argument('--buckets', default=8, type=int, help='max num of buckets to use')
30+
subparser.add_argument('--data', default='data/sdp/DM/test.conllu', help='path to dataset')
31+
# predict
32+
subparser = subparsers.add_parser('predict', help='Use a trained parser to make predictions.')
33+
subparser.add_argument('--prob', action='store_true', help='whether to output probs')
34+
subparser.add_argument('--buckets', default=8, type=int, help='max num of buckets to use')
35+
subparser.add_argument('--data', default='data/sdp/DM/test.conllu', help='path to dataset')
36+
subparser.add_argument('--pred', default='pred.conllu', help='path to predicted result')
37+
parse(parser)
38+
39+
40+
if __name__ == "__main__":
41+
main()

supar/models/__init__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
from .constituency import CRFConstituencyModel
44
from .dependency import (BiaffineDependencyModel, CRF2oDependencyModel,
55
CRFDependencyModel, CRFNPDependencyModel)
6-
from .semantic_dependency import BiaffineSemanticDependencyModel
6+
from .semantic_dependency import (BiaffineSemanticDependencyModel,
7+
VISemanticDependencyModel)
78

89
__all__ = ['BiaffineDependencyModel',
10+
'CRFNPDependencyModel',
911
'CRFDependencyModel',
1012
'CRF2oDependencyModel',
11-
'CRFNPDependencyModel',
1213
'CRFConstituencyModel',
13-
'BiaffineSemanticDependencyModel']
14+
'BiaffineSemanticDependencyModel',
15+
'VISemanticDependencyModel']

0 commit comments

Comments
 (0)