Changeset 10980 for lang/python
- Timestamp:
- 05/03/08 01:41:47 (7 months ago)
- Location:
- lang/python/yoyaku
- Files:
-
- 2 modified
-
readme-ja.txt (modified) (1 diff)
-
yoyaku/engine/SentenceBoundaryEN.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/python/yoyaku/readme-ja.txt
r10968 r10980 32 32 このコマンドでは各種文字エンコーディングを指定するオプションがありますので、詳しくは--helpオプションでヘルプをご覧ください。 33 33 34 2. 英文のトピック分割 35 ------------------ 34 2. 英文の文分割 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 45 3. 英文のトピック分割 46 ------------------- 36 47 英文(わりと長い文)の内容をトピックごとに分割して出力します。 48 入力は文単位に区切られている必要があります。 37 49 ファイルsample.txtに分割したい英文の長文が入っているとします。 38 50 $ python yoyaku/engine/TopicSegmentationEN.py < sample.txt -
lang/python/yoyaku/yoyaku/engine/SentenceBoundaryEN.py
r10831 r10980 3 3 4 4 import re 5 import sys 5 6 6 7 wordPAT = re.compile(u"([^ ]+)") … … 38 39 buf = [] 39 40 continue 40 41 #TODO: 昨年やめたここを思い出すこと。 41 42 42 43 43 44 if len(buf) > 0: 44 45 yield u" ".join(buf) 46 47 if __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
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)