|
1 | | -#!python3 |
| 1 | +#!/usr/bin/env python |
2 | 2 | # -*- coding: utf-8 -*- |
3 | 3 |
|
4 | 4 | import argparse |
5 | | -from pythainlp import __version__ |
6 | | -parser = argparse.ArgumentParser() |
7 | | -parser.add_argument("-t", "--text", default=None, help="text", type=str) |
8 | | -parser.add_argument("-seg", "--segment", help="word segment", action="store_true") |
9 | | -parser.add_argument("-c", "--corpus", help="mange corpus", action="store_true") |
10 | | -parser.add_argument("-pos", "--postag", help="postag", action="store_true") |
11 | | -parser.add_argument("-soundex", "--soundex", help="soundex", default=None) |
12 | | -parser.add_argument("-e", "--engine", default="newmm", help="the engine", type=str) |
13 | | -parser.add_argument("-pos-e", "--postag_engine", default="perceptron", help="the engine for word tokenize", type=str) |
14 | | -parser.add_argument("-pos-c", "--postag_corpus", default="orchid", help="corpus for postag", type=str) |
15 | | -args = parser.parse_args() |
16 | | - |
17 | | -if args.corpus: |
18 | | - from pythainlp.corpus import * |
19 | | - print("PyThaiNLP Corpus") |
20 | | - temp="" |
21 | | - while temp!="exit": |
22 | | - print("\n1. Install\n2. Remove\n3. Update\n4. Exit\n") |
23 | | - temp=input("Choose 1, 2, 3, or 4: ") |
24 | | - if temp=="1": |
25 | | - name=input("Corpus name:") |
26 | | - download(name) |
27 | | - elif temp=="2": |
28 | | - name=input("Corpus name:") |
29 | | - remove(name) |
30 | | - elif temp=="3": |
31 | | - name=input("Corpus name:") |
32 | | - download(name) |
33 | | - elif temp=="4": |
34 | | - break |
35 | | - else: |
36 | | - print("Choose 1, 2, 3, or 4:") |
37 | | -elif args.text!=None: |
38 | | - from pythainlp.tokenize import word_tokenize |
39 | | - tokens=word_tokenize(args.text, engine=args.engine) |
40 | | - if args.segment: |
41 | | - print("|".join(tokens)) |
42 | | - elif args.postag: |
43 | | - from pythainlp.tag import pos_tag |
44 | | - print("\t".join([i[0]+"/"+i[1] for i in pos_tag(tokens, engine=args.postag_engine, corpus=args.postag_corpus)])) |
45 | | -elif args.soundex!=None: |
46 | | - from pythainlp.soundex import soundex |
47 | | - if args.engine=="newmm": |
48 | | - args.engine="lk82" |
49 | | - print(soundex(args.soundex, engine=args.engine)) |
| 5 | +import sys |
| 6 | + |
| 7 | +from pythainlp import cli |
| 8 | + |
| 9 | + |
| 10 | +parser = argparse.ArgumentParser( |
| 11 | + usage="pythainlp namespace command [options]" |
| 12 | +) |
| 13 | + |
| 14 | +parser.add_argument( |
| 15 | + "namespace", |
| 16 | + type=str, |
| 17 | + default="", |
| 18 | + nargs="?", |
| 19 | + help="[%s]" % "|".join(cli.available_namespaces) |
| 20 | +) |
| 21 | + |
| 22 | +args = parser.parse_args(sys.argv[1:2]) |
| 23 | + |
| 24 | +cli.exit_if_empty(args.namespace, parser) |
| 25 | + |
| 26 | +if hasattr(cli, args.namespace): |
| 27 | + namespace = getattr(cli, args.namespace) |
| 28 | + namespace.App(sys.argv) |
50 | 29 | else: |
51 | | - print(f"PyThaiNLP {__version__}") |
| 30 | + print(f"Namespace not available: {args.namespace}\nPlease run with --help for alternatives") |
| 31 | + |
0 commit comments