Changeset 10980 for lang/python

Show
Ignore:
Timestamp:
05/03/08 01:41:47 (6 years ago)
Author:
ayu
Message:
  • added commandline interface
Location:
lang/python/yoyaku
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/python/yoyaku/readme-ja.txt

    r10968 r10980  
    3232このコマンドでは各種文字エンコーディングを指定するオプションがありますので、詳しくは--helpオプションでヘルプをご覧ください。 
    3333 
    34 2. 英文のトピック分割 
    35 ------------------ 
     342. 英文の文分割 
     35-------------- 
     36(注:この機能はまだ途中までしか実装が進んでいません。) 
     37英文を文単位に区切って出力します。 
     38英文は通常ピリオドで文末を表しますが、"Web2.0"とか"U.S."のように、文末以外でピリオドが使われる場合も多く、その判定は困難です。 
     39このプログラムでは標準入力からの入力を、文単位に区切ります。 
     40ファイルsample.txtに区切りたい英文が入っているとします。 
     41データベースcivoryに、インストール時に用意した辞書データMySQLが用意されているとします。 
     42$ python yoyaku/engine/SentenceBoundaryEN.py -dcivory  sample.txt 
     43と入力すると、英文を文単位に分割して出力します。 
     44 
     453. 英文のトピック分割 
     46------------------- 
    3647英文(わりと長い文)の内容をトピックごとに分割して出力します。 
     48入力は文単位に区切られている必要があります。 
    3749ファイルsample.txtに分割したい英文の長文が入っているとします。 
    3850$ python yoyaku/engine/TopicSegmentationEN.py < sample.txt 
  • lang/python/yoyaku/yoyaku/engine/SentenceBoundaryEN.py

    r10831 r10980  
    33 
    44import re 
     5import sys 
    56 
    67wordPAT = re.compile(u"([^ ]+)") 
     
    3839                    buf = [] 
    3940                    continue 
    40              
     41            #TODO: 昨年やめたここを思い出すこと。 
    4142                 
    4243                 
    4344    if len(buf) > 0: 
    4445        yield u" ".join(buf) 
     46 
     47if __name__ == "__main__": 
     48    import optparse 
     49    import MySQLdb 
     50 
     51    parser = optparse.OptionParser(u""" 
     52    標準入力から入力された英文を、文単位に区切ります。 
     53    このコマンドでは、本モジュールインストール時に作成した、辞書データベースmysqlへの接続情報が必要です。 
     54    """) 
     55    parser.add_option("-H", "--host", dest="host", help=u"mysqlのHOST", default="") 
     56    parser.add_option("-u", "--user", dest="user", help=u"mysqlのユーザー名", default="") 
     57    parser.add_option("-p", "--passwd", dest="passwd", help=u"mysqlのパスワード", default="") 
     58    parser.add_option("-d", "--db", dest="db", help=u"mysqlのDB名", default="") 
     59    parser.add_option("-s", "--silent", dest="silent", action="store_true", help=u"空行と出力ヘッダを出力しないようにします。(他のコマンドへの入力向け機能)", default=False)     
     60    (options, args) = parser.parse_args() 
     61    con = MySQLdb.connect(host=options.host, user=options.user, passwd=options.passwd, db=options.db) 
     62    cur = con.cursor() 
     63    body = " ".join(sys.stdin.readlines()) 
     64    if not options.silent: 
     65        print "="*20 
     66        print "     RESULT" 
     67        print "="*20 
     68 
     69    for line in splitSentenceBoundary(cur, body): 
     70        line = line.strip() 
     71        if line and options.silent: 
     72            print line 
     73    
     74