charlock_holmes-jruby 0.1.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.rspec +4 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +29 -0
- data/LICENSE +20 -0
- data/README.md +65 -0
- data/Rakefile +17 -0
- data/charlock_holmes-jruby.gemspec +25 -0
- data/lib/charlock_holmes-jruby.rb +1 -0
- data/lib/charlock_holmes.rb +5 -0
- data/lib/charlock_holmes/charset_match_ext.rb +17 -0
- data/lib/charlock_holmes/converter.rb +12 -0
- data/lib/charlock_holmes/encoding_detector.rb +54 -0
- data/lib/charlock_holmes/string.rb +21 -0
- data/lib/charlock_holmes/version.rb +5 -0
- data/lib/charlock_holmes_jruby.rb +1 -0
- data/spec/converter_spec.rb +57 -0
- data/spec/encoding_detector_spec.rb +97 -0
- data/spec/fixtures/AnsiGraph.psm1 +0 -0
- data/spec/fixtures/TwigExtensionsDate.es.yml +8 -0
- data/spec/fixtures/cl-messagepack.lisp +264 -0
- data/spec/fixtures/core.rkt +254 -0
- data/spec/fixtures/laholator.py +131 -0
- data/spec/fixtures/mingpao.html +455 -0
- data/spec/fixtures/repl2.cljs +109 -0
- data/spec/fixtures/shift_jis.html +1244 -0
- data/spec/spec_helpers.rb +1 -0
- data/spec/string_spec.rb +39 -0
- metadata +144 -0
@@ -0,0 +1,131 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
#
|
4
|
+
# @author: starenka
|
5
|
+
# @email: 'moc]tod[liamg].T.E[0aknerats'[::-1]
|
6
|
+
|
7
|
+
import warnings, hashlib, simplejson, string
|
8
|
+
from os.path import dirname, abspath
|
9
|
+
|
10
|
+
from flask import Flask, render_template, request
|
11
|
+
from flaskext.sqlalchemy import SQLAlchemy
|
12
|
+
try:
|
13
|
+
from sqlalchemy.exceptions import IntegrityError
|
14
|
+
except ImportError:
|
15
|
+
from sqlalchemy.exc import IntegrityError
|
16
|
+
|
17
|
+
#Hey monkey patcher! NLTK's NgramModel is not serializable w/ pickle.HIGHEST_PROTOCOL (2)
|
18
|
+
from werkzeug.contrib import cache
|
19
|
+
cache.HIGHEST_PROTOCOL = 1
|
20
|
+
from werkzeug.contrib.cache import SimpleCache
|
21
|
+
|
22
|
+
from BeautifulSoup import BeautifulSoup
|
23
|
+
import nltk
|
24
|
+
|
25
|
+
PUNCT = list(unicode(string.punctuation))
|
26
|
+
|
27
|
+
app = Flask(__name__)
|
28
|
+
app.config.from_object('settings')
|
29
|
+
cache = SimpleCache()
|
30
|
+
|
31
|
+
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///%s/db.sqlite3'%abspath(dirname(__file__))
|
32
|
+
db = SQLAlchemy(app)
|
33
|
+
|
34
|
+
class Sample(db.Model):
|
35
|
+
id = db.Column(db.Integer, primary_key=True)
|
36
|
+
url = db.Column(db.String(80), unique=True)
|
37
|
+
text = db.Column(db.String())
|
38
|
+
enabled = db.Column(db.Boolean())
|
39
|
+
|
40
|
+
def __unicode__(self):
|
41
|
+
str = unicode(BeautifulSoup(self.text,convertEntities=BeautifulSoup.HTML_ENTITIES))
|
42
|
+
return nltk.clean_html(str)
|
43
|
+
|
44
|
+
@classmethod
|
45
|
+
def get_all(self):
|
46
|
+
cached = cache.get('samples')
|
47
|
+
if cached is None:
|
48
|
+
cached = self.query.filter_by(enabled=True).all()
|
49
|
+
cache.set('samples', cached, timeout=app.config['CACHE_MINUTES'] * 60)
|
50
|
+
return cached
|
51
|
+
|
52
|
+
class Output(db.Model):
|
53
|
+
id = db.Column(db.Integer, primary_key=True)
|
54
|
+
hash = db.Column(db.String(128),unique=True)
|
55
|
+
text = db.Column(db.String())
|
56
|
+
params = db.Column(db.String(100))
|
57
|
+
|
58
|
+
def __init__(self,text,**params):
|
59
|
+
self.hash = hashlib.sha512(text.encode('utf8')).hexdigest()
|
60
|
+
self.text = text
|
61
|
+
self.params = simplejson.dumps(params)
|
62
|
+
|
63
|
+
@app.context_processor
|
64
|
+
def base_context():
|
65
|
+
return dict(settings=app.config,
|
66
|
+
hits = Output.query.count() + app.config['INIT_HITS']
|
67
|
+
)
|
68
|
+
|
69
|
+
@app.errorhandler(404)
|
70
|
+
def page_not_found(error):
|
71
|
+
return render_template('404.html',title=u"To tady nemáme!"), 404
|
72
|
+
|
73
|
+
@app.route('/faq')
|
74
|
+
def faq():
|
75
|
+
return render_template('faq.html',title=u"Často kladené dotazy",samples=Sample.get_all())
|
76
|
+
|
77
|
+
@app.route('/permalink/<hash>')
|
78
|
+
def permalink(hash):
|
79
|
+
one = Output.query.filter_by(hash=hash).first_or_404()
|
80
|
+
return render_template('generator.html', title=u"Henrykuj!",
|
81
|
+
text=one.text, hash=one.hash,
|
82
|
+
**simplejson.loads(one.params)
|
83
|
+
)
|
84
|
+
|
85
|
+
@app.route('/')
|
86
|
+
def index():
|
87
|
+
bigrams = request.args.get('bigrams',False)
|
88
|
+
try:
|
89
|
+
words = int(request.args.get('words',app.config['WORDS']))
|
90
|
+
if words > app.config['MAX_WORDS']:
|
91
|
+
words = app.config['MAX_WORDS']
|
92
|
+
except ValueError:
|
93
|
+
words = app.config['WORDS']
|
94
|
+
|
95
|
+
out = _generate(words,bigrams)
|
96
|
+
output = Output(out,words=words,bigrams=bool(bigrams))
|
97
|
+
try:
|
98
|
+
db.session.add(output)
|
99
|
+
db.session.commit()
|
100
|
+
except IntegrityError:
|
101
|
+
pass
|
102
|
+
|
103
|
+
return render_template('generator.html', title=u"Henrykuj!",
|
104
|
+
text=out, hash=output.hash,
|
105
|
+
words=words, bigrams=bigrams
|
106
|
+
)
|
107
|
+
|
108
|
+
def _get_ngram_model(bigrams):
|
109
|
+
#NLTK produces a LOT of warnings - don't mess with my error log
|
110
|
+
warnings.simplefilter("ignore")
|
111
|
+
cached = cache.get('ngram_model')
|
112
|
+
if cached is None:
|
113
|
+
samples = Sample.get_all()
|
114
|
+
if samples:
|
115
|
+
text = [unicode(s) for s in samples]
|
116
|
+
tokenizer = nltk.tokenize.WordPunctTokenizer()
|
117
|
+
tokenized = tokenizer.tokenize(' '.join(text))
|
118
|
+
cached = nltk.NgramModel(3-int(bool(bigrams)), tokenized)
|
119
|
+
cache.set('ngram_model', cached, timeout=app.config['CACHE_MINUTES'] * 60)
|
120
|
+
return cached
|
121
|
+
|
122
|
+
def _generate(words,bigrams):
|
123
|
+
model = _get_ngram_model(bigrams)
|
124
|
+
starts = model.generate(100)[-4:]
|
125
|
+
starts = filter(lambda a: a not in PUNCT,starts)
|
126
|
+
generated = model.generate(words, starts)
|
127
|
+
out = ' '.join(generated).replace(' , ',', ').replace(' . ','. ')
|
128
|
+
return '%s%s…'%(out[0].upper(),out[1:])
|
129
|
+
|
130
|
+
if __name__ == '__main__':
|
131
|
+
app.run()
|
@@ -0,0 +1,455 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>�����s�D��-���-��ڭn�D--����s�R����̹]�W�Цʭ�-20130412</title>
|
5
|
+
<meta name="google-site-verification" content="arf3Ifm5Baa2yhUaastekjcyBdd799KXYQktJanboq4" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=big5">
|
7
|
+
<link rel="shortcut icon" href="../image/favicon.ico">
|
8
|
+
<link href = "../css/topmenu.css" rel="stylesheet" type="text/css">
|
9
|
+
<link href = "../css/style.css" rel="stylesheet" type="text/css">
|
10
|
+
<link href = "../css/slider_style.css" rel="stylesheet" type="text/css">
|
11
|
+
<link href = "../css/keywords.css" rel="stylesheet" type="text/css">
|
12
|
+
|
13
|
+
|
14
|
+
<link rel="image_src" href="http://news.mingpao.com/ftp/WebNews2/20130412/ta/ta/12ta501.jpg" />
|
15
|
+
|
16
|
+
|
17
|
+
<script language="javascript" type="text/javascript" src="../js/jquery.js"></script>
|
18
|
+
<script language="javascript" type="text/javascript" src="../js/generic.js"></script>
|
19
|
+
<script language="JavaScript" type="text/javascript" src="../js/CommonScript2.js"></script>
|
20
|
+
<script language="JavaScript">strCurrentChannel="ta";</script>
|
21
|
+
<script language="JavaScript" src="../js/Adv/Advert5DFP.js"></script>
|
22
|
+
<script language="JavaScript" src="../js/Adv/Advert.js"></script>
|
23
|
+
<script type="text/javascript">
|
24
|
+
function setNavigation(_target)
|
25
|
+
{
|
26
|
+
var newPosition = 0;
|
27
|
+
var setPosition = 0;
|
28
|
+
var nLength = document.getElementById(_target).length;
|
29
|
+
var nIndex = document.getElementById(_target).selectedIndex;
|
30
|
+
|
31
|
+
this.getPrev = function()
|
32
|
+
{
|
33
|
+
for (var i=0 ; i<nLength; i++)
|
34
|
+
{
|
35
|
+
if (i < nIndex && i + 1 < nLength)
|
36
|
+
{
|
37
|
+
newPosition=i+1;
|
38
|
+
}
|
39
|
+
else if (i == nIndex)
|
40
|
+
{
|
41
|
+
newPosition=i;
|
42
|
+
break;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
setPosition = newPosition;
|
46
|
+
|
47
|
+
if (setPosition>=0)
|
48
|
+
setPosition--;
|
49
|
+
|
50
|
+
return (setPosition < 0) ? "" : "<a href='" + document.getElementById(_target)[setPosition].value + "' onMouseOut='MM_swapImgRestore()' onMouseOver='MM_swapImage(\"Image_prev1\", \"\", \"../image/b_prev1.gif\", 1)'><img src='../image/b_prev0.gif' name='Image_prev1' width='62' height='18' border='0'></a>";
|
51
|
+
}
|
52
|
+
|
53
|
+
this.getNext = function()
|
54
|
+
{
|
55
|
+
for (var i=0; i<nLength; i++)
|
56
|
+
{
|
57
|
+
if(i <= nIndex)
|
58
|
+
newPosition = i;
|
59
|
+
}
|
60
|
+
setPosition = newPosition;
|
61
|
+
|
62
|
+
if (setPosition < nLength)
|
63
|
+
setPosition++;
|
64
|
+
|
65
|
+
return (setPosition > nLength-1) ? "" : "<a href='" + document.getElementById(_target)[setPosition].value + "' onMouseOut='MM_swapImgRestore()' onMouseOver='MM_swapImage(\"Image_next1\", \"\", \"../image/b_next1.gif\", 1)'><img src='../image/b_next0.gif' name='Image_next1' width='62' height='18' border='0'></a>";
|
66
|
+
}
|
67
|
+
}
|
68
|
+
</script>
|
69
|
+
</head>
|
70
|
+
<body background="../image/home_body_bkg.jpg" style="background-position: center top; background-repeat: repeat;" onLoad="MM_preloadImages('../image/news_headerbar_menu_update_f2.gif','../image/news_headerbar_menu_print_f2.gif','../image/b_forum_f2.gif','../image/b_reply_f2.gif','../image/b_fd_f2.gif')">
|
71
|
+
<div id ="outer_wrapper">
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
<script language="JavaScript">strCurrentDisplayDate="2013�~4��12�� �P����";</script>
|
76
|
+
|
77
|
+
<script language="JavaScript">
|
78
|
+
//[top menu]
|
79
|
+
sublink = new Array()
|
80
|
+
</script>
|
81
|
+
|
82
|
+
<script language="JavaScript" src="../js/TopMenu/TopPortalMenuMoveover.js"></script>
|
83
|
+
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
84
|
+
<tr height="1">
|
85
|
+
<td colspan="2"> </td>
|
86
|
+
</tr>
|
87
|
+
<tr>
|
88
|
+
<td background="../image/portals_top_bg2.gif" width="268">
|
89
|
+
<div class="grey_weather_line"></div>
|
90
|
+
<table cellpadding="0" cellspacing="0" border="0" width="100%" height="30">
|
91
|
+
<tr>
|
92
|
+
<td><div id="clock"></div></td>
|
93
|
+
<td><img src="../image/portals_top_weather.gif" border="0" align="absmiddle" alt="�Ѯ�Ա�"></td>
|
94
|
+
<td class="weather"><script language="JavaScript" src="../js/TopMenu/TopWeather1.js"></script></td>
|
95
|
+
<td><script language="JavaScript" src="../js/TopMenu/TopWeather2.js"></script></td>
|
96
|
+
<td nowrap align="right" class="date">
|
97
|
+
<script language="JavaScript">document.write (strCurrentDisplayDate+' <br>');</script>
|
98
|
+
</td>
|
99
|
+
</tr>
|
100
|
+
</table>
|
101
|
+
<div class="grey_weather_line"></div>
|
102
|
+
|
103
|
+
<script language="JavaScript" src="../js/TopMenu/TopLogo.js"></script>
|
104
|
+
</td>
|
105
|
+
<td background="../image/portals_top_bg2.gif" align="right">
|
106
|
+
|
107
|
+
<script language="JavaScript" src="../js/Adv/Advert1DFP.js"></script>
|
108
|
+
</td>
|
109
|
+
</tr>
|
110
|
+
</table>
|
111
|
+
|
112
|
+
<script language="JavaScript" src="../js/TopMenu/TopPortalMenu.js"></script>
|
113
|
+
|
114
|
+
|
115
|
+
<div class = "top_menu_bg clearfix">
|
116
|
+
<div class ="ml">
|
117
|
+
<div class ="c">
|
118
|
+
<div id="rlink" class ="s">
|
119
|
+
|
120
|
+
<a href="main.htm" class="link" target="_top">�D��</a>�@�@<a href="../cfm/MemberZone1.cfm" class="link" target="_top"><span style="color:red;">�q��M��</span></a>�@�@<a href="gaindex.htm" class="link" target="_top">�n�D</a>�@�@<a href="gbindex.htm" class="link" target="_top">��D</a>�@�@<a href="gfindex.htm" class="link" target="_top">�Ш|</a>�@�@<a href="mrindex.htm" class="link" target="_top">�����E���}</a>�@�@<a href="faindex.htm" class="link" target="_top">�[�I</a>�@�@<a href="caindex.htm" class="link" target="_top">����</a>�@�@<a href="taindex.htm" class="activelink" target="_top">���</a>�@�@<a href="eaindex.htm" class="link" target="_top">�g��</a>�@�@<a href="spindex.htm" class="link" target="_top">��|</a>�@�@<a href="maindex.htm" class="link" target="_top">�v��</a>�@�@<a href="jaindex.htm" class="link" target="_top">�ƥZ</a>�@�@<a href="emindex.htm" class="link" target="_top">�^��</a>
|
121
|
+
<script src="../js/TopMenu/TopMenuExt1.js" language="JavaScript"></script>
|
122
|
+
</div>
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
|
126
|
+
|
127
|
+
<script language="JavaScript" src="../js/TopMenu/TopKeyword.js"></script>
|
128
|
+
<br><br>
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
<script language="JavaScript" src="../js/TopMenu/TopSearchBox.js"></script>
|
133
|
+
|
134
|
+
</div>
|
135
|
+
|
136
|
+
<script language="javascript" type="text/javascript" src="../js/init.js"></script>
|
137
|
+
|
138
|
+
|
139
|
+
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
140
|
+
<tr>
|
141
|
+
<td>
|
142
|
+
<div class = "news_bkg">
|
143
|
+
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
|
144
|
+
<tr>
|
145
|
+
<td valign="top">
|
146
|
+
<div class = "news_box left clearfix">
|
147
|
+
<div class = "bottom_space">
|
148
|
+
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
149
|
+
<tr>
|
150
|
+
<td background="../image/news_headerbar_bkg.jpg"><img src="../image/news_headerbar_ta.jpg" alt="���" width="228" height="24"></td>
|
151
|
+
<td align="right" background="../image/news_headerbar_bkg.jpg"><a href="mailto:inews@mingpao.com?Subject=Ū�̳���" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image34','','../image/news_headerbar_menu_update_f2.gif',1)"><img src="../image/news_headerbar_menu_update.gif" alt="Ū�̳���" name="Image34" width="101" height="24" border="0"></a></td>
|
152
|
+
</tr>
|
153
|
+
</table>
|
154
|
+
</div>
|
155
|
+
<table width="100%" border="0">
|
156
|
+
<tr>
|
157
|
+
<td valign="top">
|
158
|
+
|
159
|
+
<div class ="left_col">
|
160
|
+
<a href="taa1_image1.htm?Mode=1"><img src="ta_12ta501.jpg" width="180" border="0" class="photo" name='contentimg'></a><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><a href="taa1_image1.htm?Mode=1"><img src="../image/mag.gif" alt="��j" width="38" height="13" border="0"></a></td> <td><img src="../image/dot.gif" width="16" height="15"></td> <td align="center"><div class="content_photo">�����Ϥ�(1�i)</div></td> <td align="right"><img src="../image/dot.gif" width="16" height="15"></td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="../image/photo_bar.gif" width="180" height="6"></td> </tr></table><br>
|
161
|
+
</div>
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
<div class ="left_col">
|
166
|
+
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr><td><img src="../image/b_extend.gif" alt="�����\Ū" width="180" height="38"></td></tr></table><div class ="left_col"> <div class="extend_t"></div> <div class="extend_m"> <table width="90%" align="center" cellpadding="0" cellspacing="0" class="content_small"> <tr><td> <div class="bullet_arrow"><a href="../cfm/Redirect.cfm?ch=ta&NewsFile=20130412%2Fta%2Fta%2Ftaa2%5Fer%2Etxt" target="_blank"> ��w����d ���o�{���D </a></div><br> </td></tr> </table> </div> <div class ="extend_b"></div></div><br>
|
167
|
+
</div>
|
168
|
+
|
169
|
+
|
170
|
+
<div class ="left_col">
|
171
|
+
<script language="JavaScript" src="../js/WebNews2/ContentSearchForm1.js"></script>
|
172
|
+
<div class = "extend_line"></div>
|
173
|
+
<br>
|
174
|
+
<script language="JavaScript" src="../js/WebNews2/ContentHotLabel1.js"></script>
|
175
|
+
<br>
|
176
|
+
<!-- editor choice -->
|
177
|
+
<script language="JavaScript" src="../js/WebNews2/ContentEditorChoice1.js"></script>
|
178
|
+
<!-- end of editor choice -->
|
179
|
+
<!-- ad. -->
|
180
|
+
<script type="text/javascript" src="../js/WebNews2/ContentLeft.js"></script>
|
181
|
+
<!-- end ad. -->
|
182
|
+
</div>
|
183
|
+
</td>
|
184
|
+
<td valign="top">
|
185
|
+
<div class = "content_col">
|
186
|
+
<table width="100%" border="0">
|
187
|
+
<tr>
|
188
|
+
<td>
|
189
|
+
|
190
|
+
<div class="push" id="supportblock01">
|
191
|
+
<table cellpadding="0" cellspacing="0">
|
192
|
+
<tr>
|
193
|
+
<td><a href="javascript:clickSupport();"><img src="../image/shim.gif" alt="��" width="40" height="25" border="0"></a></td>
|
194
|
+
<td><div id="supportcontent01" class="content_push"></div></td>
|
195
|
+
</tr>
|
196
|
+
</table>
|
197
|
+
</div>
|
198
|
+
|
199
|
+
</td>
|
200
|
+
<td align="right">
|
201
|
+
<form name="form2">
|
202
|
+
<select id="menu1" name="menu1" onChange="if (this.options[this.selectedIndex].value.search(/redirect/i) >= 0) window.open(this.options[this.selectedIndex].value,'redirect','').focus(); else MM_jumpMenu('parent',this,0);">
|
203
|
+
<script language="JavaScript" src="insttaoptions.js"></script>
|
204
|
+
<option value="taa1.htm" selected>����s�R����̹]�W�Цʭ�</option>
|
205
|
+
<option value="../cfm/Redirect.cfm?ch=ta&NewsFile=20130412%2Fta%2Fta%2Ftaa2%5Fer%2Etxt">��w����d ���o�{���D</option>
|
206
|
+
<option value="taa3.htm">���a���p 1/10�Ѧa���ìV</option>
|
207
|
+
<option value="tab1.htm">���R�¾ɼu���ФW�[ �G�G�ð}</option>
|
208
|
+
<option value="tab2.htm">�§L��ҽm����</option>
|
209
|
+
<option value="tac1.htm">ù�B�c�F�ڥ����� �M�m�Ȭw��</option>
|
210
|
+
<option value="tba1.htm">�Q�����y�|�ڱ��K�Q�l</option>
|
211
|
+
<option value="tba2.htm">�^����2000�H�e�l�W��</option>
|
212
|
+
<option value="tba3.htm">�Y�g���y�u�y�]�v �P���T�ɱo�o�^�y��</option>
|
213
|
+
<option value="tbb1.htm">���ڰ������d���w��� �������|�q�L</option>
|
214
|
+
<option value="tbc1.htm">���y���y�R�N���G���k���a�y �H���d�~��� . . .</option>
|
215
|
+
<option value="tbd1.htm">���z���G�����������ϰ�</option>
|
216
|
+
<option value="tbe1.htm">�Ϲ�u�Q�I�q�vë�i �H�k�v���l�Q��</option>
|
217
|
+
<option value="tbt1.htm">���W�K��s�Ѷ}�� ��ѩ��ȩ]��Ѱg</option>
|
218
|
+
<option value="tbu1.htm">��j�ǽоǥͭ����\</option>
|
219
|
+
<option value="tbv1.htm">�x�~�o�����qĵ���ѥ]</option>
|
220
|
+
<option value="tbw1.htm">���`�s�ǤH�A�d�����Ѻ���</option>
|
221
|
+
|
222
|
+
</select>
|
223
|
+
</form>
|
224
|
+
</td>
|
225
|
+
</tr>
|
226
|
+
<tr>
|
227
|
+
<td>
|
228
|
+
<table width="100%">
|
229
|
+
<tr>
|
230
|
+
<td align="left"><script src="../js/chfontsize.js"></script></td>
|
231
|
+
</tr>
|
232
|
+
</table>
|
233
|
+
</td>
|
234
|
+
<td>
|
235
|
+
|
236
|
+
<table align="right" cellpadding="0" cellspacing="0" border="0">
|
237
|
+
<tr>
|
238
|
+
<td align="right"><script type="text/javascript">document.write(new setNavigation("menu1").getPrev());</script></td>
|
239
|
+
<td align="right"><script type="text/javascript">document.write(new setNavigation("menu1").getNext());</script></td>
|
240
|
+
<tr>
|
241
|
+
</table>
|
242
|
+
|
243
|
+
</td>
|
244
|
+
</tr>
|
245
|
+
</table>
|
246
|
+
<table width="100%" border="0">
|
247
|
+
<tr>
|
248
|
+
<td>
|
249
|
+
<script src="../js/Adv/ContentAdvert1.js"></script>
|
250
|
+
</td>
|
251
|
+
</tr>
|
252
|
+
</table>
|
253
|
+
<h1><div id="articleheading">����s�R����̹]�W�Цʭ�<br><br>�æ��ɭˬr�o�ƩҭP �ۭ��c�G</div></h1><br>
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
<span id="advenueINTEXT" name="advenueINTEXT">
|
258
|
+
<div class="content_medium" id="newscontent01">�i�����M�T�j����@����Ǭ�s���i�o�{�A�J�f���ꪺ�j�̧t�]�q���W�w�������A�i���̪��]����q�i��W�X���ꭹ�~���Ī��z���]FDA�^�зǹF120���A��p�����d�v�T�ơC���M�a���ܡA����a���~�ӱN���r�o�ưe��o�i����a�B�z�A�ìV�Ů�M�����A���G�O�A���~���ìV�A�˹L�ӥX�f�����v�T����a�CFDA���ܡA�N�N���i�i�}�լd��i�C</div>
|
259
|
+
<br>
|
260
|
+
|
261
|
+
<div id="inewscontent"></div>
|
262
|
+
|
263
|
+
<div class="content_medium" id="newscontent02"><p>����X�T���j�ǡ]Monmouth University�^���ҤƾDZM�a�q�J�ĥ�]Tsanangurayi Tongesayi�^�դh�A�����ƾǾǷ|�~�|�o����������i�f�j�̪���s���i�C�ثe����j�̦�7%���i�f�j�̡A�ӷ��a�]�A����j���B�x�W�B����B�L�סB�����B�N�j�Q�B�H��C�M���J���a�C��s������U�ӷ��a���j�̼˥��A�����t�]�q�A�A�����ꤣ�P�ڸs�C�饭���i�����j�̤��q�A�p�⤣�P�ڸs���]����q�A�PFDA����ij�i�e�\����q����C</p>
|
264
|
+
<p></p>
|
265
|
+
<p>��FDA�լd��i</p>
|
266
|
+
<p></p>
|
267
|
+
<p>��s�o�{�A�j�̼˥����t�]�q�����C����6��12�@�J�A���ݶW�Ф����A�䤤�Ӧۤ���j���Υx�W���j�̧t�]�q�̰��C�Y�i���o�Ǥj�̡A���H�����]����q�N�W�X�i�e�\����q20��40���A�ൣ�h�����W��30��60���A�ܩ�i���j�̤��q���h�����ȸǨൣ�A��W�йF60��120���C</p>
|
268
|
+
<p></p>
|
269
|
+
<p>�q�J�ĥ�դh���X�A�ھ�FDA��ij�A�]����q�W�йO10���ΥH�W�A�i��O�H�龹�x�Τ��ϯ��g�t�Ψ��l�A��6���H�U�ൣ��i��]�]���r�ӾɭP�o�|��w�Ʀܦ��`�A�]���j�̧t�]�q�W�Ъ����G�O�H���`�C</p>
|
270
|
+
<p></p>
|
271
|
+
<p>����s���X�A�L�פΤ��굥��a�`�H���g�B�z���ä��A�Ʀܤu�~�o����@�C�ѩ�j�̻ݭn�l���j�q�����A�O�j�̸���L�D�n�A�@��������ìV�C�t�@�譱�A���i��a�N�q�l�o�ƥX�f��o�i����a��m�����G��W�A�O�����a���Y���ìV�A��O�j�̧t�]���D�c�ơC�q�J�ĥ�դh�١A�۫H�j�̬O�b�ѺعL�{�����ìV�C</p>
|
272
|
+
<p></p>
|
273
|
+
<p>�L�j�աA�H�ӭ��~�������y�ơA�����i��Ӧۥ��y����@�Ө����A�����P�a�Ϫ��ìV���G�U���A�g�`���H�ҩ����C�L��ij�U��F����q���y�ƳW�d�A�[�j���~�Ͳ��ξP�⪺�w���ʺޡA�������F�ѭ��~�ìV���G�C���M�p�X�ꭹ�~�k��e���|�q����ڭ��~�w���зǡA���ѩ�D�����k�W�A���ʬ����O�CFDA���ܱN�լd��i�W�z���i�C</p>
|
274
|
+
<p></p>
|
275
|
+
<p>�]��X���D�^</p>
|
276
|
+
<p></p>
|
277
|
+
<p></p></div>
|
278
|
+
</span>
|
279
|
+
<table width="100%" border="0">
|
280
|
+
<tr>
|
281
|
+
<td>
|
282
|
+
|
283
|
+
<div class="push" id="supportblock02">
|
284
|
+
<table cellpadding="0" cellspacing="0">
|
285
|
+
<tr>
|
286
|
+
<td><a href="javascript:clickSupport();"><img src="../image/shim.gif" alt="��" width="40" height="25" border="0"></a></td>
|
287
|
+
<td><div id="supportcontent02" class="content_push"></div></td>
|
288
|
+
</tr>
|
289
|
+
</table>
|
290
|
+
</div>
|
291
|
+
|
292
|
+
</td>
|
293
|
+
<td align="right">
|
294
|
+
<form name="form2">
|
295
|
+
<select id="select" name="select" onChange="if (this.options[this.selectedIndex].value.search(/redirect/i) >= 0) window.open(this.options[this.selectedIndex].value,'redirect','').focus(); else MM_jumpMenu('parent',this,0);">
|
296
|
+
<script language="JavaScript" src="insttaoptions.js"></script>
|
297
|
+
<option value="taa1.htm" selected>����s�R����̹]�W�Цʭ�</option>
|
298
|
+
<option value="../cfm/Redirect.cfm?ch=ta&NewsFile=20130412%2Fta%2Fta%2Ftaa2%5Fer%2Etxt">��w����d ���o�{���D</option>
|
299
|
+
<option value="taa3.htm">���a���p 1/10�Ѧa���ìV</option>
|
300
|
+
<option value="tab1.htm">���R�¾ɼu���ФW�[ �G�G�ð}</option>
|
301
|
+
<option value="tab2.htm">�§L��ҽm����</option>
|
302
|
+
<option value="tac1.htm">ù�B�c�F�ڥ����� �M�m�Ȭw��</option>
|
303
|
+
<option value="tba1.htm">�Q�����y�|�ڱ��K�Q�l</option>
|
304
|
+
<option value="tba2.htm">�^����2000�H�e�l�W��</option>
|
305
|
+
<option value="tba3.htm">�Y�g���y�u�y�]�v �P���T�ɱo�o�^�y��</option>
|
306
|
+
<option value="tbb1.htm">���ڰ������d���w��� �������|�q�L</option>
|
307
|
+
<option value="tbc1.htm">���y���y�R�N���G���k���a�y �H���d�~��� . . .</option>
|
308
|
+
<option value="tbd1.htm">���z���G�����������ϰ�</option>
|
309
|
+
<option value="tbe1.htm">�Ϲ�u�Q�I�q�vë�i �H�k�v���l�Q��</option>
|
310
|
+
<option value="tbt1.htm">���W�K��s�Ѷ}�� ��ѩ��ȩ]��Ѱg</option>
|
311
|
+
<option value="tbu1.htm">��j�ǽоǥͭ����\</option>
|
312
|
+
<option value="tbv1.htm">�x�~�o�����qĵ���ѥ]</option>
|
313
|
+
<option value="tbw1.htm">���`�s�ǤH�A�d�����Ѻ���</option>
|
314
|
+
|
315
|
+
</select>
|
316
|
+
</form>
|
317
|
+
</td>
|
318
|
+
</tr>
|
319
|
+
</table>
|
320
|
+
|
321
|
+
<div align="right">
|
322
|
+
<table cellpadding="0" cellspacing="0" border="0">
|
323
|
+
<tr>
|
324
|
+
<td><script type="text/javascript">document.write(new setNavigation("select").getPrev());</script></td>
|
325
|
+
<td><script type="text/javascript">document.write(new setNavigation("select").getNext());</script></td>
|
326
|
+
<td width="5"> </td>
|
327
|
+
<tr>
|
328
|
+
</table>
|
329
|
+
</div>
|
330
|
+
|
331
|
+
|
332
|
+
<br>
|
333
|
+
|
334
|
+
<div class="lightgrey_line"></div>
|
335
|
+
<script language="JavaScript" src="../js/adv/Advert35.js"></script>
|
336
|
+
<div class="lightgrey_line"></div>
|
337
|
+
<br>
|
338
|
+
|
339
|
+
<table width="100%" border="0"> <tr> <td> <div class="content_medium_g"> <div class="b">�����峹 <img src="../image/b_round.gif" width="13" height="13"></div> </div> </td> <td align="right"><a href="taindex.htm" class="related_link">[��ܥ����D��]</a></td> </tr></table><div class="green_line"></div><table width="100%"> <tr> <td><ul><li> <a href="taa1.htm" class="orange_link"> ����s�R����̹]�W�Цʭ� </a> </li><div class="grey_dashline"></div><li> <a href="../cfm/Redirect.cfm?ch=ta&NewsFile=20130412%2Fta%2Fta%2Ftaa2%5Fer%2Etxt" target="_blank" class="orange_link"> ��w����d ���o�{���D </a> </li><div class="grey_dashline"></div><li> <a href="taa3.htm" class="orange_link"> ���a���p 1/10�Ѧa���ìV </a> </li><div class="grey_dashline"></div></ul></td> </tr></table><br>
|
340
|
+
|
341
|
+
<div id="feelblock" style="visibility:hidden;">
|
342
|
+
<script language="JavaScript" src="../js/WebNews2/ContentFeelEntry1.js"></script>
|
343
|
+
</div>
|
344
|
+
<table width="100%">
|
345
|
+
<tr>
|
346
|
+
<td><table border="0" align="right">
|
347
|
+
<tr>
|
348
|
+
<td><a href="http://forum.mingpao.com/cfm/Forum1.cfm?OwnerID=1" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image36','','../image/b_forum_f2.gif',1)"><img src="../image/b_forum.gif" alt="�ڭn�Q��" name="Image36" width="89" height="27" border="0"></a><a href="#"></a></td>
|
349
|
+
<td><a href="mailto:mpworldnews@mingpao.com?Subject=����s�R����̹]�W�Цʭ�,�æ��ɭˬr�o�ƩҭP �ۭ��c�G(�Фŭק�)" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image37','','../image/b_reply_f2.gif',1)"><img src="../image/b_reply.gif" alt="�ߧY�^��" name="Image37" width="89" height="27" border="0"></a><a href="#"></a></td>
|
350
|
+
<td> </td>
|
351
|
+
</tr>
|
352
|
+
</table>
|
353
|
+
<td></td>
|
354
|
+
</tr>
|
355
|
+
</table>
|
356
|
+
<div class="grey_line"></div>
|
357
|
+
</div>
|
358
|
+
</td>
|
359
|
+
</tr>
|
360
|
+
</table>
|
361
|
+
</div>
|
362
|
+
</td>
|
363
|
+
<td valign="top" width="300">
|
364
|
+
<div class ="side_box right">
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
<table width="300" border="0" cellpadding="0" cellspacing="0" style="width:300px">
|
369
|
+
<tr><td style="width:300px">
|
370
|
+
<script language="JavaScript" src="../js/Adv/Advert44DFP.js"></script>
|
371
|
+
</td></tr>
|
372
|
+
<tr><td style="width:300px">
|
373
|
+
<script language="JavaScript" src="../js/Adv/Advert45DFP.js"></script>
|
374
|
+
</td></tr>
|
375
|
+
</table>
|
376
|
+
|
377
|
+
|
378
|
+
<div id="keywordcontent" style="visibility:hidden;">
|
379
|
+
<table width="100%">
|
380
|
+
<tr>
|
381
|
+
<td>
|
382
|
+
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="grey_gradual">
|
383
|
+
<tr>
|
384
|
+
<td><div class="content_big">�������</div></td>
|
385
|
+
</tr>
|
386
|
+
</table>
|
387
|
+
<div class="grey_dashline"></div>
|
388
|
+
<div class="bottom_space"></div>
|
389
|
+
<div id="keywordcontent01" style="visibility:hidden;" class="content_medium_g">���סD���}</div>
|
390
|
+
<ul>
|
391
|
+
<div id="keywordcontent011" style="visibility:hidden;"></div>
|
392
|
+
</ul>
|
393
|
+
</div>
|
394
|
+
<div id="keywordcontent02" style="visibility:hidden;" class="content_medium_g">��</div>
|
395
|
+
<ul>
|
396
|
+
<div id="keywordcontent021" style="visibility:hidden;"></div>
|
397
|
+
</ul>
|
398
|
+
</div>
|
399
|
+
<div id="keywordcontent03" style="visibility:hidden;" class="content_medium_g">��������</div>
|
400
|
+
<ul>
|
401
|
+
<div id="keywordcontent031" style="visibility:hidden;"></div>
|
402
|
+
</ul>
|
403
|
+
</div>
|
404
|
+
</td>
|
405
|
+
</tr>
|
406
|
+
</table>
|
407
|
+
<br>
|
408
|
+
</div>
|
409
|
+
|
410
|
+
|
411
|
+
<table width="300" border="0" cellpadding="0" cellspacing="0" style="width:300px">
|
412
|
+
<tr><td style="width:300px">
|
413
|
+
<script language="JavaScript" src="../js/Adv/Advert31DFP.js"></script>
|
414
|
+
</td></tr>
|
415
|
+
<tr><td><table width="100%" border="0"><tr><td><script language="JavaScript" src="../js/Adv/Advert32.js"></script></td></tr></table>
|
416
|
+
</td></tr>
|
417
|
+
<tr><td>
|
418
|
+
<script language="JavaScript" src="../js/Adv/Advert33DFP.js"></script>
|
419
|
+
</td></tr>
|
420
|
+
<tr><td><table width="100%" border="0"><tr><td><script language="JavaScript" src="../js/Adv/Advert34.js"></script></td></tr></table>
|
421
|
+
</td></tr>
|
422
|
+
</table>
|
423
|
+
|
424
|
+
</div>
|
425
|
+
</td>
|
426
|
+
</tr>
|
427
|
+
</table>
|
428
|
+
</div>
|
429
|
+
</td>
|
430
|
+
</tr>
|
431
|
+
</table>
|
432
|
+
<!--footer start-->
|
433
|
+
<script language="JavaScript" src="../js/TopMenu/Bottom.js"></script>
|
434
|
+
<!--footer end-->
|
435
|
+
|
436
|
+
<script type="text/javascript">
|
437
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
438
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
439
|
+
</script>
|
440
|
+
<script type="text/javascript">
|
441
|
+
var pageTracker = _gat._getTracker("UA-4717822-6");
|
442
|
+
pageTracker._trackPageview();
|
443
|
+
</script>
|
444
|
+
|
445
|
+
|
446
|
+
|
447
|
+
</div>
|
448
|
+
<script language="javascript" src="../js/AdvertPixelMedia1.js"></script>
|
449
|
+
<script language="JavaScript" src="../js/Keywords2/mouseover_all.js"></script>
|
450
|
+
<script language="JavaScript" src="../js/Keywords21.js"></script>
|
451
|
+
<script language="JavaScript" src="../js/Advert2DFP.js"></script>
|
452
|
+
<script language="JavaScript" src="../js/AdvertMSIG.js"></script>
|
453
|
+
<script language="JavaScript" src="../js/SupportAndFeel.js"></script>
|
454
|
+
</body>
|
455
|
+
</html>
|